diff --git a/mock/src/main/java/seng302/App.java b/mock/src/main/java/seng302/App.java index 16890a4d..2868abbc 100644 --- a/mock/src/main/java/seng302/App.java +++ b/mock/src/main/java/seng302/App.java @@ -4,6 +4,8 @@ package seng302; import javafx.application.Application; import javafx.stage.Stage; import org.xml.sax.SAXException; +import seng302.Mock.RegattaDataSource; +import seng302.Mock.RegattaXMLReader; import seng302.Model.Event; import javax.xml.parsers.ParserConfigurationException; @@ -26,7 +28,8 @@ public class App extends Application { try { OutputStream outputStream = System.out;//TEMP currently using System.out, but should replace this with tcp socket we are sending over. RaceDataSource raceData = new RaceXMLReader("raceXML/bermuda_AC35.xml"); - Event raceEvent = new Event(raceData, outputStream); + RegattaDataSource regattaData = new RegattaXMLReader("mockXML/regattaTest.xml"); + Event raceEvent = new Event(raceData, regattaData, outputStream); raceEvent.start(); } catch (IOException e) { e.printStackTrace(); diff --git a/mock/src/main/java/seng302/Mock/RegattaDataSource.java b/mock/src/main/java/seng302/Mock/RegattaDataSource.java new file mode 100644 index 00000000..69219d94 --- /dev/null +++ b/mock/src/main/java/seng302/Mock/RegattaDataSource.java @@ -0,0 +1,8 @@ +package seng302.Mock; + +/** + * Created by zwu18 on 25/04/17. + */ +public interface RegattaDataSource{ + Regatta getRegatta(); +} diff --git a/mock/src/main/java/seng302/Mock/RegattaXMLReader.java b/mock/src/main/java/seng302/Mock/RegattaXMLReader.java index 6291825f..5cca06ed 100644 --- a/mock/src/main/java/seng302/Mock/RegattaXMLReader.java +++ b/mock/src/main/java/seng302/Mock/RegattaXMLReader.java @@ -11,7 +11,7 @@ import java.io.IOException; /** * Created by jjg64 on 19/04/17. */ -public class RegattaXMLReader extends XMLReader { +public class RegattaXMLReader extends XMLReader implements RegattaDataSource { private Regatta regatta; /** diff --git a/mock/src/main/java/seng302/Model/Event.java b/mock/src/main/java/seng302/Model/Event.java index 614d05bf..8fbb321d 100644 --- a/mock/src/main/java/seng302/Model/Event.java +++ b/mock/src/main/java/seng302/Model/Event.java @@ -4,6 +4,8 @@ import org.w3c.dom.Attr; import org.w3c.dom.Document; import org.w3c.dom.Element; import seng302.Data.RaceData; +import seng302.Mock.Regatta; +import seng302.Mock.RegattaDataSource; import seng302.Exceptions.InvalidBoatDataException; import seng302.Exceptions.InvalidRaceDataException; import seng302.Exceptions.InvalidRegattaDataException; @@ -30,19 +32,13 @@ import java.util.List; public class Event { RaceDataSource raceDataSource; - + RegattaDataSource regattaDataSource; ///The stream to which we send all data. private OutputStream outputStream; - - - /** - * Ctor. - * @param raceData - * @param outputStream OutputStream to write data to. - */ - public Event(RaceDataSource raceData, OutputStream outputStream) { + public Event(RaceDataSource raceData, RegattaDataSource regattaData, OutputStream outputStream) { this.raceDataSource = raceData; + this.regattaDataSource = regattaData; this.outputStream = outputStream; } @@ -64,6 +60,7 @@ public class Event { public void sendRegattaData() throws InvalidRegattaDataException { + Regatta regatta = regattaDataSource.getRegatta(); DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = null; @@ -81,45 +78,45 @@ public class Event { Element rootElement = doc.createElement("RegattaConfig"); doc.appendChild(rootElement); - //regattaID element - Element regattaID = doc.createElement("RegattaID"); - regattaID.appendChild(doc.createTextNode("3")); - rootElement.appendChild(regattaID); - - //regattaName element - Element regattaName = doc.createElement("RegattaName"); - regattaName.appendChild(doc.createTextNode("New Zealand Test")); - rootElement.appendChild(regattaName); - - //courseName element - Element courseName = doc.createElement("CourseName"); - courseName.appendChild(doc.createTextNode("North Head")); - rootElement.appendChild(courseName); - - //centralLatitude element - Element centralLat = doc.createElement("CentralLatitude"); - centralLat.appendChild(doc.createTextNode(Double.toString(32.293039))); - rootElement.appendChild(centralLat); - - //centralLongitude element - Element centralLong = doc.createElement("CentralLongitude"); - centralLong.appendChild(doc.createTextNode(Double.toString(-64.843983))); - rootElement.appendChild(centralLong); - - //centralAltitude element - Element centralAlt = doc.createElement("CentralAltitude"); - centralAlt.appendChild(doc.createTextNode(Double.toString(0))); - rootElement.appendChild(centralAlt); - - //utcOffset element - Element utcOffset = doc.createElement("UtcOffset"); - utcOffset.appendChild(doc.createTextNode(Double.toString(-3))); - rootElement.appendChild(utcOffset); - - //magneticVariation element - Element magneticVariation = doc.createElement("MagneticVariation"); - magneticVariation.appendChild(doc.createTextNode(Double.toString(14.76))); - rootElement.appendChild(magneticVariation); + //regattaID element + Element regattaID = doc.createElement("RegattaID"); + regattaID.appendChild(doc.createTextNode(Integer.toString(regatta.getRegattaID()))); + rootElement.appendChild(regattaID); + + //regattaName element + Element regattaName = doc.createElement("RegattaName"); + regattaName.appendChild(doc.createTextNode(regatta.getRegattaName())); + rootElement.appendChild(regattaName); + + //courseName element + Element courseName = doc.createElement("CourseName"); + courseName.appendChild(doc.createTextNode(regatta.getCourseName())); + rootElement.appendChild(courseName); + + //centralLatitude element + Element centralLat = doc.createElement("CentralLatitude"); + centralLat.appendChild(doc.createTextNode(Double.toString(regatta.getCentralLatitude()))); + rootElement.appendChild(centralLat); + + //centralLongitude element + Element centralLong = doc.createElement("CentralLongitude"); + centralLong.appendChild(doc.createTextNode(Double.toString(regatta.getCentralLongitude()))); + rootElement.appendChild(centralLong); + + //centralAltitude element + Element centralAlt = doc.createElement("CentralAltitude"); + centralAlt.appendChild(doc.createTextNode(Double.toString(regatta.getCentralAltitude()))); + rootElement.appendChild(centralAlt); + + //utcOffset element + Element utcOffset = doc.createElement("UtcOffset"); + utcOffset.appendChild(doc.createTextNode(Double.toString(regatta.getUtcOffset()))); + rootElement.appendChild(utcOffset); + + //magneticVariation element + Element magneticVariation = doc.createElement("MagneticVariation"); + magneticVariation.appendChild(doc.createTextNode(Double.toString(regatta.getMagneticVariation()))); + rootElement.appendChild(magneticVariation); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = null; diff --git a/mock/src/main/resources/mockXML/regattaTest.xml b/mock/src/main/resources/mockXML/regattaTest.xml new file mode 100644 index 00000000..86526130 --- /dev/null +++ b/mock/src/main/resources/mockXML/regattaTest.xml @@ -0,0 +1,10 @@ + + 3 + New Zealand Test + North Head + -36.82791529 + 174.81218919 + 0.00 + 12 + 14.1 + \ No newline at end of file diff --git a/mock/src/test/java/seng302/Mock/RegattaXMLTest.java b/mock/src/test/java/seng302/Mock/RegattaXMLTest.java index 821e476b..1f67169b 100644 --- a/mock/src/test/java/seng302/Mock/RegattaXMLTest.java +++ b/mock/src/test/java/seng302/Mock/RegattaXMLTest.java @@ -16,7 +16,7 @@ public class RegattaXMLTest { @Before public void findFile(){ try { - regattaXMLReader = new RegattaXMLReader("mockXML/regattaXML/regattaTest.xml", false); + regattaXMLReader = new RegattaXMLReader("mockXML/regattaTest.xml", false); } catch (Exception e) { fail("Cannot find mockXML/regattaXML/regattaTest.xml in the resources folder"); } @@ -25,7 +25,7 @@ public class RegattaXMLTest { @Test public void makeRegattaTest() { try { - regattaXMLReader = new RegattaXMLReader("mockXML/regattaXML/regattaTest.xml"); + regattaXMLReader = new RegattaXMLReader("mockXML/regattaTest.xml"); assertNotEquals(regattaXMLReader.getRegatta(), null); } catch (Exception e) { fail("Did not make a Regatta object"); @@ -35,7 +35,7 @@ public class RegattaXMLTest { @Test public void correctValuesTest() { try { - regattaXMLReader = new RegattaXMLReader("mockXML/regattaXML/regattaTest.xml"); + regattaXMLReader = new RegattaXMLReader("mockXML/regattaTest.xml"); Regatta regatta = regattaXMLReader.getRegatta(); assertEquals(regatta.getRegattaID(), 3); assertEquals(regatta.getRegattaName(), "New Zealand Test"); diff --git a/mock/src/test/resources/mockXML/regattaXML/regattaTest.xml b/mock/src/test/resources/mockXML/regattaTest.xml similarity index 100% rename from mock/src/test/resources/mockXML/regattaXML/regattaTest.xml rename to mock/src/test/resources/mockXML/regattaTest.xml