package tpe.facade; 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 FactorySystemTest { FactorySystem fs = new FactorySystem ("Testfabrik"); int testid = fs.constructRobot(2, "Testname"); int testid2 = fs.constructRobot(1, "Testname"); int[] testZahlen1= {1,4,3,42,78,20}; int[] testZahlen2= {1,4,3,41,78,20}; @Test void powerStatusTest() { /** * 1. Roboter wird gebaut, er ist ausgeschaltet * 2. Roboter wird angeschaltet * 3. Roboter wird ausgeschaltet */ assertFalse(fs.powerStatus(testid)); assertTrue(fs.triggerPower(testid)); assertFalse(fs.triggerPower(testid)); /** * 1. Da Nexus6 bereits erstellt wurde, wird beim erstellen zwei neuer Roboter der Stock auf 3 sein * 2. Nexus6 ist ausgeschaltet * 3. Er kann auch nicht angeschaltet werden */ assertEquals(fs.robotStockSize(),3); assertFalse(fs.powerStatus(19281982)); assertFalse(fs.triggerPower(19281982)); } @Test void robotInstructions() throws RobotException { /** * 1. Test Roboter soll sprechen ist aber ausgeschaltet * 2. Roboter ist angeschaltet, kommt aber mit der 42 nicht zu Recht * 3. Roboter C3P0 wirft Zahlenfolge absteigend aus * 4. Roboter R2D2 wirft Zahlenfolge aufsteigend aus */ RobotIllegalStateException thrownState = Assertions.assertThrows(RobotIllegalStateException.class,() -> fs.robotInstructions(testid,testZahlen2)); assertEquals(thrownState.getMessage(),"Robotname-Testname: Der Roboter ist ausgeschaltet!"); fs.triggerPower(testid); RobotMagicValueException thrownValue=Assertions.assertThrows(RobotMagicValueException.class,() -> fs.robotInstructions(testid,testZahlen1)); assertEquals(thrownValue.getMessage(),"Robotname-Testname: Zahl 42 kann nicht verarbeitet werden!"); fs.triggerPower(testid2); assertEquals(fs.robotInstructions(testid, testZahlen2), "78; 41; 20; 4; 3; 1"); assertEquals(fs.robotInstructions(testid2, testZahlen2), "1, 3, 4, 20, 41, 78"); } // @Test // void robotBlackBox() { // fs.triggerPower(testid); // RobotMagicValueException thrownValue=Assertions.assertThrows(RobotMagicValueException.class,() -> fs.robotInstructions(testid,testZahlen1)); // assertEquals(thrownValue.getMessage(),fs.robotBlackbox(testid)); // RobotIllegalStateException thrownState = Assertions.assertThrows(RobotIllegalStateException.class,() -> fs.robotInstructions(testid,testZahlen2)); // assertEquals(thrownState.getMessage(),fs.robotBlackbox(testid)); // } }