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)); + } +}