diff --git a/.classpath b/.classpath new file mode 100644 index 0000000000000000000000000000000000000000..653dfd75c238077f262308f40d77be535ec58288 --- /dev/null +++ b/.classpath @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" output="target/classes" path="src/main/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + <attribute name="optional" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" output="target/test-classes" path="src/test/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + <attribute name="test" value="true"/> + </attributes> + </classpathentry> + <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + <attribute name="test" value="true"/> + <attribute name="optional" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" path="target/generated-sources/annotations"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + <attribute name="ignore_optional_problems" value="true"/> + <attribute name="m2e-apt" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" output="target/test-classes" path="target/generated-test-sources/test-annotations"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + <attribute name="ignore_optional_problems" value="true"/> + <attribute name="m2e-apt" value="true"/> + <attribute name="test" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="target/classes"/> +</classpath> diff --git a/.project b/.project new file mode 100644 index 0000000000000000000000000000000000000000..7feca82b5dcac8d6943a58610d24f880facbd786 --- /dev/null +++ b/.project @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>TravelAgency</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + </natures> + <filteredResources> + <filter> + <id>1740642098171</id> + <name></name> + <type>30</type> + <matcher> + <id>org.eclipse.core.resources.regexFilterMatcher</id> + <arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments> + </matcher> + </filter> + </filteredResources> +</projectDescription> diff --git a/.settings/org.eclipse.jdt.apt.core.prefs b/.settings/org.eclipse.jdt.apt.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..d4313d4b25e4b826b5efa4bed06fd69068761519 --- /dev/null +++ b/.settings/org.eclipse.jdt.apt.core.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.apt.aptEnabled=false diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..3a7f4f9433d2dfee6a115e217cdc1c2589d81a56 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.processAnnotations=disabled +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..14b697b7bbb0d85e8d8ee19141a2a92d9ce211be --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..f747836bb0d347ff9c26e620a0780c7c84e9dbba --- /dev/null +++ b/pom.xml @@ -0,0 +1,24 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>com.com1028.lab7</groupId> + <artifactId>TravelAgency</artifactId> + <version>0.0.1-SNAPSHOT</version> + <name>MyAgency</name> + + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.13.1</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-core</artifactId> + <version>4.8.0</version> + </dependency> + </dependencies> + +</project> \ No newline at end of file diff --git a/src/main/java/com/com1028/travelagency/CurrencyConverter.java b/src/main/java/com/com1028/travelagency/CurrencyConverter.java new file mode 100644 index 0000000000000000000000000000000000000000..9e72bf413078e1d48fde11d30874f19a03175aa0 --- /dev/null +++ b/src/main/java/com/com1028/travelagency/CurrencyConverter.java @@ -0,0 +1,36 @@ +package com.com1028.travelagency; + +/** + * + * Defines the properties and behaviour for a Currency Converter class + * + * @author Mariam Cirovic + * + */ +public class CurrencyConverter { + CurrencyService service; + + public CurrencyConverter() { + this.service = null; + } + + // The CurrencyService is a dependency passed via a setter method + public void setCurrencyService(CurrencyService service) { + this.service = service; + } + + /** + * Retrieve the new currency amount given a amount in currency 1 to be converted to currency 2 + * + * @return currency amount + */ + public double convertCurrency(double amount, String currency1, String currency2) { + double newCurrencyAmount; + + // Call the currency service to get the exchange rate between currencies 1 & 2 + double exchangeRate = service.getExchangeRate(currency1, currency2); + newCurrencyAmount = amount * exchangeRate; + return newCurrencyAmount; + + } +} diff --git a/src/main/java/com/com1028/travelagency/CurrencyService.java b/src/main/java/com/com1028/travelagency/CurrencyService.java new file mode 100644 index 0000000000000000000000000000000000000000..5908a215bc164d379ea8f85a9941a63f3fffe6e6 --- /dev/null +++ b/src/main/java/com/com1028/travelagency/CurrencyService.java @@ -0,0 +1,13 @@ +package com.com1028.travelagency; + +/** + * + * Interface that defines the behaviour of a Currency Service + * + * @author Mariam Cirovic + * + */ +public interface CurrencyService { + // This method returns the exchange rate given the names of two currencies + public double getExchangeRate(String currency1, String currency2); +} diff --git a/src/main/java/com/com1028/travelagency/ExcursionService.java b/src/main/java/com/com1028/travelagency/ExcursionService.java new file mode 100644 index 0000000000000000000000000000000000000000..a3c20bd3b98a7bd327f17da60027ba6bcee56672 --- /dev/null +++ b/src/main/java/com/com1028/travelagency/ExcursionService.java @@ -0,0 +1,15 @@ +package com.com1028.travelagency; + +import java.util.List; + +/** + * + * Interface that defines the behaviour of an Excursion Service + * + * @author Mariam Cirovic + * + */ +public interface ExcursionService { + // This method returns the list of excursions that are provided for a given city + public List<String> excursionList(String city); +} diff --git a/src/main/java/com/com1028/travelagency/TripAdvisor.java b/src/main/java/com/com1028/travelagency/TripAdvisor.java new file mode 100644 index 0000000000000000000000000000000000000000..8652b37a36e6ea7ff8d918483fe93363073e18a4 --- /dev/null +++ b/src/main/java/com/com1028/travelagency/TripAdvisor.java @@ -0,0 +1,78 @@ +package com.com1028.travelagency; + +import java.util.ArrayList; +import java.util.List; + +/** + * + * Defines the properties and behaviour for a Trip Advisor class + * It provides weather info and available excursions for a given city + * + * @author Mariam Cirovic + * + */ +public class TripAdvisor { + ExcursionService excursionService; + WeatherService weatherService; + + public TripAdvisor() { + excursionService = null; + weatherService = null; + } + + // The excursionService is a dependency passed via a setter method + public void setExcursionService(ExcursionService excursionService) { + this.excursionService = excursionService; + } + + public void setWeatherService(WeatherService weatherService) { + this.weatherService = weatherService; + } + + /** + * Retrieve the excursions of a given type offered in a specified city + * e.g. beach, island, historic + * + * @return list of excursions + */ + public List<String> getExcursionList(String city, String type){ + List<String> allExcursions = new ArrayList<String>(); + + // Call the excursion service to get all the excursions listed for a particular city + allExcursions = excursionService.excursionList(city); + + List<String> chosenExcursions = new ArrayList<String>(); + for(String excursion: allExcursions) { + //Checking to see if the excursion is of the type specifies e.g. beach + if (excursion.toLowerCase().contains(type.toLowerCase())){ + chosenExcursions.add(excursion); + } + } + return chosenExcursions; + } + + /** + * Retrieve the weather information for specified city in a specific month + * + * @return the weather info as a string + */ + public String weatherInfo(String city, Integer month) { + Integer temp = weatherService.predictedAverageTemperature(city, month); + Double rainprob = weatherService.predictedRainProbability(city, month); + + String weather = null; + + if (temp >= 21 && rainprob >= 0.5) { + weather = "Warm and Rainy"; + } else if (temp >= 21 && rainprob < 0.5) { + weather = "Warm and Dry"; + } else if (temp < 21 && rainprob < 0.5){ + weather = "Cold and Dry"; + } else { + weather = "Cold and Rainy"; + } + + return weather; + } +} + diff --git a/src/main/java/com/com1028/travelagency/TripDatabase.java b/src/main/java/com/com1028/travelagency/TripDatabase.java new file mode 100644 index 0000000000000000000000000000000000000000..083a27eba7a3e0dbd354ba4be159fe3314b2535b --- /dev/null +++ b/src/main/java/com/com1028/travelagency/TripDatabase.java @@ -0,0 +1,16 @@ +package com.com1028.travelagency; + +import java.util.List; +/** + * + * Interface that defines the behaviour of a Trip Database Service + * + * @author Mariam Cirovic + * + */ +public interface TripDatabase { + // This method returns the total cost of a trip for a given customer ID + public double totalTripCost(String CustomerID); + // This method returns the list of cities to be visited in order by the customer given the ID + public List<String> cityItinerary(String CustomerID); +} diff --git a/src/main/java/com/com1028/travelagency/TripManager.java b/src/main/java/com/com1028/travelagency/TripManager.java new file mode 100644 index 0000000000000000000000000000000000000000..219e72bc52eabd160832c2c1af77ae9cf187a8f8 --- /dev/null +++ b/src/main/java/com/com1028/travelagency/TripManager.java @@ -0,0 +1,48 @@ +package com.com1028.travelagency; + +import java.util.List; +/** + * + * Defines the properties and behaviour for TripManager + * to apply a discount to the total trip cost and get the itinerary + * + * @author Mariam Cirovic + * + */ + +public class TripManager { + + private TripDatabase tripDB; + + /** + * Constructor sets the trip database + * TripDatabase dependency is passed via the constructor + * @param tripDB + * The database with details on Customers' Trips + */ + + public TripManager(TripDatabase tripDB) { + this.tripDB = tripDB; + } + + /** + * Retrieve the cost of a customers trip after applying a discount + * + * @return discounted cost + */ + public double applyDiscount(int percentageDiscount, String CustomerID) { + double cost = tripDB.totalTripCost(CustomerID); + return cost - (cost *percentageDiscount/100); + //return 1600.00; + } + + /** + * Retrieve the itinerary of a customer's trip given the customer id + * + * @return a list of places a traveller will visit in order + */ + public List<String> getItinerary(String CustomerID){ + return tripDB.cityItinerary(CustomerID); + } + +} diff --git a/src/main/java/com/com1028/travelagency/WeatherService.java b/src/main/java/com/com1028/travelagency/WeatherService.java new file mode 100644 index 0000000000000000000000000000000000000000..2615cf6723cd6c085e46278f857642817d54edf0 --- /dev/null +++ b/src/main/java/com/com1028/travelagency/WeatherService.java @@ -0,0 +1,18 @@ +package com.com1028.travelagency; + +/** + * + * Interface that defines the behaviour of a Weather Service + * + * @author Mariam Cirovic + * + */ +public interface WeatherService { + // This method returns the predicted average temperature for a given city in a given month + // The month is expressed as a digit e.g. September = 9 + public Integer predictedAverageTemperature(String city, Integer month); + + // This method returns the predicted rain probability for a given city in a given month + // The month is expressed as a digit e.g. September = 9 + public Double predictedRainProbability(String city, Integer month); +} diff --git a/src/test/java/com/com1028/travelagency/CurrencyConverterTest.java b/src/test/java/com/com1028/travelagency/CurrencyConverterTest.java new file mode 100644 index 0000000000000000000000000000000000000000..9bd69eb942288a9c3fc0f04a9770252145704b85 --- /dev/null +++ b/src/test/java/com/com1028/travelagency/CurrencyConverterTest.java @@ -0,0 +1,46 @@ +package com.com1028.travelagency; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; + +/** + * + * Tests that the CurencyConverter class is returning the correct exchange amount + * Annotations are used in these tests + * + * @author Mariam Cirovic + * + */ +@RunWith(MockitoJUnitRunner.class) +public class CurrencyConverterTest { + + // @InjectMocks annotation is used to create and inject the mock object + @InjectMocks + CurrencyConverter converter = new CurrencyConverter(); + + // @Mock annotation is used to create the mock object to be injected + @Mock + CurrencyService service; + + @Test + public void testConvertCurrency() { + // Method chain to return 1.12 as the exchange rate between pound and euro + when(service.getExchangeRate("pound", "euro")).thenReturn(1.12); + assertEquals(1120.0, converter.convertCurrency(1000.0, "pound", "euro"), 0); + verify(service).getExchangeRate("pound", "euro"); + } + + @Test(expected = RuntimeException.class) + public void testConvertCurrencyException() { + + doThrow(new RuntimeException("ExchangeRate not implemented")).when(service.getExchangeRate("pound", "euro")); + assertEquals(1120.0, converter.convertCurrency(1000.0, "pound", "euro"), 0); + verify(service).getExchangeRate("pound", "euro"); + } +} \ No newline at end of file diff --git a/src/test/java/com/com1028/travelagency/TripAdvisorTest.java b/src/test/java/com/com1028/travelagency/TripAdvisorTest.java new file mode 100644 index 0000000000000000000000000000000000000000..155b32f24d29741308766b3c3d33f5aafd6e5314 --- /dev/null +++ b/src/test/java/com/com1028/travelagency/TripAdvisorTest.java @@ -0,0 +1,74 @@ +package com.com1028.travelagency; + +import static org.junit.Assert.*; + +import static org.mockito.Mockito.*; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InOrder; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; + +/** + * + * Tests that the TripAdvisor class is retrieving an excursion list of the required type + * as well as retrieving the correct weather information + * Annotations are used in these tests + * + * @author Mariam Cirovic + * + */ +@RunWith(MockitoJUnitRunner.class) +public class TripAdvisorTest { + + @InjectMocks + TripAdvisor tripAdvisor = new TripAdvisor(); + + // @Mock annotation is used to create the mock object to be injected + @Mock + ExcursionService excursionService; + + @Mock + WeatherService weatherService; + + @Test + public void testExcursionList() { + String city = "Chania"; + List<String> excursions = new ArrayList<String>(); + excursions.add("Samaria Gorge"); + excursions.add("Santorini Island"); + excursions.add("Elafonisi Beach"); + excursions.add("Gavdos Island"); + excursions.add("Preveli Beach"); + + String type = "beach"; + List<String> beachExcursions = new ArrayList<String>(); + beachExcursions.add("Elafonisi Beach"); + beachExcursions.add("Preveli Beach"); + + // Method chain to return the above lsit of excursions when a city "Chania" is specified + when(excursionService.excursionList(city)).thenReturn(excursions); + assertEquals(beachExcursions, tripAdvisor.getExcursionList(city, type)); + verify(excursionService).excursionList(city); + } + + + @Test + public void testWeatherInfo() { + String city = "Chania"; + Integer month = 9; + InOrder inOrder = inOrder(weatherService); + + when(weatherService.predictedAverageTemperature(city, month)).thenReturn(27); + when(weatherService.predictedRainProbability(city, month)).thenReturn(0.15); + assertEquals("Warm and Dry", tripAdvisor.weatherInfo(city, month)); + + inOrder.verify(weatherService).predictedAverageTemperature(city, month); + inOrder.verify(weatherService).predictedRainProbability(city, month); + } +} diff --git a/src/test/java/com/com1028/travelagency/TripManagerTest.java b/src/test/java/com/com1028/travelagency/TripManagerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..b499a391f2c6c3d1327cbf5b355a98e330ec92b9 --- /dev/null +++ b/src/test/java/com/com1028/travelagency/TripManagerTest.java @@ -0,0 +1,88 @@ +package com.com1028.travelagency; + +import static org.junit.Assert.*; + + + +import static org.mockito.Mockito.*; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.Before; +import org.junit.Test; + +/** + * + * Tests that the TripManager class is calculating the discount correctly + * Also a Spy on an itinerary object is created and tested + * Static methods of Mockito are used + * + * @author Mariam Cirovic + * + */ +public class TripManagerTest { + + TripManager manager; + + // Mock the Trip Database class + TripDatabase db = mock(TripDatabase.class); + + @Before + public void setUp() { + manager = new TripManager(db); + } + + @Test + public void testApplyDiscount() { + + // Method chain (stub) to state that the customerID c11 should return the value 2000.00 + when(db.totalTripCost("c11")).thenReturn(2000.0); + assertEquals(1600.0, manager.applyDiscount(20, "c11"), 0); + verify(db).totalTripCost("c11"); + + when(db.totalTripCost("c20")).thenReturn(5000.0); + assertEquals(4000.0, manager.applyDiscount(20, "c20"), 0); + //assertEquals(4000.0, manager.applyDiscount(20, "c20"), 0); + verify(db).totalTripCost("c20"); + + //check if method is called once + verify(db, times(1)).totalTripCost("c20"); + + //verify that method was never called on a mock + verify(db, never()).cityItinerary("c11"); + } + + @Test + public void testItinerarySpy() { + List<String> itinerary = new ArrayList<String>(); + + itinerary.add("London"); + itinerary.add("Paris"); + itinerary.add("Rome"); + + // Create a spy to spy on the real instance itinerary + List<String> itinerarySpy = spy(itinerary); + + assertEquals("London", itinerarySpy.get(0)); + + // This is a stub - it states that return "Madrid" in position 1 instead of "Paris" + // You can use a spy to do a partial mock + doReturn("Madrid").when(itinerarySpy).get(1); + assertEquals("Madrid", itinerarySpy.get(1)); + + assertEquals("Rome", itinerarySpy.get(2)); + + System.out.println("Number of cities: " + itinerarySpy.size()); + + // Add another city to the spy object + itinerarySpy.add("Athens"); + + System.out.println("Number of cities (spy): " + itinerarySpy.size()); + // The size of itinerary is unchanged - the object was only added to the spy + // The spy has all the behaviour of the real object so it is mostly used to + // to explore legacy code that does not come with a clearly defined interface + System.out.println("Number of cities (original): " + itinerary.size()); + + } +} diff --git a/target/classes/com/com1028/travelagency/CurrencyConverter.class b/target/classes/com/com1028/travelagency/CurrencyConverter.class new file mode 100644 index 0000000000000000000000000000000000000000..7cea9855d473619b5f958ed96ff4e8cd87a7cebb Binary files /dev/null and b/target/classes/com/com1028/travelagency/CurrencyConverter.class differ diff --git a/target/classes/com/com1028/travelagency/CurrencyService.class b/target/classes/com/com1028/travelagency/CurrencyService.class new file mode 100644 index 0000000000000000000000000000000000000000..42d43a4580095e287502b35a11637edb808b2216 Binary files /dev/null and b/target/classes/com/com1028/travelagency/CurrencyService.class differ diff --git a/target/classes/com/com1028/travelagency/ExcursionService.class b/target/classes/com/com1028/travelagency/ExcursionService.class new file mode 100644 index 0000000000000000000000000000000000000000..d741173f5f4d551a101883a70138ba7b50956110 Binary files /dev/null and b/target/classes/com/com1028/travelagency/ExcursionService.class differ diff --git a/target/classes/com/com1028/travelagency/TripAdvisor.class b/target/classes/com/com1028/travelagency/TripAdvisor.class new file mode 100644 index 0000000000000000000000000000000000000000..0490fec3db6176cdb408c861ffa0a4a4495a1f67 Binary files /dev/null and b/target/classes/com/com1028/travelagency/TripAdvisor.class differ diff --git a/target/classes/com/com1028/travelagency/TripDatabase.class b/target/classes/com/com1028/travelagency/TripDatabase.class new file mode 100644 index 0000000000000000000000000000000000000000..06d87d429c7166e3654941568988e69a5d0ea3ab Binary files /dev/null and b/target/classes/com/com1028/travelagency/TripDatabase.class differ diff --git a/target/classes/com/com1028/travelagency/TripManager.class b/target/classes/com/com1028/travelagency/TripManager.class new file mode 100644 index 0000000000000000000000000000000000000000..dfabac1693ba88abd46a3429cba7da2500864648 Binary files /dev/null and b/target/classes/com/com1028/travelagency/TripManager.class differ diff --git a/target/classes/com/com1028/travelagency/WeatherService.class b/target/classes/com/com1028/travelagency/WeatherService.class new file mode 100644 index 0000000000000000000000000000000000000000..16bb022f9642f5bb74396dc6bf02cd53ffb1fa13 Binary files /dev/null and b/target/classes/com/com1028/travelagency/WeatherService.class differ diff --git a/target/test-classes/com/com1028/travelagency/CurrencyConverterTest.class b/target/test-classes/com/com1028/travelagency/CurrencyConverterTest.class new file mode 100644 index 0000000000000000000000000000000000000000..fa53b37104fdaeec0dd829caa20241d6ee196a53 Binary files /dev/null and b/target/test-classes/com/com1028/travelagency/CurrencyConverterTest.class differ diff --git a/target/test-classes/com/com1028/travelagency/TripAdvisorTest.class b/target/test-classes/com/com1028/travelagency/TripAdvisorTest.class new file mode 100644 index 0000000000000000000000000000000000000000..ab96c7e9aa16c4145e937bbb506026a8b47c3ed0 Binary files /dev/null and b/target/test-classes/com/com1028/travelagency/TripAdvisorTest.class differ diff --git a/target/test-classes/com/com1028/travelagency/TripManagerTest.class b/target/test-classes/com/com1028/travelagency/TripManagerTest.class new file mode 100644 index 0000000000000000000000000000000000000000..5f4f8f0c86e398198ef902f387bb66cda482f9f5 Binary files /dev/null and b/target/test-classes/com/com1028/travelagency/TripManagerTest.class differ