From a99cbae42a3d315b47b219766a669d655984c533 Mon Sep 17 00:00:00 2001 From: Giar Rehani Date: Mon, 15 Jan 2024 13:26:15 +0100 Subject: [PATCH 01/22] domain model --- userStories.md | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 userStories.md diff --git a/userStories.md b/userStories.md new file mode 100644 index 00000000..e4d0659a --- /dev/null +++ b/userStories.md @@ -0,0 +1,63 @@ +``` +1. +As a member of the public, +So I can order a bagel before work, +I'd like to add a specific type of bagel to my basket. +``` + +| Classes | Methods | Scenario | Output | +|---------|-------------------|---------------------------|--------------| +| Basket | add(String bagel) | User adds bagel to basket | return true | +| | | User adds empty name | return false | +| | | User adds invalid bagel | return false | + + +``` +2. +As a member of the public, +So I can change my order, +I'd like to remove a bagel from my basket. +``` +| Classes | Methods | Scenario | Output | +|---------|----------------------|----------------------|--------------| +| Basket | remove(String bagel) | if bagel in basket | return true | +| | | if bagel is null | return false | +| | | if bagel not in list | return false | + + +``` +3. +As a member of the public, +So that I can not overfill my small bagel basket +I'd like to know when my basket is full when I try adding an item beyond my basket capacity. +``` + +| Classes | Methods | Scenario | Output | +|---------|---------------------------------------|----------------------|------------------------------| +| Basket | checkIfFull(basketList, String bagel) | if list not full | return "added bagel" | +| | | if list is full | return "list is full" | +| | | if bagel is null | return "bagel is null" | + +``` +4. +As a Bob's Bagels manager, +So that I can expand my business, +I’d like to change the capacity of baskets. +``` + +| Classes | Methods | Scenario | Output | +|---------|------------------------------|------------------|--------------| +| Basket | changeCapacity(int capacity) | if capacity > 0 | return true | +| | | if capacity < -1 | return false | + +``` +5. +As a member of the public +So that I can maintain my sanity +I'd like to know if I try to remove an item that doesn't exist in my basket. +``` + +| Classes | Methods | Scenario | Output | +|---------|---------------------------|----------------------|-------------------------------------| +| Basket | bagelInList(String bagel) | if bagel not in list | return "Bagel not in list" | +| | | if bagel in list | return "Bagel is removed from list" | From 2384ed19a461342057de3ddccb946a8e0fd6097c Mon Sep 17 00:00:00 2001 From: Giar Rehani Date: Mon, 15 Jan 2024 13:35:06 +0100 Subject: [PATCH 02/22] Added test for Add bagel --- 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 e35771b3..53d036d1 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -5,4 +5,11 @@ class BasketTest { + @Test + public void testAddBagelToBasketReturnTrue(){ + Basket basket = new Basket(); + boolean result = basket.add("chocolate"); + Assertions.assertTrue(result); + } + } From c62193f18760b4c49bf469598d0d1ab21b7a14fc Mon Sep 17 00:00:00 2001 From: Giar Rehani Date: Mon, 15 Jan 2024 13:38:50 +0100 Subject: [PATCH 03/22] Wrote code for the addBagel test --- src/main/java/com/booleanuk/core/Basket.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/main/java/com/booleanuk/core/Basket.java b/src/main/java/com/booleanuk/core/Basket.java index df7a20aa..75a37e1d 100644 --- a/src/main/java/com/booleanuk/core/Basket.java +++ b/src/main/java/com/booleanuk/core/Basket.java @@ -1,5 +1,24 @@ package com.booleanuk.core; +import java.util.ArrayList; + public class Basket { + ArrayList basket; + + public Basket(){ + this.basket = new ArrayList<>(); + } + + public boolean add(String bagel){ + if(bagel == null){ + return false; + } + if(bagel.isEmpty()){ + return false; + } + basket.add(bagel); + return true; + } + } From 78904fe841f810a090a8fb1904014d6dc93680ae Mon Sep 17 00:00:00 2001 From: Giar Rehani Date: Mon, 15 Jan 2024 13:41:57 +0100 Subject: [PATCH 04/22] Added more tests for add() to check for empty strings --- src/test/java/com/booleanuk/core/BasketTest.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/test/java/com/booleanuk/core/BasketTest.java b/src/test/java/com/booleanuk/core/BasketTest.java index 53d036d1..1537ed05 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -12,4 +12,12 @@ public void testAddBagelToBasketReturnTrue(){ Assertions.assertTrue(result); } + @Test + public void testAddBagelToBasketReturnFalse(){ + Basket basket = new Basket(); + Assertions.assertTrue(basket.add("vanilla")); + Assertions.assertTrue(basket.add("chocolate")); + Assertions.assertFalse(basket.add("")); + } + } From 019a7dc280f6baf43ee999009c49586ee95f82ae Mon Sep 17 00:00:00 2001 From: Giar Rehani Date: Mon, 15 Jan 2024 13:43:06 +0100 Subject: [PATCH 05/22] Added more tests for add() to check for empty strings --- src/test/java/com/booleanuk/core/BasketTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/booleanuk/core/BasketTest.java b/src/test/java/com/booleanuk/core/BasketTest.java index 1537ed05..4160b1ba 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -13,7 +13,7 @@ public void testAddBagelToBasketReturnTrue(){ } @Test - public void testAddBagelToBasketReturnFalse(){ + public void testAddBagelToBasketWithTrueAndFalse(){ Basket basket = new Basket(); Assertions.assertTrue(basket.add("vanilla")); Assertions.assertTrue(basket.add("chocolate")); From 8846e0e09555d524bb76c4d7a52c356e985dfcde Mon Sep 17 00:00:00 2001 From: Giar Rehani Date: Mon, 15 Jan 2024 13:53:35 +0100 Subject: [PATCH 06/22] Added removeBagel tests --- src/test/java/com/booleanuk/core/BasketTest.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/test/java/com/booleanuk/core/BasketTest.java b/src/test/java/com/booleanuk/core/BasketTest.java index 4160b1ba..a277ef0e 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -5,6 +5,7 @@ class BasketTest { + // ADD BAGELS TEST @Test public void testAddBagelToBasketReturnTrue(){ Basket basket = new Basket(); @@ -20,4 +21,19 @@ public void testAddBagelToBasketWithTrueAndFalse(){ Assertions.assertFalse(basket.add("")); } + // REMOVE BAGEL TESTS + @Test + public void testRemoveBagelFromBasketReturnsTrue(){ + Basket basket = new Basket(); + + basket.add("Cookie Dough"); + basket.add("Vanilla"); + basket.add("Chocolate"); + basket.add("Blueberry"); + + Assertions.assertTrue(basket.remove("Chocolate")); + Assertions.assertFalse(basket.remove("Plain")); + Assertions.assertTrue(basket.remove("Cookie Dough")); + } + } From 4b7a84d5bbe7a992ae66c9e93186b13fff0a5473 Mon Sep 17 00:00:00 2001 From: Giar Rehani Date: Mon, 15 Jan 2024 13:56:18 +0100 Subject: [PATCH 07/22] Added code for removeBagel tests --- 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 75a37e1d..5e695f23 100644 --- a/src/main/java/com/booleanuk/core/Basket.java +++ b/src/main/java/com/booleanuk/core/Basket.java @@ -9,6 +9,16 @@ public class Basket { public Basket(){ this.basket = new ArrayList<>(); } + public boolean remove(String bagel) { + if(bagel == null){ + return false; + } + if(!this.basket.contains(bagel)){ + return false; + } + this.basket.remove((bagel)); + return true; + } public boolean add(String bagel){ if(bagel == null){ From 1dcb0bb711d83109e6fb52931ce986d96098abdc Mon Sep 17 00:00:00 2001 From: Giar Rehani Date: Mon, 15 Jan 2024 14:08:20 +0100 Subject: [PATCH 08/22] Added tests for checking if basket is above capacity, and if basket is full --- .../java/com/booleanuk/core/BasketTest.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/test/java/com/booleanuk/core/BasketTest.java b/src/test/java/com/booleanuk/core/BasketTest.java index a277ef0e..affe06c2 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -36,4 +36,35 @@ public void testRemoveBagelFromBasketReturnsTrue(){ Assertions.assertTrue(basket.remove("Cookie Dough")); } + @Test + public void testCheckIfBasketIsAboveCapacity(){ + Basket basket = new Basket(); + + basket.add("Cookie Dough"); + basket.add("Vanilla"); + basket.add("Chocolate"); + basket.add("Blueberry"); + basket.add("Strawberry"); + basket.add("Plain"); + + Assertions.assertTrue(6, basket.capacity); + Assertions.assertFalse(4, basket.capacity); + } + + @Test + public void testAddBagelIfBasketIsFull(){ + Basket basket = new Basket(); + + basket.add("Cookie Dough"); + basket.add("Vanilla"); + basket.add("Chocolate"); + basket.add("Blueberry"); + basket.add("Strawberry"); + basket.add("Plain"); + + Assertions.assertFalse(4, basket.size()); + Assertions.assertTrue(5, basket.size()); + Assertions.assertFalse(6, basket.size()); + } + } From f2c841e79933fe4ffa37b833305c0c82101c855c Mon Sep 17 00:00:00 2001 From: Giar Rehani Date: Mon, 15 Jan 2024 14:13:35 +0100 Subject: [PATCH 09/22] Simplified 3rd user story --- userStories.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/userStories.md b/userStories.md index e4d0659a..a9173a84 100644 --- a/userStories.md +++ b/userStories.md @@ -32,11 +32,11 @@ So that I can not overfill my small bagel basket I'd like to know when my basket is full when I try adding an item beyond my basket capacity. ``` -| Classes | Methods | Scenario | Output | -|---------|---------------------------------------|----------------------|------------------------------| -| Basket | checkIfFull(basketList, String bagel) | if list not full | return "added bagel" | -| | | if list is full | return "list is full" | -| | | if bagel is null | return "bagel is null" | +| Classes | Methods | Scenario | Output | +|---------|-----------------------------|----------------------|------------------------------| +| Basket | checkIfFull(String bagel) | if list not full | return "added bagel" | +| | | if list is full | return "list is full" | +| | | if bagel is null | return "bagel is null" | ``` 4. From 0d217d7a313c600fd0d95cb35ca7046dfdc08b61 Mon Sep 17 00:00:00 2001 From: Giar Rehani Date: Mon, 15 Jan 2024 14:13:58 +0100 Subject: [PATCH 10/22] Simplified 3rd user story --- userStories.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/userStories.md b/userStories.md index a9173a84..fd0e385a 100644 --- a/userStories.md +++ b/userStories.md @@ -32,11 +32,11 @@ So that I can not overfill my small bagel basket I'd like to know when my basket is full when I try adding an item beyond my basket capacity. ``` -| Classes | Methods | Scenario | Output | -|---------|-----------------------------|----------------------|------------------------------| -| Basket | checkIfFull(String bagel) | if list not full | return "added bagel" | -| | | if list is full | return "list is full" | -| | | if bagel is null | return "bagel is null" | +| Classes | Methods | Scenario | Output | +|---------|-----------------------------|----------------------|--------------| +| Basket | checkIfFull(String bagel) | if list not full | return true | +| | | if list is full | return false | +| | | if bagel is null | return false | ``` 4. From 02b08f4b9c17b877dbeaa133c7c5d7d2d51893e9 Mon Sep 17 00:00:00 2001 From: Giar Rehani Date: Mon, 15 Jan 2024 14:17:12 +0100 Subject: [PATCH 11/22] Simplified 3rd user story --- userStories.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/userStories.md b/userStories.md index fd0e385a..5cf74b38 100644 --- a/userStories.md +++ b/userStories.md @@ -34,7 +34,7 @@ I'd like to know when my basket is full when I try adding an item beyond my bask | Classes | Methods | Scenario | Output | |---------|-----------------------------|----------------------|--------------| -| Basket | checkIfFull(String bagel) | if list not full | return true | +| Basket | checkIfFull() | if list not full | return true | | | | if list is full | return false | | | | if bagel is null | return false | From aebc0397715de8f3fcd347892ab7974400c74ffb Mon Sep 17 00:00:00 2001 From: Giar Rehani Date: Mon, 15 Jan 2024 14:19:14 +0100 Subject: [PATCH 12/22] Created test for AddBagelIfBasketIsFull --- .../java/com/booleanuk/core/BasketTest.java | 22 +++++-------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/src/test/java/com/booleanuk/core/BasketTest.java b/src/test/java/com/booleanuk/core/BasketTest.java index affe06c2..504615da 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -36,20 +36,6 @@ public void testRemoveBagelFromBasketReturnsTrue(){ Assertions.assertTrue(basket.remove("Cookie Dough")); } - @Test - public void testCheckIfBasketIsAboveCapacity(){ - Basket basket = new Basket(); - - basket.add("Cookie Dough"); - basket.add("Vanilla"); - basket.add("Chocolate"); - basket.add("Blueberry"); - basket.add("Strawberry"); - basket.add("Plain"); - - Assertions.assertTrue(6, basket.capacity); - Assertions.assertFalse(4, basket.capacity); - } @Test public void testAddBagelIfBasketIsFull(){ @@ -62,9 +48,11 @@ public void testAddBagelIfBasketIsFull(){ basket.add("Strawberry"); basket.add("Plain"); - Assertions.assertFalse(4, basket.size()); - Assertions.assertTrue(5, basket.size()); - Assertions.assertFalse(6, basket.size()); + Assertions.assertTrue(3, basket.checkIfFull()); + Assertions.assertTrue(4, basket.checkIfFull()); + Assertions.assertTrue(5, basket.checkIfFull()); + Assertions.assertFalse(6, basket.checkIfFull()); + Assertions.assertFalse(7, basket.checkIfFull()); } } From e7550f05e355181fd534c47aac508668e147ac11 Mon Sep 17 00:00:00 2001 From: Giar Rehani Date: Mon, 15 Jan 2024 14:28:40 +0100 Subject: [PATCH 13/22] Modified test case --- src/test/java/com/booleanuk/core/BasketTest.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/test/java/com/booleanuk/core/BasketTest.java b/src/test/java/com/booleanuk/core/BasketTest.java index 504615da..230bd7cc 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -41,18 +41,15 @@ public void testRemoveBagelFromBasketReturnsTrue(){ public void testAddBagelIfBasketIsFull(){ Basket basket = new Basket(); + Assertions.assertTrue(basket.checkIfFull()); basket.add("Cookie Dough"); basket.add("Vanilla"); basket.add("Chocolate"); + Assertions.assertTrue(basket.checkIfFull()); basket.add("Blueberry"); basket.add("Strawberry"); basket.add("Plain"); - - Assertions.assertTrue(3, basket.checkIfFull()); - Assertions.assertTrue(4, basket.checkIfFull()); - Assertions.assertTrue(5, basket.checkIfFull()); - Assertions.assertFalse(6, basket.checkIfFull()); - Assertions.assertFalse(7, basket.checkIfFull()); + Assertions.assertFalse(basket.checkIfFull()); } } From 212093014901852da2cc47b9cad8350c1bf28e75 Mon Sep 17 00:00:00 2001 From: Giar Rehani Date: Mon, 15 Jan 2024 14:29:04 +0100 Subject: [PATCH 14/22] Wrote code for testAddBagelIfBasketIsFull --- src/main/java/com/booleanuk/core/Basket.java | 21 +++++++++++++++++++- userStories.md | 10 +++++----- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/booleanuk/core/Basket.java b/src/main/java/com/booleanuk/core/Basket.java index 5e695f23..2defd201 100644 --- a/src/main/java/com/booleanuk/core/Basket.java +++ b/src/main/java/com/booleanuk/core/Basket.java @@ -5,9 +5,24 @@ public class Basket { ArrayList basket; + int capacity; public Basket(){ this.basket = new ArrayList<>(); + this.capacity = 5; + } + + public boolean checkIfFull(){ + if(this.basket == null){ + return false; + } + if(this.basket.size() > 5){ + System.out.println("Basket is full, unable to add bagel!"); + return false; + } + System.out.println("Basket is not full, adding bagel"); + return true; + } public boolean remove(String bagel) { if(bagel == null){ @@ -20,6 +35,8 @@ public boolean remove(String bagel) { return true; } + + public boolean add(String bagel){ if(bagel == null){ return false; @@ -27,7 +44,9 @@ public boolean add(String bagel){ if(bagel.isEmpty()){ return false; } - basket.add(bagel); + if(checkIfFull()){ + basket.add(bagel); + } return true; } diff --git a/userStories.md b/userStories.md index 5cf74b38..19b49819 100644 --- a/userStories.md +++ b/userStories.md @@ -32,11 +32,11 @@ So that I can not overfill my small bagel basket I'd like to know when my basket is full when I try adding an item beyond my basket capacity. ``` -| Classes | Methods | Scenario | Output | -|---------|-----------------------------|----------------------|--------------| -| Basket | checkIfFull() | if list not full | return true | -| | | if list is full | return false | -| | | if bagel is null | return false | +| Classes | Methods | Scenario | Output | +|---------|------------------|----------------------|--------------| +| Basket | checkIfFull() | if list not full | return true | +| | | if list is full | return false | +| | | if bagel is null | return false | ``` 4. From a99f73e945b879cecfd02d95483df4d2fd9c3ba6 Mon Sep 17 00:00:00 2001 From: Giar Rehani Date: Mon, 15 Jan 2024 14:34:47 +0100 Subject: [PATCH 15/22] Added tests for checking capacity and changed checkIfFull to checkIfNotFull to avoid confusion --- src/test/java/com/booleanuk/core/BasketTest.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/test/java/com/booleanuk/core/BasketTest.java b/src/test/java/com/booleanuk/core/BasketTest.java index 230bd7cc..c33e0cdc 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -36,16 +36,25 @@ public void testRemoveBagelFromBasketReturnsTrue(){ Assertions.assertTrue(basket.remove("Cookie Dough")); } - +@Test + public void testChangeCapacityOfBasket(){ + Basket basket = new Basket(); + basket.changeCapacity(10); + Assertions.assertEquals(10, basket.capacity); + for (int i = 0; i < 8; i++) { + basket.add("bagel: " + i); + } + Assertions.assertTrue(basket.checkIfNotFull()); + } @Test public void testAddBagelIfBasketIsFull(){ Basket basket = new Basket(); - Assertions.assertTrue(basket.checkIfFull()); + Assertions.assertTrue(basket.checkIfNotFull()); basket.add("Cookie Dough"); basket.add("Vanilla"); basket.add("Chocolate"); - Assertions.assertTrue(basket.checkIfFull()); + Assertions.assertTrue(basket.checkIfNotFull()); basket.add("Blueberry"); basket.add("Strawberry"); basket.add("Plain"); From e4ff9a30d831023cb8cf37a8f2fb8a1576e40277 Mon Sep 17 00:00:00 2001 From: Giar Rehani Date: Mon, 15 Jan 2024 14:37:47 +0100 Subject: [PATCH 16/22] Added tests for checking capacity and changed checkIfFull to checkIfNotFull to avoid confusion --- src/test/java/com/booleanuk/core/BasketTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/booleanuk/core/BasketTest.java b/src/test/java/com/booleanuk/core/BasketTest.java index c33e0cdc..2a865991 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -58,7 +58,7 @@ public void testAddBagelIfBasketIsFull(){ basket.add("Blueberry"); basket.add("Strawberry"); basket.add("Plain"); - Assertions.assertFalse(basket.checkIfFull()); + Assertions.assertFalse(basket.checkIfNotFull()); } } From 21003d3bb539c8422b0d1e1f9d41842cb9cbec45 Mon Sep 17 00:00:00 2001 From: Giar Rehani Date: Mon, 15 Jan 2024 14:41:32 +0100 Subject: [PATCH 17/22] Added more to ChangeCapacityTest --- 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 2a865991..7a9ac7f5 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -45,7 +45,12 @@ public void testChangeCapacityOfBasket(){ basket.add("bagel: " + i); } Assertions.assertTrue(basket.checkIfNotFull()); + for (int i = 0; i < 8; i++) { + basket.add("bagel: " + i); } + Assertions.assertFalse(basket.checkIfNotFull()); + +} @Test public void testAddBagelIfBasketIsFull(){ Basket basket = new Basket(); From 1af675a5e9b7921efc472dd46b68d070dac2860d Mon Sep 17 00:00:00 2001 From: Giar Rehani Date: Mon, 15 Jan 2024 14:41:57 +0100 Subject: [PATCH 18/22] Wrote code for changeCapacity & refactored other tests --- src/main/java/com/booleanuk/core/Basket.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/booleanuk/core/Basket.java b/src/main/java/com/booleanuk/core/Basket.java index 2defd201..83864948 100644 --- a/src/main/java/com/booleanuk/core/Basket.java +++ b/src/main/java/com/booleanuk/core/Basket.java @@ -12,11 +12,11 @@ public Basket(){ this.capacity = 5; } - public boolean checkIfFull(){ + public boolean checkIfNotFull(){ if(this.basket == null){ return false; } - if(this.basket.size() > 5){ + if(this.basket.size() > this.capacity){ System.out.println("Basket is full, unable to add bagel!"); return false; } @@ -24,6 +24,15 @@ public boolean checkIfFull(){ return true; } + + public boolean changeCapacity(int capacity){ + if(capacity < 0 ){ + System.out.println("Invalid capacity"); + return false; + } + this.capacity = capacity; + return true; + } public boolean remove(String bagel) { if(bagel == null){ return false; @@ -44,7 +53,7 @@ public boolean add(String bagel){ if(bagel.isEmpty()){ return false; } - if(checkIfFull()){ + if(checkIfNotFull()){ basket.add(bagel); } return true; From b986b6fe4ed775f0b94b5cee708883423744c5b9 Mon Sep 17 00:00:00 2001 From: Giar Rehani Date: Mon, 15 Jan 2024 14:43:24 +0100 Subject: [PATCH 19/22] Modified userStory to be more correct on 5. --- userStories.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/userStories.md b/userStories.md index 19b49819..8c60d297 100644 --- a/userStories.md +++ b/userStories.md @@ -57,7 +57,7 @@ So that I can maintain my sanity I'd like to know if I try to remove an item that doesn't exist in my basket. ``` -| Classes | Methods | Scenario | Output | -|---------|---------------------------|----------------------|-------------------------------------| -| Basket | bagelInList(String bagel) | if bagel not in list | return "Bagel not in list" | -| | | if bagel in list | return "Bagel is removed from list" | +| Classes | Methods | Scenario | Output | +|---------|------------------------------------|----------------------|-------------------------------------| +| Basket | tryRemoveBagelInList(String bagel) | if bagel not in list | return "Bagel not in list" | +| | | if bagel in list | return "Bagel is removed from list" | From 1ff4c4587fad758bcd4bf6d770d0f7e2706c4534 Mon Sep 17 00:00:00 2001 From: Giar Rehani Date: Mon, 15 Jan 2024 14:49:02 +0100 Subject: [PATCH 20/22] Wrote tests for TryRemoveBagelInList --- src/test/java/com/booleanuk/core/BasketTest.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/test/java/com/booleanuk/core/BasketTest.java b/src/test/java/com/booleanuk/core/BasketTest.java index 7a9ac7f5..effbd2df 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -65,5 +65,20 @@ public void testAddBagelIfBasketIsFull(){ basket.add("Plain"); Assertions.assertFalse(basket.checkIfNotFull()); } + @Test + public void testTryRemoveBagelInList(){ + Basket basket = new Basket(); + basket.add("Blueberry"); + basket.add("Strawberry"); + basket.add("Plain"); + basket.add("Cookie Dough"); + basket.add("Vanilla"); + basket.add("Chocolate"); + Assertions.assertEquals("Bagel not in list", basket.tryRemoveBagel("Redberry")); + Assertions.assertEquals("Bagel is removed from list",basket.tryRemoveBagel("Cookie Dough")); + Assertions.assertEquals("Bagel not in list", basket.tryRemoveBagel("Plain.")); + Assertions.assertEquals("Bagel is removed from list", basket.tryRemoveBagel("Blueberry")); + Assertions.assertEquals("Bagel is removed from list", basket.tryRemoveBagel("Vanilla")); + } } From 458d85f2c11fe733ee4273766df53bd321e96d03 Mon Sep 17 00:00:00 2001 From: Giar Rehani Date: Mon, 15 Jan 2024 15:07:51 +0100 Subject: [PATCH 21/22] Splitted tests as one was testing two methods --- .../java/com/booleanuk/core/BasketTest.java | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/test/java/com/booleanuk/core/BasketTest.java b/src/test/java/com/booleanuk/core/BasketTest.java index effbd2df..9e83ae89 100644 --- a/src/test/java/com/booleanuk/core/BasketTest.java +++ b/src/test/java/com/booleanuk/core/BasketTest.java @@ -36,21 +36,30 @@ public void testRemoveBagelFromBasketReturnsTrue(){ Assertions.assertTrue(basket.remove("Cookie Dough")); } -@Test + @Test public void testChangeCapacityOfBasket(){ Basket basket = new Basket(); + Assertions.assertEquals(5, basket.capacity); basket.changeCapacity(10); Assertions.assertEquals(10, basket.capacity); - for (int i = 0; i < 8; i++) { - basket.add("bagel: " + i); + basket.changeCapacity(-3); + Assertions.assertEquals(5, basket.capacity); } - Assertions.assertTrue(basket.checkIfNotFull()); - for (int i = 0; i < 8; i++) { - basket.add("bagel: " + i); + + @Test + public void testBasketIsFullAfterCapacityChange(){ + Basket basket = new Basket(); + basket.changeCapacity(10); + for (int i = 0; i < 8; i++) { + basket.add("bagel: " + i); + } + Assertions.assertTrue(basket.checkIfNotFull()); + for (int i = 0; i < 8; i++) { + basket.add("bagel: " + i); + } + Assertions.assertFalse(basket.checkIfNotFull()); } - Assertions.assertFalse(basket.checkIfNotFull()); -} @Test public void testAddBagelIfBasketIsFull(){ Basket basket = new Basket(); From 5626da4b25e67f188a4bc24ae9dfda51f8950077 Mon Sep 17 00:00:00 2001 From: Giar Rehani Date: Mon, 15 Jan 2024 15:09:56 +0100 Subject: [PATCH 22/22] Wrote code for tryRemoveBagel and modified remove function --- src/main/java/com/booleanuk/core/Basket.java | 23 +++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/booleanuk/core/Basket.java b/src/main/java/com/booleanuk/core/Basket.java index 83864948..d015fde7 100644 --- a/src/main/java/com/booleanuk/core/Basket.java +++ b/src/main/java/com/booleanuk/core/Basket.java @@ -5,7 +5,7 @@ public class Basket { ArrayList basket; - int capacity; + public int capacity; public Basket(){ this.basket = new ArrayList<>(); @@ -22,16 +22,23 @@ public boolean checkIfNotFull(){ } System.out.println("Basket is not full, adding bagel"); return true; - } - public boolean changeCapacity(int capacity){ + public String tryRemoveBagel(String bagel){ + if (!this.basket.contains(bagel)) { + System.out.println("Bagel not in list"); + return "Bagel not in list"; + } + System.out.println("Bagel is removed from list"); + this.basket.remove(bagel); + return "Bagel is removed from list"; + } + public int changeCapacity(int capacity){ if(capacity < 0 ){ - System.out.println("Invalid capacity"); - return false; + System.out.println("Invalid capacity, setting default capacity of 5"); + return this.capacity = 5; } - this.capacity = capacity; - return true; + return this.capacity = capacity; } public boolean remove(String bagel) { if(bagel == null){ @@ -40,7 +47,7 @@ public boolean remove(String bagel) { if(!this.basket.contains(bagel)){ return false; } - this.basket.remove((bagel)); + this.tryRemoveBagel(bagel); return true; }