Erste Junit Tests für Robots dismantleRobot entfernt

main
Lukas Berens 2023-01-09 15:21:43 +01:00
parent 4c687759fd
commit 12e1932f45
7 changed files with 74 additions and 16 deletions

View File

@ -3,5 +3,6 @@
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="src" path="Bank-Beispiel/src"/> <classpathentry kind="src" path="Bank-Beispiel/src"/>
<classpathentry kind="src" path="Roboter"/> <classpathentry kind="src" path="Roboter"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/5"/>
<classpathentry kind="output" path="bin"/> <classpathentry kind="output" path="bin"/>
</classpath> </classpath>

View File

@ -21,13 +21,13 @@ public class Nexus6 extends Robots {
} }
@Override @Override
public String speak(int[] zahlen) throws RobotException { 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 @Override
public int[] think(int[] zahlen) throws RobotException { 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());
} }

View File

@ -102,14 +102,6 @@ public class RobotFactory {
Robots robot=getRobot(id); Robots robot=getRobot(id);
return robot.toString(); 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} * Sucht den Roboter zur ID aus der HashMap und ermittelt über {@link Robots} Funktion die {@link RobotException}
* @param id * @param id

View File

@ -52,6 +52,11 @@ public abstract class Robots implements Robot{
} }
return error; return error;
} }
/**
* Unterscheidung der Ausgabe durch die Art der Sortierung: <br>
* R2D2: sortiert aufsteigend Wert an der Stelle 0 des Arrays ist kleiner als an der letzten Stelle <br>
* 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 { public String speak(int[] zahlen) throws RobotException {
if(powerStatus==false) if(powerStatus==false)

View File

@ -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!");
}
}

View File

@ -36,12 +36,6 @@ public class FactorySystem {
return rf.robotInfo(id); 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) { public RobotException robotBlackbox(int id) {
return rf.robotBlackbox(id); // Bei Rückgabe von null gab es noch keinen Fehler return rf.robotBlackbox(id); // Bei Rückgabe von null gab es noch keinen Fehler

View File

@ -0,0 +1,5 @@
package tpe.facade;
public class FactorySystemTest {
}