Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
language: java
42 changes: 38 additions & 4 deletions build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,49 @@
<project name="DiscountStrategy" default="compile">
<property name="blddir" location="build" />
<property name="classdir" location="${blddir}/classes" />
<property name="jardir" location="${blddir}/jar" />

<target name="init">
<path id="junit.class.path">
<pathelement location="lib/junit.jar" />
<pathelement location="${classdir}" />
</path>

<target name="init" depends="clean">
<mkdir dir="${blddir}" />
<mkdir dir="${classdir}" />
</target>

<target name="compile" depends="init">
<javac
srcdir="src"
destdir="${classdir}" />
<javac srcdir="src" destdir="${classdir}">
<classpath refid="junit.class.path" />
</javac>
</target>

<target name="link" depends="compile">
<mkdir dir="${jardir}" />
<jar destfile="${jardir}/DiscountStrategy.jar" basedir="${classdir}">
<manifest>
<attribute name="Main-Class" value="Demo" />
</manifest>
</jar>
</target>

<target name="check" depends="compile">
<junit printsummary="yes" haltonfailure="yes">

<classpath refid="junit.class.path" />
<formatter type="brief" usefile="no" />
<test name="DiscountStrategyTest"
haltonfailure="no" outfile="result" />

</junit>

</target>

<target name="test" depends="check" />

<target name="clean">
<echo message="Deleting build/" />
<delete dir="${blddir}" />
</target>
</project>
49 changes: 49 additions & 0 deletions build.xml~
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?xml version="1.0"?>

<project name="DiscountStrategy" default="compile">
<property name="blddir" location="build" />
<property name="classdir" location="${blddir}/classes" />
<property name="jardir" location="${blddir}/jar" />

<path id="junit.class.path">
<pathelement location="lib/junit.jar" />
<pathelement location="${classdir}" />
</path>

<target name="init">
<mkdir dir="${blddir}" />
<mkdir dir="${classdir}" />
</target>

<target name="compile" depends="init">
<javac srcdir="src" destdir="${classdir}">
<classpath refid="junit.class.path" />
</javac>
</target>

<target name="link" depends="compile">
<mkdir dir="${jardir}" />
<jar destfile="${jardir}/DiscountStrategy.jar" basedir="${classdir}">
<manifest>
<attribute name="Main-Class" value="Demo" />
</manifest>
</jar>
</target>

<target name="check" depends="compile">
<junit printsummary="yes" haltonfailure="yes">

<classpath refid="junit.class.path" />

<test name="DiscountStrategyTest"
haltonfailure="no" outfile="result" />

</junit>

</target>

<target name="clean">
<echo message="Deleting build/" />
<delete dir="${blddir}" />
</target>
</project>
Binary file added lib/junit.jar
Binary file not shown.
55 changes: 55 additions & 0 deletions src/DiscountStrategyTest.java
Original file line number Diff line number Diff line change
@@ -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));
}
}