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));
        }
Beispiel #2
0
        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);
        }