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
31 changes: 31 additions & 0 deletions src/domain-model.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.boolean;


| Clasess | Members | Methods | Scenario | Output |
|---------|---------------------------------|-------------------------------------------|-------------------------|--------------------|
| Basket | HashMap<String, Integer> bagels | add(String bagel) | Can add to list | return true |
| | | | | |


| Clasess | Members | Methods | Scenario | Output |
|---------|---------------------------------|----------------------|------------------|--------------|
| Basket | HashMap<String, Integer> bagels | remove(String bagel) | Can add to list | return true |
| | | | Cant add to list | return false |


| Clasess | Members | Methods | Scenario | Output |
|---------|---------------------------------|---------------------|----------|--------------|
| Basket | HashMap<String, Integer> bagels | isFull(int howMany) | Not full | return true |
| | int howMany | | Full | return false |


| Clasess | Members | Methods | Scenario | Output |
|---------|-------------|-----------------------------|----------------------------------|---------|
| Basket | int howMany | capacitySetter(int howMany) | Changed how many bagels capacity | changed |
| | | | | |


| Clasess | Members | Methods | Scenario | Output |
|---------|---------------------------------|----------------------|---------------------------|--------------|
| Basket | HashMap<String, Integer> bagels | remove(String bagel) | Is existing can remove | return true |
| | | | Not existing can't remove<br/> | return false |
34 changes: 34 additions & 0 deletions src/main/java/com/booleanuk/core/Basket.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,39 @@
package com.booleanuk.core;

import java.util.HashMap;

public class Basket {

public HashMap<String, Integer> bagels;
int limit;


public Basket() {
this.limit = 4;
this.bagels = new HashMap<>();
}

public boolean add(String bagel, int i) {

if (bagel.isBlank() || (this.bagels.size() + i) > limit) {
return false;
} else {
this.bagels.put(bagel, i);
}
return true;
}

public boolean remove(String bagel, int i) {
if (!this.bagels.containsKey(bagel) || this.bagels.get(bagel) < i) {
return false;
} else {
this.bagels.remove(bagel);
}
return true;
}

public void setLimit(int numberOf) {

this.limit = numberOf;
}
}
71 changes: 71 additions & 0 deletions src/test/java/com/booleanuk/core/BasketTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,77 @@
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

import java.util.ArrayList;

class BasketTest {

@Test
public void canAddBagelToEmpty() {
Basket basket = new Basket();
Assertions.assertTrue(basket.add("Bagel", 1));


}

@Test
public void canAddSeveralBagelToEmpty() {
Basket basket = new Basket();
Assertions.assertTrue(basket.add("Bagel", 0));
Assertions.assertTrue(basket.add("B", 1));
Assertions.assertTrue(basket.add("Bag", 2));


}


@Test
public void cantAddEmptyBagel() {
Basket basket = new Basket();
Assertions.assertFalse(basket.add("", 1));


}


@Test
public void canRemoveBagel() {
Basket basket = new Basket();
basket.add("Bagel", 1);
boolean result = basket.remove("Bagel", 1);
Assertions.assertTrue(result);

}

@Test
public void removeNonExistingBagel() {
Basket basket = new Basket();
basket.bagels.put("Bagel", 1);
Assertions.assertFalse(basket.remove("Bag", 1));
}

@Test
public void isRemoved() {
Basket basket = new Basket();
basket.bagels.put("Bagel", 1);
basket.remove("Bagel", 1);
Assertions.assertTrue(basket.bagels.isEmpty());
}

@Test
public void limitBagel() {
Basket basket = new Basket();
basket.setLimit(5);
Assertions.assertEquals(5, basket.limit);
}

@Test
public void limitBagelOneAddOneBagel() {
Basket basket = new Basket();
basket.add("Bagel", 0);
basket.setLimit(2);
Assertions.assertTrue(basket.add("Bag", 1));


}

}