diff --git a/DomainModel.md b/DomainModel.md new file mode 100644 index 0000000..61838cc --- /dev/null +++ b/DomainModel.md @@ -0,0 +1,29 @@ +# Domain Model + +## CohortManager Class + +| Method | Variables | Scenario | Output | +|---|---|---|---| +| | ArrayList\ cohorts | | | +| search(String name) | | Found name in cohorts | return true | +| | | Did not find name in cohorts | return false | + +## ShoppingCart Class + +| Method | Variables | Scenario | Output | +|---|---|---|---| +| | ArrayList\ cart | | | +| getTotalCost() | | valid total cost | return total cost of items in basket | +| | | invalid total cost | return -1 | +| getReceipt() | | valid list of items | return receipt String | +| | | invalid list of items | return null | +| addItem(ShopItem item) | | valid item | add item to cart | +| | | invalid item | throw error| + +## ShopItem Class +| Method | Variables | Scenario | Output | +|---|---|---|---| +| | String name | | | +| | Float price | | | +| getPrice() | | | return price | + 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..92d19a3 --- /dev/null +++ b/src/main/java/com/booleanuk/core/Basket.java @@ -0,0 +1,29 @@ +package com.booleanuk.core; + +import java.util.HashMap; + +public class Basket { + private HashMap items; + + public Basket() { + items = new HashMap<>(); + } + + boolean add(String product, int price) { + if (items.containsKey(product)) + return false; + + items.put(product, price); + return true; + } + + int total() { + int total = 0; + + for (Integer price : items.values()) { + total += price; + } + + return total; + } +} diff --git a/src/main/java/com/booleanuk/core/CohortManager.java b/src/main/java/com/booleanuk/core/CohortManager.java index 48a1b26..675a2f0 100644 --- a/src/main/java/com/booleanuk/core/CohortManager.java +++ b/src/main/java/com/booleanuk/core/CohortManager.java @@ -1,5 +1,15 @@ package com.booleanuk.core; +import java.util.ArrayList; + public class CohortManager { + private ArrayList cohorts; + + public CohortManager(ArrayList cohorts) { + this.cohorts = cohorts; + } -} + boolean search(String name) { + return cohorts.contains(name); + } +} \ No newline at end of file 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..bb0406b --- /dev/null +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -0,0 +1,44 @@ +package com.booleanuk.core; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class BasketTest { + @Test + void testAddNonExistingItem() { + Basket basket = new Basket(); + String itemName = "orange"; + int price = 5; + + Assertions.assertTrue(basket.add(itemName, price)); + } + + @Test + void testAddExistingItem() { + Basket basket = new Basket(); + String itemName = "orange"; + int price = 5; + + basket.add(itemName, price); + + Assertions.assertFalse(basket.add(itemName, price)); + } + + @Test + void testTotalEmptyBasket() { + Basket basket = new Basket(); + + Assertions.assertEquals(0, basket.total()); + } + + @Test + void testTotal() { + Basket basket = new Basket(); + basket.add("a", 5); + basket.add("b",35); + basket.add("c", 100); + basket.add("d", 70); + + Assertions.assertEquals(210, basket.total()); + } +} diff --git a/src/test/java/com/booleanuk/core/CohortManagerTest.java b/src/test/java/com/booleanuk/core/CohortManagerTest.java index 5dea868..8d6094e 100644 --- a/src/test/java/com/booleanuk/core/CohortManagerTest.java +++ b/src/test/java/com/booleanuk/core/CohortManagerTest.java @@ -1,8 +1,42 @@ package com.booleanuk.core; +import java.util.ArrayList; + import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; class CohortManagerTest { + @Test + public void searchForCohortThatExists() { + // setup + ArrayList cohorts = new ArrayList<>(){{ + add("Robin"); + add("Mathias"); + add("Magnus"); + add("Jonas"); + add("Thomas"); + }}; + CohortManager manager = new CohortManager(cohorts); + String name = "Robin"; + + // execute and verify + Assertions.assertTrue(manager.search(name)); + } + + @Test + public void searchForCohortThatDoesNotExist() { + // setup + ArrayList cohorts = new ArrayList<>(){{ + add("Robin"); + add("Mathias"); + add("Magnus"); + add("Jonas"); + add("Thomas"); + }}; + CohortManager manager = new CohortManager(cohorts); + String name = "Andreas"; + // execute and verify + Assertions.assertFalse(manager.search(name)); + } }