From d74a84ee9d00e6df64b76bf8ee191d026044f5d2 Mon Sep 17 00:00:00 2001 From: Jonas Finborud Nyman Date: Thu, 9 Jan 2025 09:37:55 +0100 Subject: [PATCH 1/4] Finished exercise 1 --- domain-model.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 domain-model.md diff --git a/domain-model.md b/domain-model.md new file mode 100644 index 0000000..355f640 --- /dev/null +++ b/domain-model.md @@ -0,0 +1,35 @@ +# Domain Model + +## CohortManager Class + +| Method | Member Variables | Scenario | Result | +|------------------------------|------------------------------|---------------------------|--------------| +| | ArrayList cohortList | | | +| searchForCohort(String name) | | Name is in cohortList | Return true | +| | | Name is not in cohortList | Return false | + + +1. + +## SupermarketCashier Class + +| Method | Member Variables | Scenario | Result | +|------------------------------------------|------------------|---------------------------------------------------|------------------| +| | int totalCost | | | +| calculateCost(ArrayList groceries) | | Calculates the accumulated value of the groceries | Return totalCost | +| | | List is null | Return -1 | + + +2. +| Method | Member Variables | Scenario | Result | +|-----------------------------------------|--------------------|--------------------------------------------------------------------------|--------| +| | Receipt newReceipt | | | +| printReceipt(ArrayList groceries) | | Creates a receipt with createReceipt and prints the data to the terminal | | +| | | Is unable to create a receipt. Prints error-message to the terminal | | + +| Method | Member Variables | Scenario | Result | +|------------------------------------------|--------------------|---------------------------------------------------------------------|-------------------| +| | Receipt newReceipt | | | +| createReceipt(ArrayList groceries) | | Creates a new receipt with the requested information and returns it | Return newReceipt | +| | | List is null | Return null | + From 1f51dba38785c94ce89eb5bb8e33a2187a310d35 Mon Sep 17 00:00:00 2001 From: Jonas Finborud Nyman Date: Thu, 9 Jan 2025 10:43:47 +0100 Subject: [PATCH 2/4] Finished exercise 2 RED --- src/main/java/com/booleanuk/core/Basket.java | 8 +++++ .../com/booleanuk/core/CohortManager.java | 6 +++- .../java/com/booleanuk/core/BasketTest.java | 19 ++++++++++ .../com/booleanuk/core/CohortManagerTest.java | 35 +++++++++++++++++++ 4 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/booleanuk/core/Basket.java create mode 100644 src/test/java/com/booleanuk/core/BasketTest.java diff --git a/src/main/java/com/booleanuk/core/Basket.java b/src/main/java/com/booleanuk/core/Basket.java new file mode 100644 index 0000000..92cf596 --- /dev/null +++ b/src/main/java/com/booleanuk/core/Basket.java @@ -0,0 +1,8 @@ +package com.booleanuk.core; + +import java.util.HashMap; + +public class Basket { + HashMap items = new HashMap<>(); + +} diff --git a/src/main/java/com/booleanuk/core/CohortManager.java b/src/main/java/com/booleanuk/core/CohortManager.java index 48a1b26..24f9699 100644 --- a/src/main/java/com/booleanuk/core/CohortManager.java +++ b/src/main/java/com/booleanuk/core/CohortManager.java @@ -1,5 +1,9 @@ package com.booleanuk.core; -public class CohortManager { +import java.util.ArrayList; +public class CohortManager { + public boolean search(ArrayList cohorts, String name) { + return cohorts.contains(name); + } } diff --git a/src/test/java/com/booleanuk/core/BasketTest.java b/src/test/java/com/booleanuk/core/BasketTest.java new file mode 100644 index 0000000..44e6d54 --- /dev/null +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -0,0 +1,19 @@ +package com.booleanuk.core; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class BasketTest { + + @Test + public void addItemThatDoesNotExist() { + Basket basket = new Basket(); + Assertions.assertTrue(basket.add("milk", 2)); + } + + @Test + public void addItemThatAlreadyExists() { + Basket basket = new Basket(); + Assertions.assertFalse(basket.add("butter", 4)); + } +} diff --git a/src/test/java/com/booleanuk/core/CohortManagerTest.java b/src/test/java/com/booleanuk/core/CohortManagerTest.java index 5dea868..98a2ecd 100644 --- a/src/test/java/com/booleanuk/core/CohortManagerTest.java +++ b/src/test/java/com/booleanuk/core/CohortManagerTest.java @@ -3,6 +3,41 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import java.util.ArrayList; + class CohortManagerTest { + @Test + public void searchForCohortThatExists() { + // 1. Setup + CohortManager cohortManager = new CohortManager(); + ArrayList cohorts = new ArrayList<>() {{ + add("JAEX1"); + add("JAEX2"); + add("JAEX3"); + add("JAEX4"); + add("JAEX5"); + }}; + String name = "JAEX5"; + + // 2. Execute / 3. Verify + Assertions.assertTrue(cohortManager.search(cohorts, name)); + } + + @Test + public void searchForCohortThatDoesNotExist() { + // 1. Setup + CohortManager cohortManager = new CohortManager(); + ArrayList cohorts = new ArrayList<>() {{ + add("JAEX1"); + add("JAEX2"); + add("JAEX3"); + add("JAEX4"); + add("JAEX5"); + }}; + String name = "JAEX6"; + + // 2. Execute / 3. Verify + Assertions.assertFalse(cohortManager.search(cohorts, name)); + } } From 19832735c0c2eb7fe1a6a09bc4b400e899f427a4 Mon Sep 17 00:00:00 2001 From: Jonas Finborud Nyman Date: Thu, 9 Jan 2025 10:56:01 +0100 Subject: [PATCH 3/4] Finished exercise 2 GREEN --- src/main/java/com/booleanuk/core/Basket.java | 16 ++++++++++++++++ .../java/com/booleanuk/core/BasketTest.java | 19 +++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/src/main/java/com/booleanuk/core/Basket.java b/src/main/java/com/booleanuk/core/Basket.java index 92cf596..6084d10 100644 --- a/src/main/java/com/booleanuk/core/Basket.java +++ b/src/main/java/com/booleanuk/core/Basket.java @@ -5,4 +5,20 @@ public class Basket { HashMap items = new HashMap<>(); + public boolean add(String product, int price) { + if(!items.containsKey(product)) { + items.put(product, price); + return true; + } else { + return false; + } + } + + public int total() { + int totalCost = 0; + for(String key : items.keySet()) { + totalCost += items.get(key); + } + return totalCost; + } } diff --git a/src/test/java/com/booleanuk/core/BasketTest.java b/src/test/java/com/booleanuk/core/BasketTest.java index 44e6d54..c440311 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -14,6 +14,25 @@ public void addItemThatDoesNotExist() { @Test public void addItemThatAlreadyExists() { Basket basket = new Basket(); + basket.items.put("butter", 4); Assertions.assertFalse(basket.add("butter", 4)); } + + @Test + public void getCorrectTotalCost() { + Basket basket = new Basket(); + basket.items.put("butter", 4); + basket.items.put("milk", 2); + basket.items.put("coffee", 7); + Assertions.assertTrue(basket.total() == 13); + } + + @Test + public void getWrongTotalCost() { + Basket basket = new Basket(); + basket.items.put("butter", 4); + basket.items.put("milk", 2); + basket.items.put("coffee", 7); + Assertions.assertFalse(basket.total() == 10); + } } From 9875757ab92a85a66921028f9c64d4d8a477996a Mon Sep 17 00:00:00 2001 From: Jonas Finborud Nyman Date: Thu, 9 Jan 2025 11:00:02 +0100 Subject: [PATCH 4/4] Finished exercise 2 Refactor --- src/main/java/com/booleanuk/core/Basket.java | 7 +------ src/test/java/com/booleanuk/core/BasketTest.java | 4 ++-- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/booleanuk/core/Basket.java b/src/main/java/com/booleanuk/core/Basket.java index 6084d10..403871b 100644 --- a/src/main/java/com/booleanuk/core/Basket.java +++ b/src/main/java/com/booleanuk/core/Basket.java @@ -6,12 +6,7 @@ public class Basket { HashMap items = new HashMap<>(); public boolean add(String product, int price) { - if(!items.containsKey(product)) { - items.put(product, price); - return true; - } else { - return false; - } + return items.put(product, price) == null; } public int total() { diff --git a/src/test/java/com/booleanuk/core/BasketTest.java b/src/test/java/com/booleanuk/core/BasketTest.java index c440311..b11dfac 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -24,7 +24,7 @@ public void getCorrectTotalCost() { basket.items.put("butter", 4); basket.items.put("milk", 2); basket.items.put("coffee", 7); - Assertions.assertTrue(basket.total() == 13); + Assertions.assertEquals(13, basket.total()); } @Test @@ -33,6 +33,6 @@ public void getWrongTotalCost() { basket.items.put("butter", 4); basket.items.put("milk", 2); basket.items.put("coffee", 7); - Assertions.assertFalse(basket.total() == 10); + Assertions.assertNotEquals(10, basket.total()); } }