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 = ""; + 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