From 877e4b5b220971d42d21f51f49ebcec76331b4ca Mon Sep 17 00:00:00 2001 From: YaFedImYaEatIm Date: Mon, 19 Sep 2016 06:06:58 +1200 Subject: [PATCH] Made Filter Unit Tests --- res/userdb.db | Bin 8387584 -> 8387584 bytes .../java/seng202/group9/FilterUnitTest.java | 222 ++++++++++++++++++ 2 files changed, 222 insertions(+) create mode 100644 src/test/java/seng202/group9/FilterUnitTest.java diff --git a/res/userdb.db b/res/userdb.db index 277ae9ff6f796a42c5cd0c829515d61036dc20fc..421baa9d3d5309164634e9777c5a2f150d3e6717 100644 GIT binary patch delta 27927 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 diff --git a/src/test/java/seng202/group9/FilterUnitTest.java b/src/test/java/seng202/group9/FilterUnitTest.java new file mode 100644 index 0000000..44a3c5a --- /dev/null +++ b/src/test/java/seng202/group9/FilterUnitTest.java @@ -0,0 +1,222 @@ +package seng202.group9;/** + * Created by Gondr on 19/09/2016. + */ + +import static org.junit.Assert.*; + +import org.junit.AfterClass; +import org.junit.Test; +import seng202.group9.Controller.*; + +public class FilterUnitTest { + static App app = new App(); + + @Test + public void airlineFilterTest(){ + try { + app.createDataset("FORUNITTESTINGONLY"); + } catch (DataException e) { + fail("There seems to be database already by this name"); + } + + Dataset dataset = app.getCurrentDataset(); + + try { + dataset.importAirline("res/Reduced Samples/Airlines.txt"); + } catch (DataException e) { + fail("The sample file is missing"); + } + + AirlineFilter airlineFilter = new AirlineFilter(dataset.getAirlines()); + + int size = airlineFilter.getFilteredData().size(); + + airlineFilter.filterActive("Y"); + + assertTrue(size != airlineFilter.getFilteredData().size()); + + airlineFilter.reset(); + airlineFilter.filterAlias("A"); + + assertTrue(size != airlineFilter.getFilteredData().size()); + + airlineFilter.reset(); + airlineFilter.filterCallsign("Y"); + + assertTrue(size != airlineFilter.getFilteredData().size()); + + airlineFilter.reset(); + airlineFilter.filterCountry("E"); + + assertTrue(size != airlineFilter.getFilteredData().size()); + + airlineFilter.reset(); + airlineFilter.filterIATA("I"); + + assertTrue(size != airlineFilter.getFilteredData().size()); + + airlineFilter.reset(); + airlineFilter.filterICAO("O"); + + assertTrue(size != airlineFilter.getFilteredData().size()); + + airlineFilter.reset(); + airlineFilter.filterName("T"); + + assertTrue(size != airlineFilter.getFilteredData().size()); + + airlineFilter.printFilter(); + + airlineFilter.setBaseList(airlineFilter.getFilteredData()); + + app.deleteDataset(app.getCurrentDataset()); + } + + @Test + public void airportFilterTest(){ + try { + app.createDataset("FORUNITTESTINGONLY"); + } catch (DataException e) { + fail("There seems to be database already by this name"); + } + + Dataset dataset = app.getCurrentDataset(); + + try { + dataset.importAirport("res/Reduced Samples/Airports.txt"); + } catch (DataException e) { + fail("The sample file is missing"); + } + + AirportFilter filter = new AirportFilter(dataset.getAirports()); + + int size = dataset.getAirports().size(); + + filter.filterName("d"); + assertTrue(size != filter.getFilteredData().size()); + + filter.reset(); + + filter.filterCity("P"); + assertTrue(size != filter.getFilteredData().size()); + + filter.reset(); + + filter.filterCountry("Q"); + assertTrue(size != filter.getFilteredData().size()); + + filter.reset(); + + filter.filterIATA_FFA("U"); + assertTrue(size != filter.getFilteredData().size()); + + filter.reset(); + + filter.filterICAO("L"); + assertTrue(size != filter.getFilteredData().size()); + + filter.reset(); + + filter.filterLatitude("7"); + assertTrue(size != filter.getFilteredData().size()); + + filter.reset(); + + filter.filterLongitude("4"); + assertTrue(size != filter.getFilteredData().size()); + + filter.reset(); + + filter.filterAltitude("0"); + assertTrue(size != filter.getFilteredData().size()); + + filter.reset(); + + filter.filterTimezone("1"); + assertTrue(size != filter.getFilteredData().size()); + + filter.reset(); + + filter.filterOlson("Europe"); + assertTrue(size != filter.getFilteredData().size()); + + filter.reset(); + + filter.filterDST("A"); + assertTrue(size != filter.getFilteredData().size()); + + filter.printFilter(); + filter.setBaseList(filter.getFilteredData()); + + size = filter.getFilteredData().size(); + filter.reset(); + assertTrue(size == filter.getFilteredData().size()); + + app.deleteDataset(app.getCurrentDataset()); + } + + @Test + public void routeFilterTest(){ + try { + app.createDataset("FORUNITTESTINGONLY"); + } catch (DataException e) { + fail("There seems to be database already by this name"); + } + + Dataset dataset = app.getCurrentDataset(); + + try { + dataset.importRoute("res/Reduced Samples/Routes.txt"); + } catch (DataException e) { + fail("The sample file is missing"); + } + + RouteFilter filter = new RouteFilter(dataset.getRoutes()); + + int size = dataset.getRoutes().size(); + + filter.filterAirline("N"); + assertTrue(size != filter.getFilteredData().size()); + + filter.reset(); + + filter.filterSourceAirport("H"); + assertTrue(size != filter.getFilteredData().size()); + + filter.reset(); + + filter.filterDestinationAirport("P"); + assertTrue(size != filter.getFilteredData().size()); + + filter.reset(); + + filter.filterCodeshare("Y"); + assertTrue(size != filter.getFilteredData().size()); + + filter.reset(); + + filter.filterDestinationStops("3"); + assertTrue(size != filter.getFilteredData().size()); + + filter.reset(); + + filter.filterEquipment("777"); + assertTrue(size != filter.getFilteredData().size()); + filter.printFilter(); + filter.setBaseList(filter.getFilteredData()); + size = filter.getFilteredData().size(); + + filter.reset(); + + assertTrue(filter.getFilteredData().size() == size); + + app.deleteDataset(app.getCurrentDataset()); + } + + @AfterClass + public static void deleteDataset(){ + while(app.getCurrentDataset() != null) { + app.deleteDataset(app.getCurrentDataset()); + } + } +} \ No newline at end of file