diff --git a/.idea/$CACHE_FILE$ b/.idea/$CACHE_FILE$
new file mode 100644
index 00000000..6cb8985e
--- /dev/null
+++ b/.idea/$CACHE_FILE$
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 00000000..5c98b428
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,2 @@
+# Default ignored files
+/workspace.xml
\ No newline at end of file
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 00000000..3fe733fe
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 00000000..a55e7a17
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 00000000..361abb8b
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/java-test.iml b/.idea/java-test.iml
new file mode 100644
index 00000000..2e98b503
--- /dev/null
+++ b/.idea/java-test.iml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__junit_junit_4_11.xml b/.idea/libraries/Maven__junit_junit_4_11.xml
new file mode 100644
index 00000000..f33320d8
--- /dev/null
+++ b/.idea/libraries/Maven__junit_junit_4_11.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml
new file mode 100644
index 00000000..f58bbc11
--- /dev/null
+++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 00000000..d56c7d78
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 00000000..daec1427
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/sbt.xml b/.idea/sbt.xml
new file mode 100644
index 00000000..20187435
--- /dev/null
+++ b/.idea/sbt.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 00000000..e96534fb
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 00000000..35eb1ddf
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 00000000..cdf107d1
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,286 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1579431675626
+
+
+ 1579431675626
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 00000000..5c2e7578
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,40 @@
+
+
+ 4.0.0
+
+ henry-grocery
+ java-test
+ 1.0-SNAPSHOT
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+ src/main/resources/META-INF/MANIFEST.MF
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 8
+ 8
+
+
+
+
+
+
+ junit
+ junit
+ 4.11
+ test
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/com/grocery/henry/Basket.java b/src/main/java/com/grocery/henry/Basket.java
new file mode 100644
index 00000000..7f5159e8
--- /dev/null
+++ b/src/main/java/com/grocery/henry/Basket.java
@@ -0,0 +1,53 @@
+package com.grocery.henry;
+
+import com.grocery.henry.domain.Product;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.HashMap;
+import java.util.Map;
+
+import static com.grocery.henry.domain.Product.APPLE;
+import static com.grocery.henry.domain.Product.BREAD;
+import static com.grocery.henry.domain.Product.MILK;
+import static com.grocery.henry.domain.Product.SOUP;
+import static java.math.BigDecimal.valueOf;
+
+public class Basket {
+ private Map products = new HashMap();
+
+ public void add(Product product, int count) {
+ products.put(product, count);
+ }
+
+ public BigDecimal calculate(LocalDate orderDate) {
+ BigDecimal total = valueOf(0.0);
+ for (Product product : products.keySet()) {
+ switch (product) {
+ case SOUP:
+ BigDecimal soupPrice = SOUP.getPrice().multiply(valueOf(products.get(product)));
+ System.out.println("Soup Price : " + soupPrice);
+ total = total.add(soupPrice);
+ break;
+ case BREAD:
+ BigDecimal breadPrice = BREAD.getDiscount().calculatePrice(products, BREAD, orderDate);
+ System.out.println("Bread Price : " + breadPrice);
+ total = total.add(breadPrice);
+ break;
+ case MILK:
+ BigDecimal milkPrice = MILK.getPrice().multiply(valueOf(products.get(product)));
+ System.out.println("Milk Price : " + milkPrice);
+ total = total.add(milkPrice);
+ break;
+ case APPLE:
+ BigDecimal applePrice = APPLE.getDiscount().calculatePrice(products, APPLE, orderDate);
+ System.out.println("Apple Price : " + applePrice);
+ total = total.add(applePrice);
+ break;
+ default:
+ System.out.println("no match");
+ }
+ }
+ return total;
+ }
+}
diff --git a/src/main/java/com/grocery/henry/CommandLineRunner.java b/src/main/java/com/grocery/henry/CommandLineRunner.java
new file mode 100644
index 00000000..5865ba89
--- /dev/null
+++ b/src/main/java/com/grocery/henry/CommandLineRunner.java
@@ -0,0 +1,31 @@
+package com.grocery.henry;
+
+import java.util.Scanner;
+
+import static com.grocery.henry.domain.Product.APPLE;
+import static com.grocery.henry.domain.Product.BREAD;
+import static com.grocery.henry.domain.Product.MILK;
+import static com.grocery.henry.domain.Product.SOUP;
+import static java.time.LocalDate.now;
+
+public class CommandLineRunner {
+ public static void main(String[] args) {
+ Basket basket = new Basket();
+ Scanner scan = new Scanner(System.in);
+
+ System.out.println("How many soup tins?: ");
+ basket.add(SOUP, scan.nextInt());
+
+ System.out.println("How many loaves of bread?: ");
+ basket.add(BREAD, scan.nextInt());
+
+ System.out.println("How many milk bottles?: ");
+ basket.add(MILK, scan.nextInt());
+
+ System.out.println("How many apples: ");
+ basket.add(APPLE, scan.nextInt());
+
+ System.out.printf("Total price to be paid after discount : %f", basket.calculate(now()));
+
+ }
+}
diff --git a/src/main/java/com/grocery/henry/domain/Product.java b/src/main/java/com/grocery/henry/domain/Product.java
new file mode 100644
index 00000000..1c6daf6c
--- /dev/null
+++ b/src/main/java/com/grocery/henry/domain/Product.java
@@ -0,0 +1,30 @@
+package com.grocery.henry.domain;
+
+import com.grocery.henry.price.AppleDiscount;
+import com.grocery.henry.price.BreadDiscount;
+import com.grocery.henry.price.Discount;
+
+import java.math.BigDecimal;
+
+public enum Product {
+ SOUP(BigDecimal.valueOf(0.65), new Discount() {}),
+ BREAD(BigDecimal.valueOf(0.80), new BreadDiscount()),
+ MILK(BigDecimal.valueOf(1.30), new Discount() {}),
+ APPLE(BigDecimal.valueOf(0.10), new AppleDiscount());
+
+ private BigDecimal price;
+ private Discount discount;
+
+ Product(BigDecimal price, Discount discount) {
+ this.price = price;
+ this.discount = discount;
+ }
+
+ public BigDecimal getPrice() {
+ return price;
+ }
+
+ public Discount getDiscount() {
+ return discount;
+ }
+}
diff --git a/src/main/java/com/grocery/henry/price/AppleDiscount.java b/src/main/java/com/grocery/henry/price/AppleDiscount.java
new file mode 100644
index 00000000..bfed4fac
--- /dev/null
+++ b/src/main/java/com/grocery/henry/price/AppleDiscount.java
@@ -0,0 +1,23 @@
+package com.grocery.henry.price;
+
+import com.grocery.henry.domain.Product;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.Map;
+
+import static com.grocery.henry.domain.Product.APPLE;
+import static com.grocery.henry.util.DiscountUtil.isMilkOfferValid;
+import static java.math.BigDecimal.valueOf;
+
+public class AppleDiscount implements Discount {
+ private static int DISCOUNT_PERCENTAGE = 10;
+
+ public BigDecimal calculatePrice(Map products, Product product, LocalDate orderDate) {
+ BigDecimal totalApplePrice = product.getPrice().multiply(valueOf(products.get(APPLE)));
+ if (isMilkOfferValid(orderDate)) {
+ return totalApplePrice.subtract(totalApplePrice.multiply(valueOf(DISCOUNT_PERCENTAGE)).divide(valueOf(100)));
+ }
+ return totalApplePrice;
+ }
+}
diff --git a/src/main/java/com/grocery/henry/price/BreadDiscount.java b/src/main/java/com/grocery/henry/price/BreadDiscount.java
new file mode 100644
index 00000000..0a9c1dfd
--- /dev/null
+++ b/src/main/java/com/grocery/henry/price/BreadDiscount.java
@@ -0,0 +1,25 @@
+package com.grocery.henry.price;
+
+import com.grocery.henry.domain.Product;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.Map;
+
+import static com.grocery.henry.domain.Product.SOUP;
+import static com.grocery.henry.util.DiscountUtil.isBreadOfferValid;
+import static java.math.BigDecimal.valueOf;
+
+public class BreadDiscount implements Discount {
+
+ public BigDecimal calculatePrice(Map products, Product product, LocalDate orderDate) {
+ if (isBreadOfferValid(orderDate)) {
+ if (products.containsKey(SOUP) && products.get(SOUP) >= 2) {
+ int numberOfDiscounts = products.get(SOUP) / 2;
+ BigDecimal breadPriceTotal = (product.getPrice().divide(valueOf(2))).multiply(valueOf(numberOfDiscounts));
+ return breadPriceTotal.add(product.getPrice().multiply(valueOf((products.get(product) - numberOfDiscounts))));
+ }
+ }
+ return product.getPrice().multiply(valueOf(products.get(product)));
+ }
+}
diff --git a/src/main/java/com/grocery/henry/price/Discount.java b/src/main/java/com/grocery/henry/price/Discount.java
new file mode 100644
index 00000000..42e14b67
--- /dev/null
+++ b/src/main/java/com/grocery/henry/price/Discount.java
@@ -0,0 +1,15 @@
+package com.grocery.henry.price;
+
+import com.grocery.henry.domain.Product;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.Map;
+
+import static java.math.BigDecimal.valueOf;
+
+public interface Discount {
+ default BigDecimal calculatePrice(Map products, Product product, LocalDate orderDate) {
+ return product.getPrice().multiply(valueOf(products.get(product)));
+ }
+}
diff --git a/src/main/java/com/grocery/henry/util/DiscountUtil.java b/src/main/java/com/grocery/henry/util/DiscountUtil.java
new file mode 100644
index 00000000..d839943b
--- /dev/null
+++ b/src/main/java/com/grocery/henry/util/DiscountUtil.java
@@ -0,0 +1,24 @@
+package com.grocery.henry.util;
+
+import java.time.LocalDate;
+import java.time.temporal.TemporalAdjusters;
+
+public class DiscountUtil {
+ public static boolean isBreadOfferValid(LocalDate orderDate) {
+ LocalDate startDate = LocalDate.now().minusDays(1);
+ LocalDate endDate = startDate.plusDays(7);
+ return isDateWithinOfferPeriod(orderDate, startDate, endDate);
+ }
+
+ public static boolean isMilkOfferValid(LocalDate orderDate) {
+ LocalDate startDate = LocalDate.now().plusDays(3);
+ LocalDate endDate = startDate.plusMonths(1).with(TemporalAdjusters.lastDayOfMonth());
+ return isDateWithinOfferPeriod(orderDate, startDate, endDate);
+
+ }
+
+ private static boolean isDateWithinOfferPeriod(LocalDate orderDate, LocalDate startDate, LocalDate endDate) {
+ return (orderDate.isAfter(startDate) || orderDate.isEqual(startDate))
+ && (orderDate.isBefore(endDate) || orderDate.isEqual(endDate));
+ }
+}
diff --git a/src/main/resources/META-INF/MANIFEST.MF b/src/main/resources/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/java/com/grocery/henry/BasketTest.java b/src/test/java/com/grocery/henry/BasketTest.java
new file mode 100644
index 00000000..4f5a5925
--- /dev/null
+++ b/src/test/java/com/grocery/henry/BasketTest.java
@@ -0,0 +1,63 @@
+package com.grocery.henry;
+
+import com.grocery.henry.domain.Product;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.math.BigDecimal;
+
+import static java.math.BigDecimal.valueOf;
+import static java.time.LocalDate.now;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.core.Is.is;
+
+public class BasketTest {
+
+ private Basket basket;
+
+ @Before
+ public void setUp() {
+ basket = new Basket();
+ }
+
+ @Test
+ public void shouldApplyDiscountWhenThreeSoupsTwoBreadsBoughtToday() {
+ basket.add(Product.SOUP, 3);
+ basket.add(Product.BREAD, 2);
+
+ BigDecimal result = basket.calculate(now());
+
+ assertThat(result, is(valueOf(3.15)));
+ }
+
+ @Test
+ public void shouldNotApplyDiscountWhenSixApplesOneMilkBoughtToday() {
+ basket.add(Product.APPLE, 6);
+ basket.add(Product.MILK, 1);
+
+ BigDecimal result = basket.calculate(now());
+
+ assertThat(result, is(valueOf(1.90)));
+ }
+
+ @Test
+ public void shouldApplyDiscountWhenSixApplesOneMilkBoughtInFiveDaysTime() {
+ basket.add(Product.APPLE, 6);
+ basket.add(Product.MILK, 1);
+
+ BigDecimal result = basket.calculate(now().plusDays(5));
+
+ assertThat(result, is(valueOf(1.84)));
+ }
+
+ @Test
+ public void shouldApplyDiscountWhenThreeApplesTwoSoupsOneBreadBoughtInFiveDaysTime() {
+ basket.add(Product.APPLE, 3);
+ basket.add(Product.SOUP, 2);
+ basket.add(Product.BREAD, 1);
+
+ BigDecimal result = basket.calculate(now().plusDays(5));
+
+ assertThat(result, is(valueOf(1.97)));
+ }
+}
diff --git a/src/test/java/com/grocery/henry/price/AppleDiscountTest.java b/src/test/java/com/grocery/henry/price/AppleDiscountTest.java
new file mode 100644
index 00000000..d1735126
--- /dev/null
+++ b/src/test/java/com/grocery/henry/price/AppleDiscountTest.java
@@ -0,0 +1,42 @@
+package com.grocery.henry.price;
+
+import com.grocery.henry.domain.Product;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.Map;
+
+import static com.grocery.henry.domain.Product.APPLE;
+import static java.math.BigDecimal.valueOf;
+import static java.time.LocalDate.now;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.core.Is.is;
+
+public class AppleDiscountTest {
+
+ private AppleDiscount appleDiscount;
+ private Map products;
+
+ @Before
+ public void setUp() {
+ appleDiscount = new AppleDiscount();
+ products = new HashMap();
+ }
+
+ @Test
+ public void shouldGiveDiscountIfDateIsWithinOfferPeriod() {
+ products.put(APPLE, 6);
+ BigDecimal result = appleDiscount.calculatePrice(products, APPLE, now().plusDays(4));
+ assertThat(result, is(valueOf(0.54)));
+ }
+
+ @Test
+ public void shouldNotGiveDiscountIfDateIsOutsideOfferPeriod() {
+ products.put(APPLE, 6);
+ BigDecimal result = appleDiscount.calculatePrice(products, APPLE, now());
+ assertThat(result, is(valueOf(0.6)));
+ }
+
+}
diff --git a/src/test/java/com/grocery/henry/price/BreadDiscountTest.java b/src/test/java/com/grocery/henry/price/BreadDiscountTest.java
new file mode 100644
index 00000000..1aa819ed
--- /dev/null
+++ b/src/test/java/com/grocery/henry/price/BreadDiscountTest.java
@@ -0,0 +1,45 @@
+package com.grocery.henry.price;
+
+import com.grocery.henry.domain.Product;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.Map;
+
+import static com.grocery.henry.domain.Product.BREAD;
+import static java.math.BigDecimal.valueOf;
+import static java.time.LocalDate.now;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.core.Is.is;
+
+public class BreadDiscountTest {
+ private BreadDiscount breadDiscount;
+ private Map products;
+
+ @Before
+ public void setUp() {
+ breadDiscount = new BreadDiscount();
+ products = new HashMap();
+ }
+
+ @Test
+ public void shouldGiveDiscountIfDateIsWithinOfferPeriod() {
+ products.put(Product.SOUP, 3);
+ products.put(Product.BREAD, 2);
+
+ BigDecimal result = breadDiscount.calculatePrice(products, BREAD, now());
+
+ assertThat(result, is(valueOf(1.2)));
+ }
+
+ @Test
+ public void shouldNotGiveDiscountIfDateIsOutsideOfferPeriod() {
+ products.put(Product.SOUP, 3);
+ products.put(Product.BREAD, 2);
+
+ BigDecimal result = breadDiscount.calculatePrice(products, BREAD, now().minusDays(2));
+ assertThat(result, is(valueOf(1.6)));
+ }
+}
diff --git a/src/test/java/com/grocery/henry/util/DiscountUtilTest.java b/src/test/java/com/grocery/henry/util/DiscountUtilTest.java
new file mode 100644
index 00000000..26974f67
--- /dev/null
+++ b/src/test/java/com/grocery/henry/util/DiscountUtilTest.java
@@ -0,0 +1,32 @@
+package com.grocery.henry.util;
+
+import org.junit.Test;
+
+import static com.grocery.henry.util.DiscountUtil.isBreadOfferValid;
+import static com.grocery.henry.util.DiscountUtil.isMilkOfferValid;
+import static java.time.LocalDate.now;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class DiscountUtilTest {
+
+ @Test
+ public void shouldReturnValidBreadOffer() {
+ assertTrue(isBreadOfferValid(now()));
+ }
+
+ @Test
+ public void shouldNotReturnValidBreadOffer() {
+ assertFalse(isBreadOfferValid(now().minusDays(2)));
+ }
+
+ @Test
+ public void shouldReturnValidMilkOffer() {
+ assertTrue(isMilkOfferValid(now().plusDays(5)));
+ }
+
+ @Test
+ public void shouldNotReturnValidMilkOffer() {
+ assertFalse(isMilkOfferValid(now()));
+ }
+}
diff --git a/target/classes/META-INF/MANIFEST.MF b/target/classes/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..e69de29b
diff --git a/target/classes/META-INF/java-test.kotlin_module b/target/classes/META-INF/java-test.kotlin_module
new file mode 100644
index 00000000..2983af70
Binary files /dev/null and b/target/classes/META-INF/java-test.kotlin_module differ
diff --git a/target/classes/com/grocery/henry/Basket.class b/target/classes/com/grocery/henry/Basket.class
new file mode 100644
index 00000000..8f910cbd
Binary files /dev/null and b/target/classes/com/grocery/henry/Basket.class differ
diff --git a/target/java-test-1.0-SNAPSHOT.jar b/target/java-test-1.0-SNAPSHOT.jar
new file mode 100644
index 00000000..6fc37365
Binary files /dev/null and b/target/java-test-1.0-SNAPSHOT.jar differ
diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties
new file mode 100644
index 00000000..037d3904
--- /dev/null
+++ b/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Sun Jan 19 11:14:40 GMT 2020
+version=1.0-SNAPSHOT
+groupId=henry-grocery
+artifactId=java-test
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 00000000..e69de29b
diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 00000000..e69de29b
diff --git a/target/test-classes/META-INF/java-test.kotlin_module b/target/test-classes/META-INF/java-test.kotlin_module
new file mode 100644
index 00000000..2983af70
Binary files /dev/null and b/target/test-classes/META-INF/java-test.kotlin_module differ
diff --git a/target/test-classes/com/grocery/henry/BasketTest.class b/target/test-classes/com/grocery/henry/BasketTest.class
new file mode 100644
index 00000000..2a2d8ad9
Binary files /dev/null and b/target/test-classes/com/grocery/henry/BasketTest.class differ