public async void Availability_Returns_CorrectResult(DateTime depDate, DateTime returnDate, string location, int expectedPilotId) { var options = new DbContextOptionsBuilder <CrewOnDemandContext>() .UseInMemoryDatabase(databaseName: "db_seeded_with_bookings_1") .Options; using (var context = new CrewOnDemandContext(options)) { context.Database.EnsureCreated(); context.Bookings.AddRange(_fakeBookings); context.SaveChanges(); var repository = new CrewOnDemandRepository(context); var service = new CrewOnDemandService(repository, _telemetryClient, new BookingCreatedPublisher(_telemetryClient)); var sut = new PilotsController(service); var actionResult = await sut.Availability(new AvailabilitySearch { DepDateTime = depDate, ReturnDateTime = returnDate, Location = location }); Assert.IsType <OkObjectResult>(actionResult.Result); var result = actionResult.Result as OkObjectResult; var pilotResult = result.Value as Pilot; Assert.Equal(expectedPilotId, pilotResult.Id); } }
public async void Book_Returns_CorrectResult(DateTime depDate, DateTime returnDate, int pilotId, bool expectedResult) { var options = new DbContextOptionsBuilder <CrewOnDemandContext>() .UseInMemoryDatabase(databaseName: "db_seeded_with_bookings") .Options; using (var context = new CrewOnDemandContext(options)) { context.Database.EnsureCreated(); context.Bookings.AddRange(_fakeBookings); context.SaveChanges(); var repository = new CrewOnDemandRepository(context); var service = new CrewOnDemandService(repository, _telemetryClient, new BookingCreatedPublisher(_telemetryClient)); var sut = new FlightsController(service); var actionResult = await sut.Book(new BookingRequest { DepDateTime = depDate, ReturnDateTime = returnDate, PilotId = pilotId }); if (expectedResult) { Assert.IsType <StatusCodeResult>(actionResult); var result = actionResult as StatusCodeResult; Assert.Equal(201, result.StatusCode); } else { Assert.IsType <ConflictObjectResult>(actionResult); } } }