diff options
| author | Mike Vink <mike1994vink@gmail.com> | 2021-07-15 11:52:28 +0200 |
|---|---|---|
| committer | Mike Vink <mike1994vink@gmail.com> | 2021-07-15 11:52:28 +0200 |
| commit | 0f8edbe0b2c0bd09cd40872f06993c08e67f26cb (patch) | |
| tree | 93a9943eaf7baeb5bdbeb489f867dc1d0bb13cac /domain | |
| parent | 9d54842c2f5b084ab1b0de4c4b8978cc43297546 (diff) | |
refactor(client/api): need to debug!
Diffstat (limited to 'domain')
| -rw-r--r-- | domain/build.gradle | 20 | ||||
| -rw-r--r-- | domain/src/main/java/akkamon/domain/Akkamon.java | 6 | ||||
| -rw-r--r-- | domain/src/main/java/akkamon/domain/AkkamonImpl.java | 39 | ||||
| -rw-r--r-- | domain/src/main/java/akkamon/domain/Trainer.java | 28 | ||||
| -rw-r--r-- | domain/src/test/java/akkamon/domain/AkkamonImplTest.java | 28 |
5 files changed, 121 insertions, 0 deletions
diff --git a/domain/build.gradle b/domain/build.gradle new file mode 100644 index 0000000..2f385d0 --- /dev/null +++ b/domain/build.gradle @@ -0,0 +1,20 @@ +plugins { + id 'java' + id 'java-library' +} + +version 'unspecified' + +repositories { + jcenter() + mavenCentral() +} + +dependencies { + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0' +} + +test { + useJUnitPlatform() +}
\ No newline at end of file diff --git a/domain/src/main/java/akkamon/domain/Akkamon.java b/domain/src/main/java/akkamon/domain/Akkamon.java new file mode 100644 index 0000000..db5c3e2 --- /dev/null +++ b/domain/src/main/java/akkamon/domain/Akkamon.java @@ -0,0 +1,6 @@ +package akkamon.domain; + +public interface Akkamon { + void newPlayerConnected(String name, String password); + void updateTrainerPosition(String name, int x, int y); +} diff --git a/domain/src/main/java/akkamon/domain/AkkamonImpl.java b/domain/src/main/java/akkamon/domain/AkkamonImpl.java new file mode 100644 index 0000000..a5f563b --- /dev/null +++ b/domain/src/main/java/akkamon/domain/AkkamonImpl.java @@ -0,0 +1,39 @@ +package akkamon.domain; + +import java.util.HashMap; +import java.util.HashSet; + +public class AkkamonImpl implements Akkamon { + + private static AkkamonImpl instance; + + private static HashMap<String, Trainer> dummyTrainersCollection = new HashMap<>(); + + public static AkkamonImpl getInstance() { + if (instance == null) { + instance = new AkkamonImpl(); + } + return instance; + } + + @Override + public void newPlayerConnected(String name, String password) { + switch (dummyTrainersCollection.size()) { + case 0: + dummyTrainersCollection.put("Ash", new Trainer("Ash")); + break; + case 1: + dummyTrainersCollection.put("Misty", new Trainer("Misty")); + break; + } + } + + public void updateTrainerPosition(String name, int x, int y) { + Trainer trainer = dummyTrainersCollection.get(name); + trainer.newPosition(x, y); + } + + public HashMap<String, Trainer> getDummyTrainersCollection() { + return dummyTrainersCollection; + } +} diff --git a/domain/src/main/java/akkamon/domain/Trainer.java b/domain/src/main/java/akkamon/domain/Trainer.java new file mode 100644 index 0000000..7490431 --- /dev/null +++ b/domain/src/main/java/akkamon/domain/Trainer.java @@ -0,0 +1,28 @@ +package akkamon.domain; + +public class Trainer { + private String name; + private int x; + private int y; + + public Trainer(String name) { + this.name = name; + } + + public void newPosition(int x, int y) { + this.x = x; + this.y = y; + } + + public int getX() { + return x; + } + + public int getY() { + return y; + } + + public String getName() { + return name; + } +} diff --git a/domain/src/test/java/akkamon/domain/AkkamonImplTest.java b/domain/src/test/java/akkamon/domain/AkkamonImplTest.java new file mode 100644 index 0000000..6570c2a --- /dev/null +++ b/domain/src/test/java/akkamon/domain/AkkamonImplTest.java @@ -0,0 +1,28 @@ +package akkamon.domain; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class AkkamonImplTest { + + @BeforeEach + void setUp() { + } + + @AfterEach + void tearDown() { + } + + @Nested + class getInstance_behaviour { + @Test + void given_there_is_no_instance_yet_when_getInstance_is_called_then_give_class_property_instance() { + assertNotNull(AkkamonImpl.getInstance()); + } + } + +}
\ No newline at end of file |
