From c096cf07dc1a05bedc67ffd2ca7307c98b0cb5d0 Mon Sep 17 00:00:00 2001 From: YaFedImYaEatIm Date: Mon, 22 Aug 2016 18:36:10 +1200 Subject: [PATCH] Finished basic airline JUnit test --- .../java/seng202/group9/Core/Airline.java | 23 +++++++-- src/main/java/seng202/group9/Core/Route.java | 26 ++++++++-- src/test/java/seng202/group9/AirlineTest.java | 47 +++++++++++++++---- 3 files changed, 82 insertions(+), 14 deletions(-) diff --git a/src/main/java/seng202/group9/Core/Airline.java b/src/main/java/seng202/group9/Core/Airline.java index dfe53c6..292ce5e 100644 --- a/src/main/java/seng202/group9/Core/Airline.java +++ b/src/main/java/seng202/group9/Core/Airline.java @@ -39,7 +39,7 @@ public class Airline { this.callSign = callSign; this.active = active; this.country = country; - routes = new ArrayList(); + this.routes = new ArrayList(); } /** @@ -105,7 +105,13 @@ public class Airline { * @param routes */ public void setRoutes(ArrayList routes) { - this.routes = routes; + //this is necessary so that the object routes arraylist does not + //point the the other list which will result to data errors. THus + //a clone must be made. + this.routes = new ArrayList(); + for(int i = 0; i < routes.size();i ++){ + this.routes.add(routes.get(i)); + } } /** * get the ID of relative to the database @@ -175,7 +181,18 @@ public class Airline { * @param route */ public void addRoutes(Route route){ - routes.add(route); + ArrayList routesToAdd = new ArrayList(); + routesToAdd.add(route); + addRoutes(routesToAdd); + } + /** + * Function Overload of addRoutes this allow the adding of a list to route + * @param routes + */ + public void addRoutes(ArrayList routesToAdd){ + for (int i = 0; i < routesToAdd.size(); i ++){ + routes.add(routesToAdd.get(i)); + } } /** * returns the name of the airline when concatenated to a string. diff --git a/src/main/java/seng202/group9/Core/Route.java b/src/main/java/seng202/group9/Core/Route.java index 9e766ab..825eb12 100644 --- a/src/main/java/seng202/group9/Core/Route.java +++ b/src/main/java/seng202/group9/Core/Route.java @@ -6,7 +6,7 @@ package seng202.group9.Core; * */ public class Route { - private int ID; + private int ID;//this ID is the route id not the airline or airports. private int stops; private String codeShare; private String equipment; @@ -14,7 +14,7 @@ public class Route { private String departureAirport; private String arrivalAirport; /** - * Constructor + * Constructor for pulling from database * @param airline * @param ID * @param departureAirport @@ -23,7 +23,7 @@ public class Route { * @param stops * @param equipment */ - public Route(String airline, int ID, String departureAirport, String arrivalAirport, + public Route(int ID, String airline, String departureAirport, String arrivalAirport, String codeShare, int stops, String equipment){ this.ID = ID; this.stops = stops; @@ -33,6 +33,26 @@ public class Route { this.departureAirport = departureAirport; this.arrivalAirport = arrivalAirport; } + /** + * Constructor for adding + * @param airline + * @param departureAirport + * @param arrivalAirport + * @param codeShare + * @param stops + * @param equipment + */ + public Route(String airline, String departureAirport, String arrivalAirport, + 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.stops = stops; + this.codeShare = codeShare; + this.equipment = equipment; + this.airline = airline; + this.departureAirport = departureAirport; + this.arrivalAirport = arrivalAirport; + } /** * Returns code share of the route * @return diff --git a/src/test/java/seng202/group9/AirlineTest.java b/src/test/java/seng202/group9/AirlineTest.java index 4c53d5e..7782fc8 100644 --- a/src/test/java/seng202/group9/AirlineTest.java +++ b/src/test/java/seng202/group9/AirlineTest.java @@ -1,9 +1,12 @@ package seng202.group9; +import java.util.ArrayList; + import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; import seng202.group9.Core.Airline; +import seng202.group9.Core.Route; /** * Test the functions for the Airline @@ -42,14 +45,14 @@ public class AirlineTest extends TestCase { Airline allNipponAirways = new Airline(324, "All Nippon Airways", "ANA All Nippon Airways", "NH", "ANA", "ALL NIPPON", "Japan", "Y"); //check constructor - assertTrue(allNipponAirways.getID() == 324); - assertTrue(allNipponAirways.getName() == "All Nippon Airways"); - assertTrue(allNipponAirways.getAlias() == "ANA All Nippon Airways"); - assertTrue(allNipponAirways.getIATA() == "NH"); - assertTrue(allNipponAirways.getICAO() == "ANA"); - assertTrue(allNipponAirways.getCallSign() == "ALL NIPPON"); - assertTrue(allNipponAirways.getCountry() == "Japan"); - assertTrue(allNipponAirways.getActive() == "Y"); + assertTrue(allNipponAirways.getID() == 324); //test id + assertTrue(allNipponAirways.getName() == "All Nippon Airways");//test name + assertTrue(allNipponAirways.getAlias() == "ANA All Nippon Airways");// test alias + assertTrue(allNipponAirways.getIATA() == "NH");// test iata + assertTrue(allNipponAirways.getICAO() == "ANA");// test icao + assertTrue(allNipponAirways.getCallSign() == "ALL NIPPON");// test call sign + assertTrue(allNipponAirways.getCountry() == "Japan");// test country + assertTrue(allNipponAirways.getActive() == "Y");// get active //check set allNipponAirways.setID(322);//ID assertTrue(allNipponAirways.getID() == 322); @@ -76,6 +79,34 @@ public class AirlineTest extends TestCase { assertTrue(allNipponAirways.getActive() == "N"); //TODO Add Route adding setting and getting. + //try add one route and test + Route route1 = new Route("NH", "Japan", "New Zealand", "JSQ", 3, "Boeing 707"); + allNipponAirways.addRoutes(route1); + + assertEquals(allNipponAirways.getRoutes().get(0), route1);//list was originally empty now its first member should be route 1 + assertTrue(allNipponAirways.getRoutes().size() == 1);//list was originally empty now it should have 1 member + + Route route2 = new Route("NH", "Japan", "Donald-Trumps Backyard", "KAMIKAZE ATTACK", 0, "Warplane 101"); + //test set routes + //adding routes + ArrayList routes = new ArrayList(); + routes.add(route1); + routes.add(route2); + + allNipponAirways.setRoutes(routes);//set routes test + assertTrue(allNipponAirways.getRoutes().size() == 2); + assertEquals(allNipponAirways.getRoutes().get(0), route1); + assertEquals(allNipponAirways.getRoutes().get(1), route2); + + //test add arraylist of routes. this also makes sure that the above + //code doesn't loop infinitily incase the object pointer has been set + //instead of cloning the data. + allNipponAirways.addRoutes(routes); + assertTrue(allNipponAirways.getRoutes().size() == 4); + assertEquals(allNipponAirways.getRoutes().get(0), route1); + assertEquals(allNipponAirways.getRoutes().get(1), route2); + assertEquals(allNipponAirways.getRoutes().get(2), route1); + assertEquals(allNipponAirways.getRoutes().get(3), route2); } public void testToString(){