Question
This program is about booking a flight online. Here are some codes: Interface for DBManager that Mock Objects fulfill: package is.hi.hbv401g.flightsearch.controller; import java.sql.SQLException; import java.util.List;
This program is about booking a flight online.
Here are some codes:
Interface for DBManager that Mock Objects fulfill:
package is.hi.hbv401g.flightsearch.controller; import java.sql.SQLException;
import java.util.List;
import is.hi.hbv401g.flightsearch.model.Booking; import is.hi.hbv401g.flightsearch.model.Flight; import is.hi.hbv401g.flightsearch.model.Query;
public interface DBManager { ListsearchByQuery (Query q) throws SQLException;
ListgetLocations() throws SQLException; List getPopularLocations() throws SQLException; void addBooking(Booking bokking) throws SQLException; Booking searchForBooking(int bookNumber) throws SQLException;
}
This mock object returns list of flights that have two flights:
package is.hi.hbv401g.flightsearch.controller;
import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List;
import is.hi.hbv401g.flightsearch.model.Booking; import is.hi.hbv401g.flightsearch.model.Flight; import is.hi.hbv401g.flightsearch.model.Passenger; import is.hi.hbv401g.flightsearch.model.Query; import is.hi.hbv401g.flightsearch.model.Seat;
public class CorrectList implements DBManager {
/* (non-Javadoc) * Skilar lista af gildum flugum */
@Override
public ListsearchByQuery(Query q) { Calendar c1 = Calendar.getInstance(); Calendar c2 = Calendar.getInstance();
c1.set(2018,12,12, 15,30); c2.set(2018,12,12, 18, 0);
Seat s1 = new Seat(10000, "First Class", new Passenger("Anna", s1), false, "Phone charger", "One bag", false, "13A");
Seat s2 = new Seat(10000, "First Class", new Passenger("Magga", s2), false, "Phone charger", "One bag", false, "13B");
Seat s3 = new Seat(10000, "First Class", new Passenger("Sigga", s3), false, "Phone charger", "One bag", false, "14A");
Seat s4 = new Seat(10000, "First Class", new Passenger("Binni", s4), false, "Phone charger", "One bag", false, "14B");
ArrayListtheSeats1 = new ArrayList (); theSeats1.add(s1); theSeats1.add(s2);
ArrayListtheSeats2 = new ArrayList (); theSeats2.add(s3); theSeats2.add(s4);
Flight flight1 = new Flight ("KEFLAVIK","PARIS", c1, c2 , 100, 20, theSeats1, "FG1233");
Flight flight2 = new Flight ("KEFLAVIK","DUBLIN", c1, c2 , 100, 20, theSeats2, "FGLF39");
ListflightList = new ArrayList ();
} }
}
flightList.add(flight2); flightList.add(flight1);
return flightList;
/* * Ekki nota i? essu verkefni/pro?fun */
@Override
public List
return null;
}
/* * Ekki nota i? essu verkefni/pro?fun */
@Override
public List
return null;
}
/* * Ekki nota i? essu verkefni/pro?fun */
@Override
public void addBooking(Booking bokking) { // Ekki nota
}
/* * Ekki nota i? essu verkefni/pro?fun */
@Override
public Booking searchForBooking(int bookNumber) { // Ekki nota
return null;
Here is the Test fixture:
public class FlightSearchControllerTest {
public FlightSearchController controller; @Before public void setUp() {
}
@After
public void tearDown () { controller = null;
assertNull(controller);
}
/* Prufum egar vi fa?um lista af flugum til baka */
@Test
public void testSearhForFlight() { DBManager manager = new CorrectList(); controller = new FlightSearchController(manager);
Calendar c1 = Calendar.getInstance(); Calendar c2 = Calendar.getInstance();
c1.set(2018,12,12, 15,30); c2.set(2018,12,12, 18, 0); int passengerCount = 2;
// Prufum search afer i? Controller
List
assertNotNull(result); for (Flight f: result) {
// Passar brottfarastaur?
String departure = f.getDeparture(); assertEquals(departure, "KEFLAVIK");
// Passar a?fangastaur?
String arrival = f.getArrival(); assertEquals(arrival, "PARIS");
// Passar brottfarati?mi?
Calendar departureTime = f.getDepartureTime(); assertEquals(departureTime, c1);
// Passar komuti?mi
Calendar arrivalTime = f.getArrivalTime(); assertEquals(arrivalTime, c2);
} }
} }
}
// Eru no?gu mo?rg laus sti i? fluginu
int availableSeats = f.getNumberOfAvailableSeats(); assertTrue(passengerCount/* Prufum ef a database manager skilar engum niursto?um */@Test
public void testSearchEmpty() { DBManager manager = new EmptySearchList();controller = new FlightSearchController(manager); Calendar c1 = Calendar.getInstance();Calendar c2 = Calendar.getInstance();c1.set(2018,12,12, 15,30); c2.set(2018,12,12, 18, 0); Listresult = controller.search("KEFLAVIK", "PARIS", c1, c2, 2); /* A? ekki a skila null heldur to?mum lista */assertNotNull(result); assertEquals(result.size(),0);/* Skoum ef a database manager skilar error ea SQLException */@Test
public void testSearchFail() { DBManager manager = new FailSearch(); controller = new FlightSearchController(manager);Calendar c1 = Calendar.getInstance(); Calendar c2 = Calendar.getInstance();c1.set(2018,12,12, 15,30); c2.set(2018,12,12, 18, 0); Listresult = controller.search("KEFLAVIK", "PARIS", c1, c2, 2); // Eigum a? a fa? to?man lista til baka, ekki null og ekki error.assertNotNull(result); assertEquals(0,result.size());// Just so you have an idea!
Testing the code in Eclipse using JUnit I have a presentation on this subject. We had to do a test fixture we have implemented for one of our controller components. We also used mock objects. My question that I have to answer are Why did you choose the test cases (inputs and expected results) you did? Why do you believe the behaviour covered by your test cases is sufficient? -How do your mock objects simulate behaviour in different test scenarios? Can someone give me some answers and ideas as to how I could answer these questions
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started