public void Generate_should_generate_flights_based_on_request_and_save_them()
        {
            #region Using-Mock
            //var repository = Substitute.For<IFlightRepository>();
            //var calculationService = Substitute.For<IFlightCalculationService>();
            //var flights = SomeFlights();
            //calculationService.Calculate(Arg.Any<FlightCalculationRequest>()).Returns(flights);
            //var service = new FlightGenerationService(repository, calculationService);

            //service.Generate(new FlightCalculationRequest());

            //repository.Received(3).Add(Arg.Any<Flight>());
            #endregion

            var repository         = new FakeFlightRepository();
            var calculationService = Substitute.For <IFlightCalculationService>();
            var flights            = SomeFlights();
            calculationService.Calculate(Arg.Any <FlightCalculationRequest>()).Returns(flights);
            var service = new FlightGenerationService(repository, calculationService);

            service.Generate(new FlightCalculationRequestDto());

            var actualInsertedFlights = repository.GetFlights();
            actualInsertedFlights.Should().BeEquivalentTo(flights);
        }
        public void Get_should_return_flights_based_on_flight_number()
        {
            var repository = new FakeFlightRepository();
            var flight     = new FlightTestBuilder().Build();

            repository.Add(flight);
            var expectedFlight = new FlightDto()
            {
                FlightNumber = flight.FlightNumber,
                Destination  = flight.Route.Destination,
                DepartDate   = flight.DepartDate,
                ArriveDate   = flight.ArriveDate,
                Id           = flight.Id,
                Origin       = flight.Route.Origin
            };
            var service = new FlightGenerationService(repository, null);

            var actualFlights = service.Get(flight.FlightNumber);

            actualFlights.Count.Should().Be(1);
            actualFlights.Should().AllBeEquivalentTo(expectedFlight);
        }