diff --git a/.classpath b/.classpath index 33515c0..dfd62bc 100644 --- a/.classpath +++ b/.classpath @@ -3,5 +3,6 @@ + diff --git a/Roboter/tpe/exceptions/roboter/Nexus6.java b/Roboter/tpe/exceptions/roboter/Nexus6.java index 8252adb..73e3a5c 100644 --- a/Roboter/tpe/exceptions/roboter/Nexus6.java +++ b/Roboter/tpe/exceptions/roboter/Nexus6.java @@ -21,13 +21,13 @@ public class Nexus6 extends Robots { } @Override public String speak(int[] zahlen) throws RobotException { - throw new RobotIllegalStateException("Der Nexus6-Roboter: Pris ist ausgeschaltet!", this.getName()); + throw new RobotIllegalStateException("Der Nexus6-Roboter ist ausgeschaltet!", this.getName()); } @Override public int[] think(int[] zahlen) throws RobotException { - throw new RobotIllegalStateException("Der Nexus6-Roboter: Pris ist ausgeschaltet!", this.getName()); + throw new RobotIllegalStateException("Der Nexus6-Roboter ist ausgeschaltet!", this.getName()); } diff --git a/Roboter/tpe/exceptions/roboter/RobotFactory.java b/Roboter/tpe/exceptions/roboter/RobotFactory.java index 678805a..0c6809c 100644 --- a/Roboter/tpe/exceptions/roboter/RobotFactory.java +++ b/Roboter/tpe/exceptions/roboter/RobotFactory.java @@ -102,14 +102,6 @@ public class RobotFactory { Robots robot=getRobot(id); return robot.toString(); } - /** - * Ermöglicht Roboter zur jeweiligen ID aus der HashMap zu löschen => Roboter Instanz löschen - * @param id - * @return Bei null wurde kein Roboter zur ID gefunden falls Roboter zurückgegeben wird ist dieser gelöscht - */ - public Robots dismantleRobot(int id) { - return robotStock.remove(id); - } /** * Sucht den Roboter zur ID aus der HashMap und ermittelt über {@link Robots} Funktion die {@link RobotException} * @param id diff --git a/Roboter/tpe/exceptions/roboter/Robots.java b/Roboter/tpe/exceptions/roboter/Robots.java index 61b1dbd..6d93507 100644 --- a/Roboter/tpe/exceptions/roboter/Robots.java +++ b/Roboter/tpe/exceptions/roboter/Robots.java @@ -52,6 +52,11 @@ public abstract class Robots implements Robot{ } return error; } + /** + * Unterscheidung der Ausgabe durch die Art der Sortierung:
+ * R2D2: sortiert aufsteigend Wert an der Stelle 0 des Arrays ist kleiner als an der letzten Stelle
+ * C3PO: sortiert absteigend Wert an der Stelle 0 des Arrays ist größer als an der letzten Stelle + */ public String speak(int[] zahlen) throws RobotException { if(powerStatus==false) diff --git a/Roboter/tpe/exceptions/roboter/RobotsTest.java b/Roboter/tpe/exceptions/roboter/RobotsTest.java new file mode 100644 index 0000000..8fe6a4e --- /dev/null +++ b/Roboter/tpe/exceptions/roboter/RobotsTest.java @@ -0,0 +1,61 @@ +package tpe.exceptions.roboter; + +import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.*; + +import tpe.exceptions.RobotException; +import tpe.exceptions.RobotIllegalStateException; +import tpe.exceptions.RobotMagicValueException; + +public class RobotsTest { + RobotException robotException; + Robots robots; + Robots R2rob= new R2D2("Testname1", 1); + Robots C3rob=new C3PO("Testname2",10000); + Robots Nerob=Nexus6.getInstance(); + int[] testZahlen1= {1,4,3,42,78,20}; + int[] testZahlen2= {1,4,3,41,78,20}; + + @Test + void basicRobotsTest() throws RobotException + { + assertEquals(R2rob.getName(),"Testname1"); + assertEquals(R2rob.getId(),1); + assertFalse(R2rob.powerStatus); + R2rob.triggerPowerSwitch(); + assertTrue(R2rob.powerStatus); + + assertEquals(C3rob.getName(),"Testname2"); + assertEquals(C3rob.getId(),10000); + assertFalse(C3rob.powerStatus); + C3rob.triggerPowerSwitch(); + assertTrue(C3rob.powerStatus); + + assertEquals(Nerob.getName(),"Pris"); + assertEquals(Nerob.getId(),19281982); + assertFalse(Nerob.powerStatus); + } + + @Test + void speakAndThinkTest() throws RobotException{ + RobotIllegalStateException thrownState=Assertions.assertThrows(RobotIllegalStateException.class,() -> R2rob.speak(testZahlen2)); + assertEquals(thrownState.getMessage(),"Robotname-Testname1: Der Roboter ist ausgeschaltet!"); + R2rob.triggerPowerSwitch(); + assertEquals("1, 3, 4, 20, 41, 78", R2rob.speak(R2rob.think(testZahlen2))); + RobotMagicValueException thrownValue=Assertions.assertThrows(RobotMagicValueException.class,() -> R2rob.speak(testZahlen1)); + assertEquals(thrownValue.getMessage(),"Robotname-Testname1: Zahl 42 kann nicht verarbeitet werden!"); + + RobotIllegalStateException thrownState2=Assertions.assertThrows(RobotIllegalStateException.class,() -> C3rob.speak(testZahlen2)); + assertEquals(thrownState2.getMessage(),"Robotname-Testname2: Der Roboter ist ausgeschaltet!"); + C3rob.triggerPowerSwitch(); + assertEquals("78; 41; 20; 4; 3; 1", C3rob.speak(C3rob.think(testZahlen2))); + RobotMagicValueException thrownValue2=Assertions.assertThrows(RobotMagicValueException.class,() -> C3rob.speak(testZahlen1)); + assertEquals(thrownValue2.getMessage(),"Robotname-Testname2: Zahl 42 kann nicht verarbeitet werden!"); + + RobotIllegalStateException thrownState3=Assertions.assertThrows(RobotIllegalStateException.class,() -> Nerob.speak(testZahlen2)); + assertEquals(thrownState3.getMessage(),"Robotname-Pris: Der Nexus6-Roboter ist ausgeschaltet!"); + } + +} diff --git a/Roboter/tpe/facade/FactorySystem.java b/Roboter/tpe/facade/FactorySystem.java index 54447be..bbb7ed1 100644 --- a/Roboter/tpe/facade/FactorySystem.java +++ b/Roboter/tpe/facade/FactorySystem.java @@ -36,12 +36,6 @@ public class FactorySystem { return rf.robotInfo(id); } - public String dismantleRobot(int id) { - if (rf.dismantleRobot(id) == null) { - return "Roboter erfolgreich demontiert"; - } else - return "Fehler beim Demontieren des Roboters"; - } public RobotException robotBlackbox(int id) { return rf.robotBlackbox(id); // Bei Rückgabe von null gab es noch keinen Fehler diff --git a/Roboter/tpe/facade/FactorySystemTest.java b/Roboter/tpe/facade/FactorySystemTest.java new file mode 100644 index 0000000..b9c9825 --- /dev/null +++ b/Roboter/tpe/facade/FactorySystemTest.java @@ -0,0 +1,5 @@ +package tpe.facade; + +public class FactorySystemTest { + +}