tdd-java-demo

tdd java demo with micro-commits

git clone https://9o.is/git/tdd-java-demo.git

commit d8101f7322ee36000ca71289a480ec18cb65cd07
parent 79b90c4da8f04eb47ee139c018d57aef072c44a2
Author: Jul <jul@9o.is>
Date:   Thu,  1 Apr 2021 00:45:36 +0800

validate discount on end date

Diffstat:
Msrc/main/java/takehome/Discount.java | 4+++-
Msrc/test/java/takehome/DiscountTest.java | 6++++++
2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/main/java/takehome/Discount.java b/src/main/java/takehome/Discount.java @@ -11,6 +11,7 @@ public class Discount { private final Multiset<Item> items; private final double amount; private final LocalDate startDate; + private final LocalDate endDate; public Discount(double amount, Item ...items) { this(amount, LocalDate.MIN, LocalDate.MAX, items); @@ -19,6 +20,7 @@ public class Discount { public Discount(double amount, LocalDate startDate, LocalDate endDate, Item... items) { this.amount = amount; this.startDate = startDate; + this.endDate = endDate; this.items = HashMultiset.create(Arrays.asList(items)); } @@ -43,6 +45,6 @@ public class Discount { } public boolean isValid(LocalDate date) { - return startDate.equals(date); + return date.equals(startDate) || date.equals(endDate); } } diff --git a/src/test/java/takehome/DiscountTest.java b/src/test/java/takehome/DiscountTest.java @@ -81,6 +81,12 @@ class DiscountTest { assertThat(discount.isValid(TODAY), is(true)); } + @Test + void isValidOnEndDate() { + Discount discount = discountByDate(TODAY, TOMORROW); + assertThat(discount.isValid(TOMORROW), is(true)); + } + private Discount discountByDate(LocalDate startDate, LocalDate endDate) { return new Discount(0.01, startDate, endDate, APPLE); }