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 Availability_Returns_BadRequest_When_DepartureAfterReturn() { var depDateTime = new DateTime(2020, 08, 09); var returnDateTime = new DateTime(1984, 01, 02); var location = "munich"; _serviceMock.Setup(x => x.GetAvailablePilot(depDateTime, returnDateTime, location)) .ReturnsAsync(await Task.FromResult((AvailabilityResponseStatus.WrongDates, new Pilot()))); var result = await _sut.Availability(new AvailabilitySearch { DepDateTime = depDateTime, ReturnDateTime = returnDateTime, Location = location }); var status = result.Result as BadRequestObjectResult; Assert.Equal(400, status.StatusCode); }
public async void Availability_Returns_BadRequest_When_DepartureAfterReturn() { var options = new DbContextOptionsBuilder <CrewOnDemandContext>() .UseInMemoryDatabase(databaseName: "db_empty") .Options; using (var context = new CrewOnDemandContext(options)) { 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 = new DateTime(2020, 1, 1), ReturnDateTime = new DateTime(2000, 1, 1), Location = "munich" }); Assert.IsType <BadRequestObjectResult>(actionResult.Result); } }