public async Task <FlightDto> GetFlight(GetFlightArgs args) { var flight = await _flightsRepository.GetAsync(args.FlightId); if (flight == null) { throw new FlightNotFoundException(Convert.ToInt32(StatusCodes.NotFound), string.Format(ErrorMessages.FLIGHT_NOT_FOUND, args.FlightId)); } // We can use this code if we want to use Explicit loading instead of Lazy loading //_flightsRepository.GetEntry(flight).Reference("Departure").Load(); //_flightsRepository.GetEntry(flight).Reference("Destination").Load(); //_flightsRepository.GetEntry(flight).Reference("Aircraft").Load(); return(_mapper.MapFromFlight(flight)); }
public async Task FlightServicesTests_Get_ShouldReturnAFlightById() { //Arrange var flightId = _flightsRecordsMock.First().Id; var flightServices = new FlightServices(_flightRepositoryMock.Object, _airportRepositoryMock.Object, _aircraftRepositoryMock.Object, _mapperWrapper); // Expected var expectFlight = _mapperWrapper.MapFromFlight(_flightsRecordsMock.First()); // Act var currentFlight = await flightServices.GetFlight(new GetFlightArgs { FlightId = flightId }); // Assert Check.That(currentFlight).IsNotNull(); Check.That(currentFlight).HasFieldsWithSameValues(expectFlight); _flightRepositoryMock.Verify(repo => repo.GetAsync(It.IsAny <object>()), Times.Once); }