RoboterFabrik/Roboter/tpe/facade/FactorySystemTest.java

78 lines
2.6 KiB
Java

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));
}
}