From 9902cec688bc43a2d61b9fe151c6721b683f088e Mon Sep 17 00:00:00 2001 From: cbt24 Date: Wed, 10 May 2017 14:23:33 +1200 Subject: [PATCH] Added tests for BoatXMLReader - Verifies correct operation on boat and mark reading from boatTest.xml #story[782] --- .../java/seng302/DataInput/BoatXMLReader.java | 8 +-- mock/src/main/java/seng302/Model/Mark.java | 4 ++ .../seng302/DataInput/BoatXMLReaderTest.java | 57 +++++++++++++++++++ 3 files changed, 65 insertions(+), 4 deletions(-) create mode 100644 mock/src/test/java/seng302/DataInput/BoatXMLReaderTest.java diff --git a/mock/src/main/java/seng302/DataInput/BoatXMLReader.java b/mock/src/main/java/seng302/DataInput/BoatXMLReader.java index 2d909bfd..5d9524c6 100644 --- a/mock/src/main/java/seng302/DataInput/BoatXMLReader.java +++ b/mock/src/main/java/seng302/DataInput/BoatXMLReader.java @@ -80,14 +80,14 @@ public class BoatXMLReader extends XMLReader implements BoatDataSource { */ private void readSingleBoat(Node boatNode) { Boat boat; - String country = null; + int sourceID = Integer.parseInt(boatNode.getAttributes().getNamedItem("SourceID").getTextContent()); String name = boatNode.getAttributes().getNamedItem("BoatName").getTextContent(); - String shortName = boatNode.getAttributes().getNamedItem("ShortName").getTextContent(); - if (exists(boatNode, "Country")) country = boatNode.getAttributes().getNamedItem("Country").getTextContent(); if (isYachtNode(boatNode)) { - if (country != null) { + String shortName = boatNode.getAttributes().getNamedItem("ShortName").getTextContent(); + if (exists(boatNode, "Country")) { + String country = boatNode.getAttributes().getNamedItem("Country").getTextContent(); boat = new Boat(sourceID, name, country); } else { boat = new Boat(sourceID, name, shortName); diff --git a/mock/src/main/java/seng302/Model/Mark.java b/mock/src/main/java/seng302/Model/Mark.java index ef9f38f5..36d7bdf2 100644 --- a/mock/src/main/java/seng302/Model/Mark.java +++ b/mock/src/main/java/seng302/Model/Mark.java @@ -9,4 +9,8 @@ public class Mark { public Mark(String name) { this.name = name; } + + public String getName() { + return name; + } } diff --git a/mock/src/test/java/seng302/DataInput/BoatXMLReaderTest.java b/mock/src/test/java/seng302/DataInput/BoatXMLReaderTest.java new file mode 100644 index 00000000..53689e38 --- /dev/null +++ b/mock/src/test/java/seng302/DataInput/BoatXMLReaderTest.java @@ -0,0 +1,57 @@ +package seng302.DataInput; + +import org.junit.Before; +import org.junit.Test; +import org.xml.sax.SAXException; +import seng302.Model.Boat; +import seng302.Model.Mark; + +import javax.xml.parsers.ParserConfigurationException; +import java.io.IOException; +import java.util.List; + +import static org.testng.Assert.*; + +/** + * Created by cbt24 on 10/05/17. + */ +public class BoatXMLReaderTest { + BoatDataSource boatData; + List boats; + List marks; + + @Before + public void setUp() { + try { + boatData = new BoatXMLReader("mockXML/boatTest.xml"); + boats = boatData.getBoats(); + marks = boatData.getMarkerBoats(); + } catch (ParserConfigurationException e) { + e.printStackTrace(); + } catch (SAXException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Test + public void boatsReadNameFromFile() { + String[] names = { + "Team ORACLE USA","Land Rover BAR","SoftBank Team Japan","Groupama Team France","Artemis Racing","Emirates Team New Zealand" + }; + for(int i = 0; i < boats.size(); i++) { + assertEquals(names[i], boats.get(i).getName()); + } + } + + @Test + public void marksReadNameFromFile() { + String[] names = { + "PRO","PIN","Marker1","WGL","WGR","LGL","LGR","FL","FR" + }; + for(int i = 0; i < marks.size(); i++) { + assertEquals(names[i], marks.get(i).getName()); + } + } +} \ No newline at end of file