diff --git a/src/main/java/tdd/setup/Calculator.java b/src/main/java/tdd/setup/Calculator.java index 171f6d6..64fdadd 100644 --- a/src/main/java/tdd/setup/Calculator.java +++ b/src/main/java/tdd/setup/Calculator.java @@ -15,6 +15,10 @@ public String readScreen() { public void pressDigitKey(int digit) { if(digit > 9 || digit < 0) throw new IllegalArgumentException(); + if (digit == 0 && latestOperation.equals("/")) { + throw new IllegalArgumentException("division by zero not possible"); + } + if(latestOperation.isEmpty()) { screen = screen + digit; } else { diff --git a/src/test/java/tdd/setup/CalculatorTest.java b/src/test/java/tdd/setup/CalculatorTest.java index 3bf16e9..46ec7b5 100644 --- a/src/test/java/tdd/setup/CalculatorTest.java +++ b/src/test/java/tdd/setup/CalculatorTest.java @@ -16,4 +16,37 @@ void calculatorCanDoTwoPlusTwo() { calc.pressEquals(); assertEquals("4", calc.readScreen()); } + + @Test + @DisplayName("should display result after multiplying two positive numbers") + void calculatorMultiplication() { + Calculator calc = new Calculator(); + calc.pressDigitKey(5); + calc.pressOperationKey("x"); + calc.pressDigitKey(2); + calc.pressEquals(); + assertEquals("10", calc.readScreen()); + } + + @Test + @DisplayName("should throw exception, when dividing by zero") + void calculatorShouldThrowZeroDivisionException() { + Calculator calc = new Calculator(); + calc.pressDigitKey(2); + calc.pressOperationKey("/"); + assertThrows(IllegalArgumentException.class, () -> {calc.pressDigitKey(0);}); + } + + @Test + @DisplayName("should display result after adding a digit and decimal number") + void calculatorCanAddDecimalNo() { + Calculator calc = new Calculator(); + calc.pressDigitKey(2); + calc.pressOperationKey("+"); + calc.pressDigitKey(1); + calc.pressDotKey(); + calc.pressDigitKey(5); + calc.pressEquals(); + assertEquals("3.5", calc.readScreen()); + } }