tdd-java-demo
tdd java demo with micro-commits
git clone https://9o.is/git/tdd-java-demo.git
commit e362109194e2faf801b3da2367c7f73b80ad5602 parent ac80f9b8c7239b9c616b5903c5e8ccd3ea9c8181 Author: Jul <jul@9o.is> Date: Wed, 31 Mar 2021 20:07:19 +0800 do not apply discount without enough basket items Diffstat:
| M | src/main/java/takehome/Discount.java | | | 6 | +++++- |
| M | src/test/java/takehome/DiscountTest.java | | | 8 | +++++++- |
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/main/java/takehome/Discount.java b/src/main/java/takehome/Discount.java @@ -31,7 +31,11 @@ public class Discount { Map<Item, Integer> frequencies = new HashMap<>(); for (Item item : items.keySet()) { - frequencies.put(item, basket.getAmount(item)); + int occurrences = basket.getAmount(item); + int requirement = items.get(item); + int frequency = Math.floorDiv(occurrences, requirement); + + frequencies.put(item, frequency); } int frequency = frequencies.values() diff --git a/src/test/java/takehome/DiscountTest.java b/src/test/java/takehome/DiscountTest.java @@ -46,12 +46,18 @@ class DiscountTest { } @Test - void multipleItemsNoDiscount() { + void multipleItemsEmptyBasket() { Basket basket = createBasketWithSoupBread(0, 0); assertThat(SOUP_BREAD_DISCOUNT.getDiscount(basket), is(0d)); } @Test + void multipleItemsNoDiscount() { + Basket basket = createBasketWithSoupBread(1, 1); + assertThat(SOUP_BREAD_DISCOUNT.getDiscount(basket), is(0d)); + } + + @Test void multipleItemsOneDiscount() { Basket basket = createBasketWithSoupBread(2, 1); assertThat(SOUP_BREAD_DISCOUNT.getDiscount(basket), is(0.40));