diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..dff5f3a
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1 @@
+language: java
diff --git a/build.xml b/build.xml
index e288a4b..e585b6b 100644
--- a/build.xml
+++ b/build.xml
@@ -3,15 +3,49 @@
+
-
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build.xml~ b/build.xml~
new file mode 100644
index 0000000..f7dbe53
--- /dev/null
+++ b/build.xml~
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/junit.jar b/lib/junit.jar
new file mode 100644
index 0000000..aaf7444
Binary files /dev/null and b/lib/junit.jar differ
diff --git a/src/DiscountStrategyTest.java b/src/DiscountStrategyTest.java
new file mode 100644
index 0000000..171dd83
--- /dev/null
+++ b/src/DiscountStrategyTest.java
@@ -0,0 +1,55 @@
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import junit.framework.TestCase;
+
+
+public class DiscountStrategyTest extends TestCase {
+
+ private DiscountStrategy dS;
+ private Order testOrder = new Order("Customer", (float) 100.0);
+
+ @Before
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+
+ @After
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ @Test
+ public void testPercentDiscount() {
+ dS = new PercentDiscountStrategy(50);
+ assertEquals(testOrder.getPrice()/(float) 2, dS.applyDiscount(testOrder));
+
+ dS = new PercentDiscountStrategy(100);
+ assertEquals((float) 0, dS.applyDiscount(testOrder));
+
+ dS = new PercentDiscountStrategy(0);
+ assertEquals(testOrder.getPrice(), dS.applyDiscount(testOrder));
+ }
+
+ @Test
+ public void testRandomDiscount() {
+ for (int i = 0; i < 100; i++) {
+ dS = new RandomDiscountStrategy();
+ assertTrue(testOrder.getPrice() > dS.applyDiscount(testOrder));
+ assertTrue(dS.applyDiscount(testOrder) > 0);
+ }
+ }
+
+ @Test
+ public void testCreditDiscount() {
+ dS = new StoreCreditDiscountStrategy(0);
+ assertEquals(testOrder.getPrice(), dS.applyDiscount(testOrder));
+
+ dS = new StoreCreditDiscountStrategy(1);
+ assertEquals(testOrder.getPrice() - (float) 1, dS.applyDiscount(testOrder));
+
+ dS = new StoreCreditDiscountStrategy(100);
+ assertEquals(testOrder.getPrice() - (float) 100, dS.applyDiscount(testOrder));
+ }
+}