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:
Msrc/main/java/takehome/Discount.java | 6+++++-
Msrc/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));