From c46de5e1c8df138301cd782f04fee6cc02b63bd9 Mon Sep 17 00:00:00 2001 From: Christiana Adekunle Date: Thu, 29 Oct 2020 23:13:14 +0100 Subject: [PATCH 1/4] adds passing (green) test for Multiplication --- src/test/java/tdd/setup/CalculatorTest.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/test/java/tdd/setup/CalculatorTest.java b/src/test/java/tdd/setup/CalculatorTest.java index 3bf16e9..4f7eded 100644 --- a/src/test/java/tdd/setup/CalculatorTest.java +++ b/src/test/java/tdd/setup/CalculatorTest.java @@ -16,4 +16,15 @@ 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()); + } } From 3a3c938040acf2c916e9d49c0f476b5b8fce32cc Mon Sep 17 00:00:00 2001 From: Christiana Adekunle Date: Thu, 29 Oct 2020 23:58:53 +0100 Subject: [PATCH 2/4] adds failing test for dividing by zero --- src/test/java/tdd/setup/CalculatorTest.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/test/java/tdd/setup/CalculatorTest.java b/src/test/java/tdd/setup/CalculatorTest.java index 4f7eded..3be2702 100644 --- a/src/test/java/tdd/setup/CalculatorTest.java +++ b/src/test/java/tdd/setup/CalculatorTest.java @@ -27,4 +27,14 @@ void calculatorMultiplication() { 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);}); + } + } From 1ba809a56ca41ecbde97b24baa79594daf5186e4 Mon Sep 17 00:00:00 2001 From: Christiana Adekunle Date: Fri, 30 Oct 2020 00:03:50 +0100 Subject: [PATCH 3/4] Bugfix, test is green when divding by zero and throws exception --- src/main/java/tdd/setup/Calculator.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/tdd/setup/Calculator.java b/src/main/java/tdd/setup/Calculator.java index 171f6d6..158e084 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("divide by zero"); + } + if(latestOperation.isEmpty()) { screen = screen + digit; } else { From edaf981b1a7bf12dde926ec27c83714797771017 Mon Sep 17 00:00:00 2001 From: Christiana Adekunle Date: Fri, 30 Oct 2020 16:18:44 +0100 Subject: [PATCH 4/4] adds red/failing test for adding a decimal number to a digit --- src/main/java/tdd/setup/Calculator.java | 2 +- src/test/java/tdd/setup/CalculatorTest.java | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/tdd/setup/Calculator.java b/src/main/java/tdd/setup/Calculator.java index 158e084..64fdadd 100644 --- a/src/main/java/tdd/setup/Calculator.java +++ b/src/main/java/tdd/setup/Calculator.java @@ -16,7 +16,7 @@ public void pressDigitKey(int digit) { if(digit > 9 || digit < 0) throw new IllegalArgumentException(); if (digit == 0 && latestOperation.equals("/")) { - throw new IllegalArgumentException("divide by zero"); + throw new IllegalArgumentException("division by zero not possible"); } if(latestOperation.isEmpty()) { diff --git a/src/test/java/tdd/setup/CalculatorTest.java b/src/test/java/tdd/setup/CalculatorTest.java index 3be2702..46ec7b5 100644 --- a/src/test/java/tdd/setup/CalculatorTest.java +++ b/src/test/java/tdd/setup/CalculatorTest.java @@ -37,4 +37,16 @@ void calculatorShouldThrowZeroDivisionException() { 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()); + } }