diff --git a/src/main/java/tdd/setup/Calculator.java b/src/main/java/tdd/setup/Calculator.java index 171f6d6..5645456 100644 --- a/src/main/java/tdd/setup/Calculator.java +++ b/src/main/java/tdd/setup/Calculator.java @@ -9,8 +9,14 @@ public class Calculator { private String latestOperation = ""; + // 5. Fix zu diesem Test + public String readScreen() { + if ( Double.parseDouble(screen) == -1 ) { + screen = "Error"; + } return screen; + } public void pressDigitKey(int digit) { if(digit > 9 || digit < 0) throw new IllegalArgumentException(); @@ -43,10 +49,12 @@ public void pressNegative() { public void pressEquals() { var result = switch(latestOperation) { + + case "+" -> latestValue + Double.parseDouble(screen); case "-" -> latestValue - Double.parseDouble(screen); case "x" -> latestValue * Double.parseDouble(screen); - case "/" -> latestValue / Double.parseDouble(screen); + case "/" -> ( Double.parseDouble(screen) == 0 ) ? -1 : latestValue / Double.parseDouble(screen); default -> throw new IllegalArgumentException(); }; screen = Double.toString(result); diff --git a/src/test/java/tdd/setup/CalculatorTest.java b/src/test/java/tdd/setup/CalculatorTest.java index 3bf16e9..eac09ac 100644 --- a/src/test/java/tdd/setup/CalculatorTest.java +++ b/src/test/java/tdd/setup/CalculatorTest.java @@ -16,4 +16,18 @@ void calculatorCanDoTwoPlusTwo() { calc.pressEquals(); assertEquals("4", calc.readScreen()); } -} + @Test + @DisplayName("display should show String 'Error' after pressing 'equals'") + void calculatorCanDivideFourByZeroEquals() { + Calculator calc = new Calculator(); + calc.pressDigitKey(4); + calc.pressOperationKey("/"); + calc.pressDigitKey(0); + calc.pressEquals(); + assertEquals("Error", calc.readScreen()); + } +// 5. Fix zu diesem Test PASSED + + + +};