From c05d208e39dd8b5b021fbd1ca5a63b59dcdbf884 Mon Sep 17 00:00:00 2001
From: Laurent Pierron <Laurent.Pierron@inria.fr>
Date: Sun, 29 Jan 2023 20:11:49 +0100
Subject: [PATCH] Adding multiplication.

---
 src/main/java/fr/nancy/iut/CalcEngine.java     | 13 +++++++++++++
 src/test/java/fr/nancy/iut/CalcEngineTest.java | 14 ++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/src/main/java/fr/nancy/iut/CalcEngine.java b/src/main/java/fr/nancy/iut/CalcEngine.java
index fab1934..bf72af2 100755
--- a/src/main/java/fr/nancy/iut/CalcEngine.java
+++ b/src/main/java/fr/nancy/iut/CalcEngine.java
@@ -81,6 +81,14 @@ public class CalcEngine
         applyOperator('-');
     }
 
+    /**
+     * The '*' button was pressed.
+     */
+    public void multiply()
+    {
+        applyOperator('*');
+    }
+
     /**
      * The '=' button was pressed.
      */
@@ -156,6 +164,11 @@ public class CalcEngine
                 haveLeftOperand = true;
                 leftOperand = displayValue;
             }
+            case '*' -> {
+                displayValue = leftOperand * displayValue;
+                haveLeftOperand = true;
+                leftOperand = displayValue;
+            }
             default -> keySequenceError();
         }
     }
diff --git a/src/test/java/fr/nancy/iut/CalcEngineTest.java b/src/test/java/fr/nancy/iut/CalcEngineTest.java
index ddc97b8..1ab7bd3 100644
--- a/src/test/java/fr/nancy/iut/CalcEngineTest.java
+++ b/src/test/java/fr/nancy/iut/CalcEngineTest.java
@@ -91,4 +91,18 @@ class CalcEngineTest {
         // Return the result, which should be 5.
         assertEquals(5, engine.getDisplayValue());
     }
+
+    @Test
+    @DisplayName("Testing the multiply operation : 9 * 4 = 36")
+    void testMultiply() {
+        // Make sure the engine is in a valid starting state.
+        engine.clear();
+        // Simulate the presses: 9 - 4 =
+        engine.numberPressed(9);
+        engine.multiply();
+        engine.numberPressed(4);
+        engine.equals();
+        // Return the result, which should be 5.
+        assertEquals(36, engine.getDisplayValue());
+    }
 }
-- 
GitLab