From 996b793f9619eee5b71fd4456512b2afaef123f6 Mon Sep 17 00:00:00 2001 From: ansta1994 Date: Wed, 14 Aug 2024 14:15:46 +0200 Subject: [PATCH 01/12] The Design Domain --- src/main/java/com/booleanuk/core/design-domain.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/main/java/com/booleanuk/core/design-domain.md 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..a9b1b1fa --- /dev/null +++ b/src/main/java/com/booleanuk/core/design-domain.md @@ -0,0 +1,10 @@ +| 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 | +| | `int maxCapBasket` | `changeCapBasket (int newCapBasket)` | If newCapBasket is more than 0 | true | +| | | | If newCapBasket is less than 1 | false | From 927fb47b655ba915bf7b0a0d208711a61c093ee6 Mon Sep 17 00:00:00 2001 From: ansta1994 Date: Wed, 14 Aug 2024 14:17:05 +0200 Subject: [PATCH 02/12] First test for adding bagels --- src/test/java/com/booleanuk/core/BasketTest.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/test/java/com/booleanuk/core/BasketTest.java b/src/test/java/com/booleanuk/core/BasketTest.java index e35771b3..d5b75669 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -5,4 +5,9 @@ class BasketTest { + @Test + public void addBagelTest() { + Basket basket = new Basket(); + Assertions.assertTrue(basket.add("Plane")); + } } From 896e8a9801b3f9fb03366a8b0d46e0bb788339ee Mon Sep 17 00:00:00 2001 From: ansta1994 Date: Wed, 14 Aug 2024 14:51:09 +0200 Subject: [PATCH 03/12] Fixed the add method, test Green --- src/main/java/com/booleanuk/core/Basket.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/java/com/booleanuk/core/Basket.java b/src/main/java/com/booleanuk/core/Basket.java index df7a20aa..94f129bf 100644 --- a/src/main/java/com/booleanuk/core/Basket.java +++ b/src/main/java/com/booleanuk/core/Basket.java @@ -1,5 +1,19 @@ package com.booleanuk.core; +import java.util.ArrayList; + public class Basket { + ArrayList basket; + int maxCapBasket; + + public Basket() { + this.basket = new ArrayList<>(); + this.maxCapBasket = 5; + } + + public boolean add(String product) { + basket.add(product); + return basket.contains(product); + } } From 02102ac89e7cbe93d8deeb32fb285cefd405c7be Mon Sep 17 00:00:00 2001 From: ansta1994 Date: Wed, 14 Aug 2024 15:01:10 +0200 Subject: [PATCH 04/12] First test for removing bagels, Red --- src/test/java/com/booleanuk/core/BasketTest.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/test/java/com/booleanuk/core/BasketTest.java b/src/test/java/com/booleanuk/core/BasketTest.java index d5b75669..38fd6d4f 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -10,4 +10,11 @@ public void addBagelTest() { Basket basket = new Basket(); Assertions.assertTrue(basket.add("Plane")); } + + @Test + public void removeBagelTest() { + Basket basket = new Basket(); + basket.add("Sesame"); + Assertions.assertTrue(basket.remove("Nutella")); + } } From da5b19add8af28533861111f1bc6f95f3df21569 Mon Sep 17 00:00:00 2001 From: ansta1994 Date: Wed, 14 Aug 2024 15:07:55 +0200 Subject: [PATCH 05/12] Changed the True to False in the remove test, Fixed the remove method, Green --- src/main/java/com/booleanuk/core/Basket.java | 5 +++++ src/test/java/com/booleanuk/core/BasketTest.java | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/booleanuk/core/Basket.java b/src/main/java/com/booleanuk/core/Basket.java index 94f129bf..d92ad8bd 100644 --- a/src/main/java/com/booleanuk/core/Basket.java +++ b/src/main/java/com/booleanuk/core/Basket.java @@ -16,4 +16,9 @@ public boolean add(String product) { basket.add(product); return basket.contains(product); } + + public boolean remove(String product) { + basket.remove(product); + return basket.contains(product); + } } diff --git a/src/test/java/com/booleanuk/core/BasketTest.java b/src/test/java/com/booleanuk/core/BasketTest.java index 38fd6d4f..d6dac2c3 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -15,6 +15,6 @@ public void addBagelTest() { public void removeBagelTest() { Basket basket = new Basket(); basket.add("Sesame"); - Assertions.assertTrue(basket.remove("Nutella")); + Assertions.assertFalse(basket.remove("Nutella")); } } From b9807f02fa9f44251f84787566176a8dc676248a Mon Sep 17 00:00:00 2001 From: ansta1994 Date: Wed, 14 Aug 2024 15:19:33 +0200 Subject: [PATCH 06/12] First test for changing the basket size, Red --- src/test/java/com/booleanuk/core/BasketTest.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/test/java/com/booleanuk/core/BasketTest.java b/src/test/java/com/booleanuk/core/BasketTest.java index d6dac2c3..8794e3a4 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -17,4 +17,11 @@ public void removeBagelTest() { 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)); + } } From 27b989d6c8bd1af7b5b816b06a6a3c8b3d8465e3 Mon Sep 17 00:00:00 2001 From: ansta1994 Date: Wed, 14 Aug 2024 15:31:00 +0200 Subject: [PATCH 07/12] - Added a variable for the changeCapBasket method in the Domain - Fixed the changeCapBasket and added a max size from 5 to 6 --- src/main/java/com/booleanuk/core/Basket.java | 12 ++++++++++- .../java/com/booleanuk/core/design-domain.md | 20 +++++++++---------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/booleanuk/core/Basket.java b/src/main/java/com/booleanuk/core/Basket.java index d92ad8bd..a1b3ae6c 100644 --- a/src/main/java/com/booleanuk/core/Basket.java +++ b/src/main/java/com/booleanuk/core/Basket.java @@ -9,7 +9,7 @@ public class Basket { public Basket() { this.basket = new ArrayList<>(); - this.maxCapBasket = 5; + this.maxCapBasket = 6; } public boolean add(String product) { @@ -21,4 +21,14 @@ 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; + } + } } diff --git a/src/main/java/com/booleanuk/core/design-domain.md b/src/main/java/com/booleanuk/core/design-domain.md index a9b1b1fa..8dfee2d6 100644 --- a/src/main/java/com/booleanuk/core/design-domain.md +++ b/src/main/java/com/booleanuk/core/design-domain.md @@ -1,10 +1,10 @@ -| 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 | -| | `int maxCapBasket` | `changeCapBasket (int newCapBasket)` | If newCapBasket is more than 0 | true | -| | | | If newCapBasket is less than 1 | false | +| 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 | +| | `int maxCapBasket, int currentCapBasket` | `changeCapBasket (int newCapBasket)` | If newCapBasket is more than 0 | true | +| | | | If newCapBasket is less than 1 | false | From 2bd6348ae6df83a63948d05d1a6079ce4d89065b Mon Sep 17 00:00:00 2001 From: ansta1994 Date: Wed, 14 Aug 2024 15:54:06 +0200 Subject: [PATCH 08/12] - Added checkBasket to the Domain - Added the first test for the checkBasket, Red --- src/main/java/com/booleanuk/core/design-domain.md | 3 +++ src/test/java/com/booleanuk/core/BasketTest.java | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/src/main/java/com/booleanuk/core/design-domain.md b/src/main/java/com/booleanuk/core/design-domain.md index 8dfee2d6..822275e6 100644 --- a/src/main/java/com/booleanuk/core/design-domain.md +++ b/src/main/java/com/booleanuk/core/design-domain.md @@ -6,5 +6,8 @@ | | | `remove (String)` | Product will be removed | true | | | | | Product will not be removed | false | | | | | If a product does not exist | Error | +| | | `checkBasket()` | If basket has space | true | +| | | | If basket is full | false | | | `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 8794e3a4..7bb98faa 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -24,4 +24,10 @@ public void changeCapBasketTest() { Assertions.assertTrue(basket.changeCapBasket(0, 6)); Assertions.assertFalse(basket.changeCapBasket(1, 1)); } + + @Test + public void checkBasketTest() { + Basket basket = new Basket(); + Assertions.assertTrue(basket.checkBasket()); + } } From 29bd49b0a67e7dec98996e97944c1a0e615d6e1c Mon Sep 17 00:00:00 2001 From: ansta1994 Date: Wed, 14 Aug 2024 16:06:00 +0200 Subject: [PATCH 09/12] - Changed the outcome for the checkBasket in the Domain - Changes in the checkBasketTest, still Red --- .../java/com/booleanuk/core/design-domain.md | 26 +++++++++---------- .../java/com/booleanuk/core/BasketTest.java | 6 ++++- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/booleanuk/core/design-domain.md b/src/main/java/com/booleanuk/core/design-domain.md index 822275e6..64e21c8d 100644 --- a/src/main/java/com/booleanuk/core/design-domain.md +++ b/src/main/java/com/booleanuk/core/design-domain.md @@ -1,13 +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 space | true | -| | | | If basket is full | false | -| | `int maxCapBasket, int currentCapBasket` | `changeCapBasket (int newCapBasket)` | If newCapBasket is more than 0 | true | -| | | | If newCapBasket is less than 1 | false | -| | | | | | +| 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 7bb98faa..bb325169 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -28,6 +28,10 @@ public void changeCapBasketTest() { @Test public void checkBasketTest() { Basket basket = new Basket(); - Assertions.assertTrue(basket.checkBasket()); + Assertions.assertEquals(0, basket.checkBasket()); + for (int i = 0; i < 7; i++) { + basket.add("Sesame"); + } + Assertions.assertEquals(6, basket.checkBasket()); } } From 5a39c094ca8d4c78f5e011e543f85d4a735ded82 Mon Sep 17 00:00:00 2001 From: ansta1994 Date: Wed, 14 Aug 2024 16:11:35 +0200 Subject: [PATCH 10/12] - Added the checkBasket that returns the size of the Basket - Added: if Basket is less than maxCapBasket, then return false in the add method --- src/main/java/com/booleanuk/core/Basket.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/com/booleanuk/core/Basket.java b/src/main/java/com/booleanuk/core/Basket.java index a1b3ae6c..84750386 100644 --- a/src/main/java/com/booleanuk/core/Basket.java +++ b/src/main/java/com/booleanuk/core/Basket.java @@ -13,6 +13,9 @@ public Basket() { } public boolean add(String product) { + if (checkBasket() >= maxCapBasket) { + return false; + } basket.add(product); return basket.contains(product); } @@ -31,4 +34,8 @@ public boolean changeCapBasket(int currentCapBasket, int newCapBasket) { return false; } } + + public int checkBasket() { + return basket.size(); + } } From cd9731f2b0ec9bef6c04715479f64a088b00863d Mon Sep 17 00:00:00 2001 From: ansta1994 Date: Wed, 14 Aug 2024 16:43:47 +0200 Subject: [PATCH 11/12] Added: tryRemoveBagelThatDoesNotExistTest Test if the user tries to remove a non existing bagel --- src/test/java/com/booleanuk/core/BasketTest.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/test/java/com/booleanuk/core/BasketTest.java b/src/test/java/com/booleanuk/core/BasketTest.java index bb325169..581e4e04 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -34,4 +34,14 @@ public void checkBasketTest() { } 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"); + boolean remove = basket.remove("Nutella"); + Assertions.assertFalse(remove); + } } From 02b3fdc4eb20f544623355539c8a95c6ef5a138f Mon Sep 17 00:00:00 2001 From: ansta1994 Date: Wed, 14 Aug 2024 16:59:08 +0200 Subject: [PATCH 12/12] Added basketIsFullTest to test if the user tries to add more bagels if the basket is already full - Removed the boolean and refactor to less code --- src/test/java/com/booleanuk/core/BasketTest.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/booleanuk/core/BasketTest.java b/src/test/java/com/booleanuk/core/BasketTest.java index 581e4e04..da3eacc5 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -41,7 +41,15 @@ public void tryRemoveBagelThatDoesNotExistTest() { Basket basket = new Basket(); basket.add("Plane"); basket.add("Sesame"); - boolean remove = basket.remove("Nutella"); - Assertions.assertFalse(remove); + 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")); } }