diff --git a/mock/src/main/java/seng302/Data/RaceData.java b/mock/src/main/java/seng302/Data/RaceData.java
index 19d7c113..0157cedb 100644
--- a/mock/src/main/java/seng302/Data/RaceData.java
+++ b/mock/src/main/java/seng302/Data/RaceData.java
@@ -44,7 +44,6 @@ public class RaceData {
courseLimit = dataSource.getBoundary();
}
-
public String createXML() {
try {
@@ -148,8 +147,6 @@ public class RaceData {
StreamResult result = new StreamResult(stringWriter);
transformer.transform(source,result);
- System.out.println(stringWriter.toString());
-
return stringWriter.toString();
diff --git a/mock/src/main/java/seng302/RaceXMLReader.java b/mock/src/main/java/seng302/RaceXMLReader.java
index 10bf13db..4076a043 100644
--- a/mock/src/main/java/seng302/RaceXMLReader.java
+++ b/mock/src/main/java/seng302/RaceXMLReader.java
@@ -58,8 +58,9 @@ public class RaceXMLReader extends XMLReader implements RaceDataSource {
* Read the files
*/
private void read() {
- readID();
+
readCourse();
+ readID();
readLegs();
readMarkers();
readBoats();
diff --git a/mock/src/test/java/seng302/Data/RaceDataTest.java b/mock/src/test/java/seng302/Data/RaceDataTest.java
new file mode 100644
index 00000000..dea415e4
--- /dev/null
+++ b/mock/src/test/java/seng302/Data/RaceDataTest.java
@@ -0,0 +1,86 @@
+package seng302.Data;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.xml.sax.SAXException;
+import seng302.Mock.RaceDataSource;
+import seng302.RaceXMLReader;
+
+import javax.xml.parsers.ParserConfigurationException;
+import java.io.IOException;
+
+import static junit.framework.TestCase.assertTrue;
+import static org.junit.Assert.fail;
+
+/**
+ * Created by esa46 on 25/04/17.
+ */
+public class RaceDataTest {
+
+ private static final String ROOT_TAG = "Race";
+ private static final String[] REQUIRED_TAGS = new String[] {
+ "RaceID", "RaceType", "CreationTimeDate", "RaceStartTime", "Participants", "Yacht",
+ "CompoundMarkSequence", "Course", "CompoundMark", "Mark", "CourseLimit", "Limit"
+ };
+ String result;
+ RaceDataSource raceDataSource;
+
+ @Before
+ public void initReader() {
+ try {
+ raceDataSource = new RaceXMLReader("raceXML/bermuda_AC35.xml");
+ RaceData raceData = new RaceData(raceDataSource);
+ result = raceData.createXML();
+
+
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (SAXException e) {
+ e.printStackTrace();
+ } catch (ParserConfigurationException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Test
+ public void xmlHasAllNecessaryFields() {
+
+ assertTrue(result.contains("<" + ROOT_TAG + ">"));
+ for (String tag : REQUIRED_TAGS) {
+ System.out.println(tag);
+ assertTrue(result.contains("<" + tag + ">") || result.contains("<" + tag + " ") );
+ }
+ }
+
+ @Test
+ public void allTagsAreTerminated() {
+
+ for (String tag : REQUIRED_TAGS) {
+ int lastIndex = 0;
+ String openTag = "<" + tag + ">";
+ String closeTag = "" + tag + ">";
+ while (lastIndex < result.length() && lastIndex > 0) {
+ lastIndex = result.indexOf(openTag, lastIndex);
+ if (lastIndex > 0) {
+
+ lastIndex = result.indexOf(closeTag, lastIndex);
+ assertTrue(lastIndex > 0);
+ }
+ }
+ }
+ }
+
+
+ @Test
+ public void idAndTypeAreEquivalent() {
+ String newId = result.substring(result.indexOf("" ) + 8, result.indexOf(""));
+ String newRaceType = result.substring(result.indexOf("" ) + 10, result.indexOf(""));
+
+ assertTrue(raceDataSource.getRaceId().equals(newId));
+ assertTrue(raceDataSource.getRaceType().equals(newRaceType));
+ }
+
+
+
+
+}
diff --git a/mock/src/test/resources/raceXML/bermuda_AC35.xml b/mock/src/test/resources/raceXML/bermuda_AC35.xml
index 7a1f94fa..27067d69 100644
--- a/mock/src/test/resources/raceXML/bermuda_AC35.xml
+++ b/mock/src/test/resources/raceXML/bermuda_AC35.xml
@@ -1,40 +1,46 @@
-
+ 5326
ORACLE TEAM USA
20
USA
+ 121
BLUEVIOLET
Land Rover BAR
30
GBR
+ 122
BLACK
SoftBank Team Japan
25
JPN
+ 123
RED
Groupama Team France
20
FRA
+ 124
ORANGE
Artemis Racing
29
SWE
+ 125
DARKOLIVEGREEN
Emirates Team New Zealand
62
NZL
+ 126
LIMEGREEN
diff --git a/visualiser/src/main/resources/raceXML/bermuda_AC35.xml b/visualiser/src/main/resources/raceXML/bermuda_AC35.xml
index 716f274b..ac75539e 100644
--- a/visualiser/src/main/resources/raceXML/bermuda_AC35.xml
+++ b/visualiser/src/main/resources/raceXML/bermuda_AC35.xml
@@ -1,4 +1,5 @@
+ 5326
ORACLE TEAM USA