summaryrefslogtreecommitdiff
path: root/domain
diff options
context:
space:
mode:
authorMike Vink <mike1994vink@gmail.com>2021-07-15 11:52:28 +0200
committerMike Vink <mike1994vink@gmail.com>2021-07-15 11:52:28 +0200
commit0f8edbe0b2c0bd09cd40872f06993c08e67f26cb (patch)
tree93a9943eaf7baeb5bdbeb489f867dc1d0bb13cac /domain
parent9d54842c2f5b084ab1b0de4c4b8978cc43297546 (diff)
refactor(client/api): need to debug!
Diffstat (limited to 'domain')
-rw-r--r--domain/build.gradle20
-rw-r--r--domain/src/main/java/akkamon/domain/Akkamon.java6
-rw-r--r--domain/src/main/java/akkamon/domain/AkkamonImpl.java39
-rw-r--r--domain/src/main/java/akkamon/domain/Trainer.java28
-rw-r--r--domain/src/test/java/akkamon/domain/AkkamonImplTest.java28
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