diff --git a/extension-objects/pom.xml b/extension-objects/pom.xml
index afdf010a2..77f6ccfa2 100644
--- a/extension-objects/pom.xml
+++ b/extension-objects/pom.xml
@@ -10,6 +10,12 @@
4.0.0
extension-objects
+
+
+ junit
+ junit
+
+
-
\ No newline at end of file
+
diff --git a/extension-objects/src/main/java/App.java b/extension-objects/src/main/java/App.java
index 9aa934580..af76682b8 100644
--- a/extension-objects/src/main/java/App.java
+++ b/extension-objects/src/main/java/App.java
@@ -38,6 +38,7 @@ public class App {
SergeantExtension sergeantExtension = (SergeantExtension) unit.getUnitExtension("SergeantExtension");
CommanderExtension commanderExtension = (CommanderExtension) unit.getUnitExtension("CommanderExtension");
+ //if unit have extension call the method
if (soldierExtension != null) {
soldierExtension.soldierReady();
} else {
@@ -51,7 +52,7 @@ public class App {
}
if (commanderExtension != null) {
- // commanderExtension.sergeantReady();
+ commanderExtension.commanderReady();
} else {
System.out.println(unit.getName() + " without CommanderExtension");
}
diff --git a/extension-objects/src/main/java/abstractextensions/CommanderExtension.java b/extension-objects/src/main/java/abstractextensions/CommanderExtension.java
index aa716a3ae..3088c9f86 100644
--- a/extension-objects/src/main/java/abstractextensions/CommanderExtension.java
+++ b/extension-objects/src/main/java/abstractextensions/CommanderExtension.java
@@ -4,4 +4,6 @@ package abstractextensions;
* Created by Srdjan on 27-Apr-17.
*/
public interface CommanderExtension extends UnitExtension {
+
+ void commanderReady();
}
diff --git a/extension-objects/src/main/java/concreteextensions/Commander.java b/extension-objects/src/main/java/concreteextensions/Commander.java
index 3de4d124a..3ce183afb 100644
--- a/extension-objects/src/main/java/concreteextensions/Commander.java
+++ b/extension-objects/src/main/java/concreteextensions/Commander.java
@@ -13,4 +13,9 @@ public class Commander implements CommanderExtension {
public Commander(CommanderUnit commanderUnit) {
this.unit = commanderUnit;
}
+
+ @Override
+ public void commanderReady() {
+ System.out.println("[Commander] " + unit.getName() + " is ready!");
+ }
}
diff --git a/extension-objects/src/main/java/concreteextensions/Sergeant.java b/extension-objects/src/main/java/concreteextensions/Sergeant.java
index b2d4485c3..499ea4f63 100644
--- a/extension-objects/src/main/java/concreteextensions/Sergeant.java
+++ b/extension-objects/src/main/java/concreteextensions/Sergeant.java
@@ -16,6 +16,6 @@ public class Sergeant implements SergeantExtension {
@Override
public void sergeantReady() {
- System.out.println("[Sergeant] " + unit.getName() + " do command! ");
+ System.out.println("[Sergeant] " + unit.getName() + " is ready! ");
}
}
diff --git a/extension-objects/src/main/java/concreteextensions/Soldier.java b/extension-objects/src/main/java/concreteextensions/Soldier.java
index e2d11e244..844abd57a 100644
--- a/extension-objects/src/main/java/concreteextensions/Soldier.java
+++ b/extension-objects/src/main/java/concreteextensions/Soldier.java
@@ -16,6 +16,6 @@ public class Soldier implements SoldierExtension {
@Override
public void soldierReady() {
- System.out.println("[Solider] " + unit.getName() + " do command");
+ System.out.println("[Solider] " + unit.getName() + " is ready!");
}
}
diff --git a/extension-objects/src/test/java/AppTest.java b/extension-objects/src/test/java/AppTest.java
new file mode 100644
index 000000000..88ba70da9
--- /dev/null
+++ b/extension-objects/src/test/java/AppTest.java
@@ -0,0 +1,16 @@
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Created by Srdjan on 03-May-17.
+ */
+public class AppTest {
+ @Test
+ public void main() throws Exception {
+
+ String[] args = {};
+ App.main(args);
+ }
+
+}
\ No newline at end of file
diff --git a/extension-objects/src/test/java/concreteextensions/CommanderTest.java b/extension-objects/src/test/java/concreteextensions/CommanderTest.java
new file mode 100644
index 000000000..a5ac7b506
--- /dev/null
+++ b/extension-objects/src/test/java/concreteextensions/CommanderTest.java
@@ -0,0 +1,19 @@
+package concreteextensions;
+
+import org.junit.Test;
+import units.CommanderUnit;
+
+import static org.junit.Assert.*;
+
+/**
+ * Created by Srdjan on 03-May-17.
+ */
+public class CommanderTest {
+ @Test
+ public void commanderReady() throws Exception {
+ final Commander commander = new Commander(new CommanderUnit("CommanderUnitTest"));
+
+ commander.commanderReady();
+ }
+
+}
\ No newline at end of file
diff --git a/extension-objects/src/test/java/concreteextensions/SergeantTest.java b/extension-objects/src/test/java/concreteextensions/SergeantTest.java
new file mode 100644
index 000000000..163d5c1fc
--- /dev/null
+++ b/extension-objects/src/test/java/concreteextensions/SergeantTest.java
@@ -0,0 +1,19 @@
+package concreteextensions;
+
+import org.junit.Test;
+import units.SergeantUnit;
+
+import static org.junit.Assert.*;
+
+/**
+ * Created by Srdjan on 03-May-17.
+ */
+public class SergeantTest {
+ @Test
+ public void sergeantReady() throws Exception {
+ final Sergeant sergeant = new Sergeant(new SergeantUnit("SergeantUnitTest"));
+
+ sergeant.sergeantReady();
+ }
+
+}
\ No newline at end of file
diff --git a/extension-objects/src/test/java/concreteextensions/SoldierTest.java b/extension-objects/src/test/java/concreteextensions/SoldierTest.java
new file mode 100644
index 000000000..dde222d61
--- /dev/null
+++ b/extension-objects/src/test/java/concreteextensions/SoldierTest.java
@@ -0,0 +1,19 @@
+package concreteextensions;
+
+import org.junit.Test;
+import units.SoldierUnit;
+
+import static org.junit.Assert.*;
+
+/**
+ * Created by Srdjan on 03-May-17.
+ */
+public class SoldierTest {
+ @Test
+ public void soldierReady() throws Exception {
+ final Soldier soldier = new Soldier(new SoldierUnit("SoldierUnitTest"));
+
+ soldier.soldierReady();
+ }
+
+}
\ No newline at end of file
diff --git a/extension-objects/src/test/java/units/CommanderUnitTest.java b/extension-objects/src/test/java/units/CommanderUnitTest.java
new file mode 100644
index 000000000..1ec498d91
--- /dev/null
+++ b/extension-objects/src/test/java/units/CommanderUnitTest.java
@@ -0,0 +1,22 @@
+package units;
+
+import abstractextensions.CommanderExtension;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Created by Srdjan on 03-May-17.
+ */
+public class CommanderUnitTest {
+ @Test
+ public void getUnitExtension() throws Exception {
+
+ final Unit unit = new CommanderUnit("CommanderUnitName");
+
+ assertNull(unit.getUnitExtension("SoldierExtension"));
+ assertNull(unit.getUnitExtension("SergeantExtension"));
+ assertNotNull((CommanderExtension)unit.getUnitExtension("CommanderExtension"));
+ }
+
+}
\ No newline at end of file
diff --git a/extension-objects/src/test/java/units/SergeantUnitTest.java b/extension-objects/src/test/java/units/SergeantUnitTest.java
new file mode 100644
index 000000000..8fe62298c
--- /dev/null
+++ b/extension-objects/src/test/java/units/SergeantUnitTest.java
@@ -0,0 +1,22 @@
+package units;
+
+import abstractextensions.SergeantExtension;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Created by Srdjan on 03-May-17.
+ */
+public class SergeantUnitTest {
+ @Test
+ public void getUnitExtension() throws Exception {
+
+ final Unit unit = new SergeantUnit("SergeantUnitName");
+
+ assertNull(unit.getUnitExtension("SoldierExtension"));
+ assertNotNull((SergeantExtension)unit.getUnitExtension("SergeantExtension"));
+ assertNull(unit.getUnitExtension("CommanderExtension"));
+ }
+
+}
\ No newline at end of file
diff --git a/extension-objects/src/test/java/units/SoldierUnitTest.java b/extension-objects/src/test/java/units/SoldierUnitTest.java
new file mode 100644
index 000000000..8d1fe5667
--- /dev/null
+++ b/extension-objects/src/test/java/units/SoldierUnitTest.java
@@ -0,0 +1,24 @@
+package units;
+
+import abstractextensions.SoldierExtension;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Created by Srdjan on 03-May-17.
+ */
+public class SoldierUnitTest {
+ @Test
+ public void getUnitExtension() throws Exception {
+
+ final Unit unit = new SoldierUnit("SoldierUnitName");
+
+ assertNotNull((SoldierExtension)unit.getUnitExtension("SoldierExtension"));
+ assertNull(unit.getUnitExtension("SergeantExtension"));
+ assertNull(unit.getUnitExtension("CommanderExtension"));
+
+
+ }
+
+}
\ No newline at end of file
diff --git a/extension-objects/src/test/java/units/UnitTest.java b/extension-objects/src/test/java/units/UnitTest.java
new file mode 100644
index 000000000..08fd10d8e
--- /dev/null
+++ b/extension-objects/src/test/java/units/UnitTest.java
@@ -0,0 +1,33 @@
+package units;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Created by Srdjan on 03-May-17.
+ */
+public class UnitTest {
+
+ private Unit unit;
+
+ @Test
+ public void testConstGetSet() throws Exception {
+ final String name = "testName";
+ final Unit unit = new Unit(name);
+ assertEquals(name,unit.getName());
+
+ final String newName = "newName";
+ unit.setName(newName);
+ assertEquals(newName,unit.getName());
+
+
+ assertNull(unit.getUnitExtension(""));
+ assertNull(unit.getUnitExtension("SoldierExtension"));
+ assertNull(unit.getUnitExtension("SergeantExtension"));
+ assertNull(unit.getUnitExtension("CommanderExtension"));
+ }
+
+}
\ No newline at end of file