diff --git a/src/main/java/com/booleanuk/core/Basket.java b/src/main/java/com/booleanuk/core/Basket.java index df7a20aa..84750386 100644 --- a/src/main/java/com/booleanuk/core/Basket.java +++ b/src/main/java/com/booleanuk/core/Basket.java @@ -1,5 +1,41 @@ package com.booleanuk.core; +import java.util.ArrayList; + public class Basket { + ArrayList basket; + int maxCapBasket; + + public Basket() { + this.basket = new ArrayList<>(); + this.maxCapBasket = 6; + } + + public boolean add(String product) { + if (checkBasket() >= maxCapBasket) { + return false; + } + basket.add(product); + return basket.contains(product); + } + + public boolean remove(String product) { + basket.remove(product); + return basket.contains(product); + } + + public boolean changeCapBasket(int currentCapBasket, int newCapBasket) { + if (currentCapBasket == 0) { + this.maxCapBasket = newCapBasket; + return true; + } + else { + return false; + } + } + + public int checkBasket() { + return basket.size(); + } } diff --git a/src/main/java/com/booleanuk/core/design-domain.md b/src/main/java/com/booleanuk/core/design-domain.md new file mode 100644 index 00000000..64e21c8d --- /dev/null +++ b/src/main/java/com/booleanuk/core/design-domain.md @@ -0,0 +1,13 @@ +| Classes | Variables | Methods | Scenario | Outcome | +|----------|------------------------------------------|--------------------------------------|--------------------------------|------------------| +| `Basket` | `ArrayList products` | `add (String)` | Product will be added | true | +| | | | Product will not be added | false | +| | | | If the basket is full | Error | +| | | `remove (String)` | Product will be removed | true | +| | | | Product will not be removed | false | +| | | | If a product does not exist | Error | +| | | `checkBasket()` | If basket has products | Amount of bagels | +| | | | If basket is full | return 0 | +| | `int maxCapBasket, int currentCapBasket` | `changeCapBasket (int newCapBasket)` | If newCapBasket is more than 0 | true | +| | | | If newCapBasket is less than 1 | false | +| | | | | | diff --git a/src/test/java/com/booleanuk/core/BasketTest.java b/src/test/java/com/booleanuk/core/BasketTest.java index e35771b3..da3eacc5 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -5,4 +5,51 @@ class BasketTest { + @Test + public void addBagelTest() { + Basket basket = new Basket(); + Assertions.assertTrue(basket.add("Plane")); + } + + @Test + public void removeBagelTest() { + Basket basket = new Basket(); + basket.add("Sesame"); + Assertions.assertFalse(basket.remove("Nutella")); + } + + @Test + public void changeCapBasketTest() { + Basket basket = new Basket(); + Assertions.assertTrue(basket.changeCapBasket(0, 6)); + Assertions.assertFalse(basket.changeCapBasket(1, 1)); + } + + @Test + public void checkBasketTest() { + Basket basket = new Basket(); + Assertions.assertEquals(0, basket.checkBasket()); + for (int i = 0; i < 7; i++) { + basket.add("Sesame"); + } + Assertions.assertEquals(6, basket.checkBasket()); + } + + // Try remove bagel that does not exist + @Test + public void tryRemoveBagelThatDoesNotExistTest() { + Basket basket = new Basket(); + basket.add("Plane"); + basket.add("Sesame"); + Assertions.assertFalse(basket.remove("Nutella")); + } + + @Test + public void basketIsFullTest() { + Basket basket = new Basket(); + for (int i = 0; i < 7; i++) { + basket.add("Sesame"); + } + Assertions.assertFalse(basket.add("Plane")); + } }