From 82763b0843a72bb1901fac7a648a174956ee4f33 Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 09:42:43 +0100 Subject: [PATCH 1/6] Exercise 1 markdown --- EXERCISE1.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/EXERCISE1.md b/EXERCISE1.md index 3af2ea2..ed5e829 100644 --- a/EXERCISE1.md +++ b/EXERCISE1.md @@ -37,6 +37,17 @@ So that I can pay for products at checkout, I'd like to be able to know the total cost of items in my basket. ``` +| Classes | Methods | Scenario | Result | +|----------|----------------------------------|------------------------|---------------------------| +| `Basket` | `addItem(String item, int cost)` | If basket isn't full | Adds item to basket | +| | | If basket is full | Cant add item to basket | +| | | | | +| | `calculateCost()` | If basket isn't empty | Returns cost of all items | +| | | If basket is empty | Return 0 | +| | | | | + + + ``` As an organised individual, So that I can evaluate my shopping habits, @@ -44,5 +55,12 @@ I'd like to see an itemised receipt that includes the name and price of the prod I bought as well as the quantity, and a total cost of my basket. ``` +| Classes | Methods | Scenario | Result | +|------------|-----------------------------|------------------------------|-----------------------------| +| `Receipt` | `getReceipt(Basket basket)` | Get a receipt after shopping | Returns info about the trip | +| | | | | +| | | | | + + - Add your domain models to this repository as a file named `domain-model`. This should either be a `.md` file like this one, or a screenshot / picture of your work. - Your model doesn't have to look like the example provided in this file. If you feel like you need more or less columns, feel free to go with that. There is no "right way" to do this kind of thing, we're just designing a system to make our lives easier when it comes to the coding part. \ No newline at end of file From fa223a8af193f582424b8963873d97b867d6a09a Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 10:41:32 +0100 Subject: [PATCH 2/6] added files and first test --- src/main/java/com/booleanuk/core/Basket.java | 5 +++ .../com/booleanuk/core/CohortManager.java | 7 ++++ .../java/com/booleanuk/core/BasketTest.java | 23 +++++++++++++ .../com/booleanuk/core/CohortManagerTest.java | 34 +++++++++++++++++++ 4 files changed, 69 insertions(+) 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..df7a20a --- /dev/null +++ b/src/main/java/com/booleanuk/core/Basket.java @@ -0,0 +1,5 @@ +package com.booleanuk.core; + +public class Basket { + +} diff --git a/src/main/java/com/booleanuk/core/CohortManager.java b/src/main/java/com/booleanuk/core/CohortManager.java index 48a1b26..eb943b7 100644 --- a/src/main/java/com/booleanuk/core/CohortManager.java +++ b/src/main/java/com/booleanuk/core/CohortManager.java @@ -1,5 +1,12 @@ package com.booleanuk.core; +import java.lang.reflect.Array; +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..d4e1641 --- /dev/null +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -0,0 +1,23 @@ +package com.booleanuk.core; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.HashMap; + +public class BasketTest { + + @Test + public void addProductNotInBasket(){ + // Setup + Basket basket = new Basket(); + String productName = "crisps"; + int price = 30; + + // Execute and verify + Assertions.assertTrue(basket.add(productName, price)); + } + + + +} diff --git a/src/test/java/com/booleanuk/core/CohortManagerTest.java b/src/test/java/com/booleanuk/core/CohortManagerTest.java index 5dea868..2dffe8f 100644 --- a/src/test/java/com/booleanuk/core/CohortManagerTest.java +++ b/src/test/java/com/booleanuk/core/CohortManagerTest.java @@ -3,6 +3,40 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import java.util.ArrayList; + class CohortManagerTest { + @Test + public void searchForCohortsThatExists(){ + // Setup + CohortManager cohortManager = new CohortManager(); + ArrayList cohorts = new ArrayList<>(){{ + add("Liverpool"); + add("Tottenham"); + add("Arsenal"); + add("Newcastle"); + }}; + String name = "Liverpool"; + + // Execute and verify + Assertions.assertTrue(cohortManager.search(cohorts, name)); + } + + @Test + public void searchForCohortsThatDoesNotExists(){ + // Setup + CohortManager cohortManager = new CohortManager(); + ArrayList cohorts = new ArrayList<>(){{ + add("Liverpool"); + add("Tottenham"); + add("Arsenal"); + add("Newcastle"); + }}; + String name = "Burnley"; + + // Execute and verify + Assertions.assertFalse(cohortManager.search(cohorts, name)); + } + } From 138dccbce244201b0474941799979f1438b918ee Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 10:50:44 +0100 Subject: [PATCH 3/6] another test --- src/main/java/com/booleanuk/core/Basket.java | 2 ++ src/test/java/com/booleanuk/core/BasketTest.java | 13 ++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/booleanuk/core/Basket.java b/src/main/java/com/booleanuk/core/Basket.java index df7a20a..7e8bd10 100644 --- a/src/main/java/com/booleanuk/core/Basket.java +++ b/src/main/java/com/booleanuk/core/Basket.java @@ -1,5 +1,7 @@ package com.booleanuk.core; +import java.util.HashMap; + public class Basket { } diff --git a/src/test/java/com/booleanuk/core/BasketTest.java b/src/test/java/com/booleanuk/core/BasketTest.java index d4e1641..ab0b9a1 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -18,6 +18,17 @@ public void addProductNotInBasket(){ Assertions.assertTrue(basket.add(productName, price)); } - + @Test + public void addProductAlreadyInBasket(){ + // Setup + Basket basket = new Basket(); + String productName = "crisps"; + int price = 30; + + basket.add(productName, price); + + // Execute and verify + Assertions.assertFalse(basket.add(productName, price)); + } } From 46bb8ea23f1e6bbb1ceaa6d6e4467178d90fe5c7 Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 10:51:58 +0100 Subject: [PATCH 4/6] implemented add method --- src/main/java/com/booleanuk/core/Basket.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/com/booleanuk/core/Basket.java b/src/main/java/com/booleanuk/core/Basket.java index 7e8bd10..78594d9 100644 --- a/src/main/java/com/booleanuk/core/Basket.java +++ b/src/main/java/com/booleanuk/core/Basket.java @@ -4,4 +4,14 @@ public class Basket { + HashMap items = new HashMap<>(); + + public boolean add(String product, int price){ + if (!items.containsKey(product)){ + items.put(product, price); + return true; + } + return false; + } + } From 0b1bcb8377b801448028404d3481bb579f9b431b Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 11:02:15 +0100 Subject: [PATCH 5/6] added test for total cost --- src/test/java/com/booleanuk/core/BasketTest.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/booleanuk/core/BasketTest.java b/src/test/java/com/booleanuk/core/BasketTest.java index ab0b9a1..d3d7ab7 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -3,8 +3,6 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import java.util.HashMap; - public class BasketTest { @Test @@ -31,4 +29,17 @@ public void addProductAlreadyInBasket(){ Assertions.assertFalse(basket.add(productName, price)); } + @Test + public void totalCostBasket(){ + Basket basket = new Basket(); + + basket.add("crisps", 30); + basket.add("fanta", 25); + basket.add("haribo", 30); + + int totalCost = basket.total(); + + Assertions.assertEquals(85, totalCost); + } + } From 3ae997f79a9871b509a2740675500f41f0f7797c Mon Sep 17 00:00:00 2001 From: Robin Kaga Date: Thu, 9 Jan 2025 11:05:53 +0100 Subject: [PATCH 6/6] added total method --- src/main/java/com/booleanuk/core/Basket.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/com/booleanuk/core/Basket.java b/src/main/java/com/booleanuk/core/Basket.java index 78594d9..d061180 100644 --- a/src/main/java/com/booleanuk/core/Basket.java +++ b/src/main/java/com/booleanuk/core/Basket.java @@ -14,4 +14,14 @@ public boolean add(String product, int price){ return false; } + public int total(){ + int totalCost = 0; + + for (Integer price : items.values()){ + totalCost += price; + } + + return totalCost; + } + }