Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions domain-model.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
## Domain model Basket class
- NOTE: Bagel is an enum

| Variables | Methods | Scenario | Output |
|-----------|-------------------------------------|------------------------------------------------|--------|
| | `boolean add(Bagel bagel)` | Basket is full | false |
| | | Basket is not full | true |
| | `boolean remove(Bagel bagel)` | Bagel is not in basket | false |
| | | Bagel is in basket | true |
| | `void setCapacity(int newCapacity)` | Manager wants to change the capacity of basket | |
8 changes: 8 additions & 0 deletions src/main/java/com/booleanuk/core/Bagel.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.booleanuk.core;

public enum Bagel {
Plain,
Everything,
Egg,
Rainbow,
}
32 changes: 32 additions & 0 deletions src/main/java/com/booleanuk/core/Basket.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,37 @@
package com.booleanuk.core;

import java.util.ArrayList;
import java.util.List;

public class Basket {
public int capacity = 3;
private List<Bagel> bagels = new ArrayList<>();

public int size() {
return bagels.size();
}

private boolean isFull() {
return this.size() == this.capacity;
}

public boolean add(Bagel bagel) {
if (this.isFull())
return false;

this.bagels.add(bagel);
return true;
}

public boolean remove(Bagel bagel) {
if (!this.bagels.contains(bagel))
return false;

this.bagels.remove(bagel);
return true;
}

public void setCapacity(int newCapacity) {
this.capacity = newCapacity;
}
}
56 changes: 56 additions & 0 deletions src/test/java/com/booleanuk/core/BasketTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,61 @@
import org.junit.jupiter.api.Test;

class BasketTest {
@Test
public void testAddBagel() {
Basket basket = new Basket();
basket.add(Bagel.Plain);
Assertions.assertEquals(basket.size(), 1);
basket.add(Bagel.Rainbow);
Assertions.assertEquals(basket.size(), 2);
}

@Test
public void testAddBagelToFullBasket() {
Basket basket = new Basket();
Assertions.assertEquals(basket.capacity, 3);

Assertions.assertTrue(basket.add(Bagel.Plain));
Assertions.assertTrue(basket.add(Bagel.Rainbow));
Assertions.assertTrue(basket.add(Bagel.Egg));

Assertions.assertFalse(basket.add(Bagel.Egg));
Assertions.assertEquals(basket.capacity, 3);
}

@Test
public void testRemoveBagel() {
Basket basket = new Basket();
basket.add(Bagel.Plain);
basket.add(Bagel.Plain);
basket.add(Bagel.Rainbow);

Assertions.assertTrue(basket.remove(Bagel.Plain));
Assertions.assertTrue(basket.remove(Bagel.Plain));
}

@Test
public void testRemoveNonExistingBagel() {
Basket basket = new Basket();
Assertions.assertFalse(basket.remove(Bagel.Plain));
Assertions.assertFalse(basket.remove(Bagel.Rainbow));
Assertions.assertFalse(basket.remove(Bagel.Egg));
}

@Test
public void testSetCapacity() {
Basket basket = new Basket();
Assertions.assertEquals(basket.capacity, 3);
Assertions.assertTrue(basket.add(Bagel.Plain));
Assertions.assertTrue(basket.add(Bagel.Rainbow));
Assertions.assertTrue(basket.add(Bagel.Egg));
Assertions.assertFalse(basket.add(Bagel.Egg));

basket.setCapacity(5);
Assertions.assertEquals(basket.capacity, 5);

Assertions.assertTrue(basket.add(Bagel.Egg));
Assertions.assertTrue(basket.add(Bagel.Egg));
Assertions.assertFalse(basket.add(Bagel.Rainbow));
}
}