tdd-java-demo
tdd java demo with micro-commits
git clone https://9o.is/git/tdd-java-demo.git
commit b4b384ca07bf9e3c61de6730adc8ac7af1d4f00e parent e3ff546c914fca645f3fa008cfb448c0e4475068 Author: Jul <jul@9o.is> Date: Thu, 1 Apr 2021 01:31:56 +0800 prompt total with valid discounts only Diffstat:
| M | src/main/java/takehome/Runner.java | | | 16 | ++++++++++++---- |
| M | src/test/java/takehome/RunnerTest.java | | | 4 | ++-- |
2 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/src/main/java/takehome/Runner.java b/src/main/java/takehome/Runner.java @@ -4,6 +4,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.io.PrintStream; import java.text.DecimalFormat; +import java.time.LocalDate; import java.util.HashMap; import java.util.Map; import java.util.Scanner; @@ -14,6 +15,12 @@ public class Runner { public static final Item MILK = new Item("milk", 1.30); public static final Item APPLE = new Item("apple", 0.10); + private static final LocalDate TODAY = LocalDate.now(); + private static final LocalDate YESTERDAY = TODAY.minusDays(1); + private static final LocalDate DAYS_3 = TODAY.plusDays(3); + private static final LocalDate DAYS_7 = TODAY.plusDays(7); + private static final LocalDate MONTHS_2 = TODAY.plusMonths(1); + private final PrintStream out; private final Scanner in; @@ -26,12 +33,12 @@ public class Runner { Item[] items = { SOUP, BREAD, MILK, APPLE }; Discount[] discounts = { - new Discount(0.01, APPLE), - new Discount(0.40, SOUP, SOUP, BREAD) + new Discount(0.01, DAYS_3, MONTHS_2, APPLE), + new Discount(0.40, YESTERDAY, DAYS_7, SOUP, SOUP, BREAD) }; Basket basket = new Basket(getItemAmounts(items)); - getPurchaseDay(); + basket.setPurchaseDate(TODAY.plusDays(getPurchaseDay())); double total = basket.getTotal(discounts); DecimalFormat df = new DecimalFormat("0.00"); @@ -54,7 +61,8 @@ public class Runner { return amount; } - private void getPurchaseDay() { + private int getPurchaseDay() { out.println("Purchase day (0 for today, 1 for tomorrow, etc): "); + return in.nextInt(); } } diff --git a/src/test/java/takehome/RunnerTest.java b/src/test/java/takehome/RunnerTest.java @@ -14,13 +14,13 @@ class RunnerTest { @Test public void example() { - assertThat(output("2\r1\r1\r2"), contains( + assertThat(output("2\r1\r1\r2\r0"), contains( "How much soup? ", "How much bread? ", "How much milk? ", "How much apple? ", "Purchase day (0 for today, 1 for tomorrow, etc): ", - "Total: $3.18" + "Total: $3.20" )); }