Create unit test for course parser, and modified course xml file

#implement #fix #story[10] #story[9]
This commit is contained in:
Haoming Yin
2017-03-17 00:51:16 +13:00
parent 0039703f03
commit b7631c0b46
2 changed files with 96 additions and 20 deletions
+30 -20
View File
@@ -1,52 +1,62 @@
<?xml version="1.0" ?>
<course>
<marks>
<gate>
<name>Start</name>
<name type="start-line">Start</name>
<mark>
<lat>32.296038</lat>
<lon>-64.854401</lon>
<name>Start1</name>
<latitude>32.296038</latitude>
<longitude>-64.854401</longitude>
</mark>
<mark>
<lat>32.293834</lat>
<lon>-64.855195</lon>
<name>Start2</name>
<latitude>32.293834</latitude>
<longitude>-64.855195</longitude>
</mark>
</gate>
<mark>
<name>Mid Mark</name>
<lat>32.292881</lat>
<lon>-64.843231</lon>
<latitude>32.292881</latitude>
<longitude>-64.843231</longitude>
</mark>
<gate>
<name>Leeward Gate</name>
<mark>
<lat>32.283808</lat>
<lon>-64.850012</lon>
<name>Leeward Gate1</name>
<latitude>32.283808</latitude>
<longitude>-64.850012</longitude>
</mark>
<mark>
<lat>32.283216</lat>
<lon>-64.847686</lon>
<name>Leeward Gate2</name>
<latitude>32.283216</latitude>
<longitude>-64.847686</longitude>
</mark>
</gate>
<gate>
<name>Windward Gate</name>
<mark>
<lat>32.309908</lat>
<lon>-64.833665</lon>
<name>Windward Gate1</name>
<latitude>32.309908</latitude>
<longitude>-64.833665</longitude>
</mark>
<mark>
<lat>32.309158</lat>
<lon>-64.830834</lon>
<name>Windward Gate2</name>
<latitude>32.309158</latitude>
<longitude>-64.830834</longitude>
</mark>
</gate>
<gate>
<gate type="finish-line">
<name>Finish</name>
<mark>
<lat>32.318439</lat>
<lon>-64.837367</lon>
<name>Finish1</name>
<latitude>32.318439</latitude>
<longitude>-64.837367</longitude>
</mark>
<mark>
<lat>32.318303</lat>
<lon>-64.834974</lon>
<name>Finish2</name>
<latitude>32.318303</latitude>
<longitude>-64.834974</longitude>
</mark>
</gate>
</marks>
@@ -0,0 +1,66 @@
package seng302.models.parsers;
import org.junit.Before;
import org.junit.Test;
import seng302.models.GateMark;
import seng302.models.Mark;
import java.util.ArrayList;
import static org.junit.Assert.*;
/**
* To test if course parser works as expected.
* Created by Haoming on 17/03/17.
*/
public class CourseParserTest {
private CourseParser cp;
@Before
public void initializeParser() throws Exception {
cp = new CourseParser("doc/examples/course.xml");
}
@Test
public void getGates() throws Exception {
ArrayList<GateMark> gateMarks = cp.getGates();
assertEquals(4, gateMarks.size());
assertEquals("Start", gateMarks.get(0).getName());
assertEquals("Leeward Gate", gateMarks.get(1).getName());
assertEquals("Windward Gate", gateMarks.get(2).getName());
assertEquals("Finish", gateMarks.get(3).getName());
assertEquals("Start1", gateMarks.get(0).getMark1().getName());
assertEquals("Start2", gateMarks.get(0).getMark2().getName());
assertEquals(32.293834, gateMarks.get(0).getMark2().getLatitude(), 0.00000001);
assertEquals(-64.855195, gateMarks.get(0).getMark2().getLongitude(), 0.00000001);
assertEquals("Finish1", gateMarks.get(3).getMark1().getName());
assertEquals("Finish2", gateMarks.get(3).getMark2().getName());
assertEquals(32.318303, gateMarks.get(3).getMark2().getLatitude(), 0.00000001);
assertEquals(-64.834974, gateMarks.get(3).getMark2().getLongitude(), 0.00000001);
}
@Test
public void getMarks() throws Exception {
ArrayList<Mark> marks = cp.getMarks();
assertEquals(1, marks.size());
assertEquals("Mid Mark", marks.get(0).getName());
}
@Test
public void getOrder() throws Exception {
ArrayList<String> order = cp.getOrder();
assertEquals(6, order.size());
assertEquals("Start", order.get(0));
assertEquals("Mid Mark", order.get(1));
assertEquals("Leeward Gate", order.get(2));
assertEquals("Windward Gate", order.get(3));
assertEquals("Leeward Gate", order.get(4));
assertEquals("Finish", order.get(5));
}
}