diff --git a/pom.xml b/pom.xml
index d19badb..b6665e3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/ma
junit
junit
- 3.8.1
+ 4.12
test
diff --git a/src/main/java/seng202/group9/Controller/DataException.java b/src/main/java/seng202/group9/Controller/DataException.java
new file mode 100644
index 0000000..ba7b583
--- /dev/null
+++ b/src/main/java/seng202/group9/Controller/DataException.java
@@ -0,0 +1,21 @@
+package seng202.group9.Controller;
+
+public class DataException extends Exception{
+
+ public DataException(){
+ super();
+ }
+
+ public DataException(String message) {
+ super(message);
+ }
+
+ public DataException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public DataException(Throwable cause) {
+ super(cause);
+ }
+
+}
diff --git a/src/main/java/seng202/group9/Core/Route.java b/src/main/java/seng202/group9/Core/Route.java
index 825eb12..8a874ab 100644
--- a/src/main/java/seng202/group9/Core/Route.java
+++ b/src/main/java/seng202/group9/Core/Route.java
@@ -1,5 +1,7 @@
package seng202.group9.Core;
+import seng202.group9.Controller.DataException;
+
/**
* Route Class
* @author Fan-Wu Yang
@@ -46,6 +48,7 @@ public class Route {
String codeShare, int stops, String equipment){
//remember to set the id manually later after adding it to the database and grab
//the new id value of the route.
+ this.ID = -1;
this.stops = stops;
this.codeShare = codeShare;
this.equipment = equipment;
@@ -53,18 +56,11 @@ public class Route {
this.departureAirport = departureAirport;
this.arrivalAirport = arrivalAirport;
}
- /**
- * Returns code share of the route
- * @return
- */
- public String getCodeShare() {
- return codeShare;
- }
/**
* sets code share of the route
* @param codeShare
*/
- public void setCodeShare(String codeShare) {
+ public void setCode(String codeShare) {
this.codeShare = codeShare;
}
/**
@@ -113,8 +109,12 @@ public class Route {
* returns the id of this route
* @return
*/
- public int getID(){
- return ID;
+ public int getID() throws DataException{
+ if (this.ID == -1){
+ throw new DataException("ID not set.");
+ }else{
+ return ID;
+ }
}
/**
* returns the number of stops the route stops.
@@ -159,5 +159,10 @@ public class Route {
return arrivalAirport;
}
+ @Override
+ public String toString(){
+
+ return airline+" flies from "+departureAirport+" to "+arrivalAirport+" on a "+equipment +" stopping "+stops+" amount of times";
+ }
}
diff --git a/src/test/java/seng202/group9/RouteTest.java b/src/test/java/seng202/group9/RouteTest.java
new file mode 100644
index 0000000..9a9c674
--- /dev/null
+++ b/src/test/java/seng202/group9/RouteTest.java
@@ -0,0 +1,80 @@
+package seng202.group9;
+
+import org.junit.rules.ExpectedException;
+import org.junit.Test;
+
+import junit.framework.TestCase;
+import seng202.group9.Controller.DataException;
+import seng202.group9.Core.Route;
+/**
+ *
+ * Route tests
+ * @author Fan-Wu Yang
+ *
+ */
+public class RouteTest extends TestCase {
+
+ public ExpectedException thrown = ExpectedException.none();
+
+ @Test
+ public void testRouteGetSet(){
+ //sample entry
+ //BA,1355,SIN,3316,LHR,507,,0,744 777
+ //airline, airline ID (This is not parsed as this will be different
+ //from our database id for this route), source Aiport, source Airport ID (not parsed),
+ //destination airport, destination ID (not parsed), Codeshare, stops, Equipment
+ Route route = new Route("BA", "SIN", "LHR", "", 0, "744 777");
+ //////////////
+ //test getters
+ //////////////
+ assertEquals(route.getAirline(), "BA");
+ assertEquals(route.departsFrom(), "SIN");
+ assertEquals(route.arrivesAt(), "LHR");
+ assertEquals(route.getCode(), "");
+ assertEquals(route.getEquipment(), "744 777");
+ ///////////////
+ //test setters
+ ///////////////
+ route.setAirline("BAH");
+ route.setArrivalAirport("LEFT-HAND-RULE");
+ route.setDepartureAirport("SING-SONG");
+ route.setCode("Y");
+ route.setStops(5);
+ route.setEquipment("747 840");
+
+ assertEquals(route.getAirline(), "BAH");
+ assertEquals(route.departsFrom(), "SING-SONG");
+ assertEquals(route.arrivesAt(), "LEFT-HAND-RULE");
+ assertEquals(route.getCode(), "Y");
+ assertEquals(route.getEquipment(), "747 840");
+ ////////////////////////////
+ //test alternate constructor
+ ////////////////////////////
+ Route route2 = new Route(1355, "BA", "SIN", "LHR", "", 0, "744 777");
+ try {
+ assertTrue(1355 == route2.getID());
+ } catch (DataException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Test
+ public void testRouteIDException() throws DataException{
+ //sample entry
+ //BA,1355,SIN,3316,LHR,507,,0,744 777
+ //airline, airline ID (This is not parsed as this will be different
+ //from our database id for this route), source Aiport, source Airport ID (not parsed),
+ //destination airport, destination ID (not parsed), Codeshare, stops, Equipment
+ Route route = new Route("BA", "SIN", "LHR", "", 0, "744 777");
+ /////////////////////////////////////////////////
+ //test that id is not set and throws an exception
+ /////////////////////////////////////////////////
+ thrown.expect(DataException.class);
+ thrown.expectMessage("ID not set. Error in Database Implementation for adding code.");
+ try{
+ route.getID();
+ }catch (DataException e){
+ //e.printStackTrace();
+ }
+ }
+}