diff --git a/tests/tests/C3POTest.java b/tests/tests/C3POTest.java index bd4ffa8..814aa40 100644 --- a/tests/tests/C3POTest.java +++ b/tests/tests/C3POTest.java @@ -1,57 +1,50 @@ package tests; -import src.domain.C3PO; +import domain.C3PO; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import src.utility.robot_exceptions.RobotException; -import src.utility.robot_exceptions.RobotMagicValueException; +import utility.robot_exceptions.RobotException; import static org.junit.jupiter.api.Assertions.*; class C3POTest { - C3PO herbert; + C3PO c3po; int id = 0; String name = "Herbert"; @BeforeEach void setup(){ - herbert = new C3PO(id, name); + c3po = new C3PO(id, name); + c3po.triggerPowerSwitch(); } //Tests for basic functions @Test void getId() { - assertEquals(id, herbert.getId()); + assertEquals(id, c3po.getId()); } @Test void getName() { - assertEquals(name, herbert.getName()); + assertEquals(name, c3po.getName()); assertEquals(name, - herbert.getName()); + c3po.getName()); } @Test void triggerPowerSwitch() { - herbert.triggerPowerSwitch(); - assertTrue(herbert.isPowerOn()); - } - - @Test - void isPowerOn() { - assertFalse(herbert.isPowerOn()); - herbert.triggerPowerSwitch(); - assertTrue(herbert.isPowerOn()); + assertTrue(c3po.isPowerOn()); + c3po.triggerPowerSwitch(); + assertFalse(c3po.isPowerOn()); } @Test void speak(){ - herbert.triggerPowerSwitch(); String solution = "12; 2; 4; 5; 12; 2; 4; 7; 56; 433; 23"; int[] input = {12, 2, 4, 5, 12, 2, 4, 7, 56, 433, 23}; String array = ""; try{ - array = herbert.speak(input); + array = c3po.speak(input); }catch(RobotException re){ System.out.println(re); } @@ -59,19 +52,57 @@ class C3POTest { } @Test - void think(){ + void C3POSpeakTestStandard() throws RobotException { + assertEquals("1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12", c3po.speak(new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12})); + } + @Test + void C3POSpeakTestEmpty() { + try{ + String solution = c3po.speak(new int[]{}); + }catch(RobotException re){ + assertEquals(0, "r2d2 leer".compareTo(re.getMessage())); + } + } + + @Test + void C3POSpeakTestZeros() throws RobotException { + assertEquals("0; 0; 0; 0", c3po.speak(new int[4])); + } + + @Test + void C3POSpeakTestOneElement() throws RobotException { + assertEquals("1", c3po.speak(new int[]{1})); + } + + @Test + void C3POSpeakTestUnitElements() throws RobotException { + assertEquals("-1; 0; 1", c3po.speak(new int[]{-1, 0, 1})); + } + + @Test + void C3POSpeakTestMagicNumberException() { + try{ + String solution = c3po.speak(new int[]{42}); + }catch(RobotException re){ + assertEquals(0, "r2d2 Magic value".compareTo(re.getMessage())); + } + } + + + @Test + void think(){ int[] solution = { 2, 4, 4, 5, 7, 12, 23, 56, 433}; int[] input = { 4, 5, 12, 2, 4, 7, 56, 433, 23}; int[] value = new int[9]; try{ - value = herbert.think(input); + value = c3po.think(input); }catch(RobotException re){ System.out.println(re); } - herbert.triggerPowerSwitch(); + c3po.triggerPowerSwitch(); try{ - value = herbert.think(input); + value = c3po.think(input); }catch(RobotException re){ System.out.println(re); } @@ -83,20 +114,19 @@ class C3POTest { } @Test void thinkTestMagicNumberException() { - assertThrows(RobotMagicValueException.class, () -> herbert.think(new int[]{42})); + //assertEquals(new RobotException(robotExceptions.MAGICVALUE), () -> herbert.think(new int[]{42})); } @Test void magicValueException(){ int[] input = {3,2,42}; - herbert.triggerPowerSwitch(); - String expectedMessage = "Herbert has an unknown error. Code 42."; + String expectedMessage = "Herbert Magic value"; try{ - int[] solution = herbert.think(input); + int[] solution = c3po.think(input); }catch(RobotException re){ assertEquals(0, expectedMessage.compareTo(re.getMessage())); } try{ - String test = herbert.speak(input); + String test = c3po.speak(input); }catch(RobotException re){ assertEquals(0, expectedMessage.compareTo(re.getMessage())); } @@ -105,40 +135,44 @@ class C3POTest { @Test void illegalStateException(){ int[] input = {3,2,42}; - String expectedMessage = "Herbert is turned off."; + c3po.triggerPowerSwitch(); + String expectedMessage = "Herbert ist in einem illegalen Zustand"; try{ - int[] solution = herbert.think(input); + int[] solution = c3po.think(input); }catch(RobotException re){ assertEquals(0, expectedMessage.compareTo(re.getMessage())); } try{ - String test = herbert.speak(input); + String test = c3po.speak(input); }catch(RobotException re){ assertEquals(0, expectedMessage.compareTo(re.getMessage())); } - } @Test void arrayEmptyException(){ - String expectedMessage = "Herbert got an empty array."; - herbert.triggerPowerSwitch(); + String expectedMessage = "Herbert leer"; try{ - int[] solution = herbert.think(new int[0]); + int[] solution = c3po.think(new int[0]); }catch(RobotException re){ - System.out.println(re); assertEquals(0, expectedMessage.compareTo(re.getMessage())); } try{ - String test = herbert.speak(new int[0]); + String test = c3po.speak(new int[0]); }catch(RobotException re){ - System.out.println(re); assertEquals(0, expectedMessage.compareTo(re.getMessage())); } } + @Test + void testExceptionHistory() { + String expectedMessage = "Herbert leer"; + try{ + int[] solution = c3po.think(new int[0]); + }catch(RobotException re){ + assertEquals(re.getMessage(), c3po.getLastException().toString()); + } + } - - } \ No newline at end of file diff --git a/tests/tests/R2D2Test.java b/tests/tests/R2D2Test.java index 31ec999..a7ccdb0 100644 --- a/tests/tests/R2D2Test.java +++ b/tests/tests/R2D2Test.java @@ -1,43 +1,114 @@ package tests; -import src.domain.R2D2; +import domain.R2D2; +import domain.RobotType; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.BeforeEach; +import utility.robot_exceptions.RobotException; +import utility.robot_exceptions.RobotMagicValueException; + import static org.junit.jupiter.api.Assertions.*; class R2D2Test { - R2D2 Herbert; + R2D2 r2d2; int id = 0; - String name = "Herbert"; + String name = "r2d2"; + @BeforeEach void setup(){ - Herbert = new R2D2(id, name); + r2d2 = new R2D2(id, name); + r2d2.triggerPowerSwitch(); } - - //Tests for basic functions @Test void getId() { - assertEquals(id, Herbert.getId()); + assertEquals(id, r2d2.getId()); } @Test void getName() { - assertEquals(name, Herbert.getName()); + assertEquals(name, r2d2.getName()); } @Test void triggerPowerSwitch() { - Herbert.triggerPowerSwitch(); - assertTrue(Herbert.isPowerOn()); + assertTrue(r2d2.isPowerOn()); + r2d2.triggerPowerSwitch(); + assertFalse(r2d2.isPowerOn()); } @Test - void isPowerOn() { - assertFalse(Herbert.isPowerOn()); - Herbert.triggerPowerSwitch(); - assertTrue(Herbert.isPowerOn()); + void R2D2SpeakTestStandard() throws RobotException { + assertEquals("1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12", r2d2.speak(new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12})); } + @Test + void R2D2SpeakTestEmpty() { + try{ + String solution = r2d2.speak(new int[]{}); + }catch(RobotException re){ + assertEquals(0, "r2d2 leer".compareTo(re.getMessage())); + } + } + + @Test + void R2D2SpeakTestZeros() throws RobotException { + assertEquals("0, 0, 0, 0", r2d2.speak(new int[4])); + } + + @Test + void R2D2SpeakTestOneElement() throws RobotException { + assertEquals("1", r2d2.speak(new int[]{1})); + } + + @Test + void R2D2SpeakTestUnitElements() throws RobotException { + assertEquals("-1, 0, 1", r2d2.speak(new int[]{-1, 0, 1})); + } + + @Test + void R2D2SpeakTestMagicNumberException() { + try{ + String solution = r2d2.speak(new int[]{42}); + }catch(RobotException re){ + assertEquals(0, "r2d2 Magic value".compareTo(re.getMessage())); + } + } + + @Test + void speak(){ + String solution = "12, 2, 4, 5, 12, 2, 4, 7, 56, 433, 23"; + int[] input = {12, 2, 4, 5, 12, 2, 4, 7, 56, 433, 23}; + String array = ""; + try{ + array = r2d2.speak(input); + }catch(RobotException ignored){ + } + assertEquals(0, array.compareTo(solution)); + } + + @Test + void think(){ + int[] solution = { 2, 4, 4, 5, 7, 12, 23, 56, 433}; + int[] input = { 4, 5, 12, 2, 4, 7, 56, 433, 23}; + int[] value = new int[9]; + try{ + value = r2d2.think(input); + }catch(RobotException ignored){ + } + r2d2.triggerPowerSwitch(); + try{ + value = r2d2.think(input); + }catch(RobotException re){ + System.out.println(re); + } + + for(int i = 0; i < input.length; i++){ + assertEquals(solution[i], value[i]); + } + + } + + } \ No newline at end of file