private Func <Booking> BuildCreateBookingServiceCall(Action <SampleArguments> argsModifier = null)
        {
            var createBookingService = new CreateBookingService();
            var args = new SampleArguments();

            argsModifier?.Invoke(args);

            return(() => createBookingService.CreateBooking(args.Id,
                                                            args.BookingNumber,
                                                            args.Customer,
                                                            args.BookingDate,
                                                            args.Flight,
                                                            args.Passengers));
        }
        private Func <Flight> BuildCreateFlightServiceCall(Action <SampleArguments> argsModifier = null)
        {
            var createFlightService = new CreateFlightService();
            var args = new SampleArguments();

            argsModifier?.Invoke(args);

            return(() => createFlightService.CreateFlight(args.Id,
                                                          args.FlightNumber,
                                                          args.DepartureAirport,
                                                          args.DepartureDate,
                                                          args.ArrivalAirport,
                                                          args.ArrivalDate,
                                                          args.Carrier,
                                                          args.Price));
        }
        public void Test_WithValidParams()
        {
            // Arrange
            var args   = new SampleArguments();
            var action = BuildCreateBookingServiceCall(x => x.BookingDate = args.BookingDate);

            // Act
            var booking = action();

            // Assert
            Assert.Equal(args.Id, booking.Id);
            Assert.Equal(args.BookingNumber, booking.Number);
            Assert.Equal(args.Customer.Id, booking.CustomerId);
            Assert.Equal(args.BookingDate, booking.DateBooking);
            Assert.NotEmpty(booking.Passengers);
            Assert.NotNull(booking.Flight);
        }
        public void Test_WithValidParams()
        {
            // Arrange
            var args   = new SampleArguments();
            var action = BuildCreateFlightServiceCall();

            // Act
            var flight = action();

            // Assert
            // Assert
            Assert.Equal(args.Id, flight.Id);
            Assert.Equal(args.FlightNumber, flight.Number);
            Assert.Equal(args.DepartureAirport.Id, flight.DepartureAirportId);
            Assert.Equal(args.DepartureDate, flight.DepartureDate);
            Assert.Equal(args.ArrivalAirport.Id, flight.ArrivalAirportId);
            Assert.Equal(args.ArrivalDate, flight.ArrivalDate);
            Assert.Equal(args.Carrier.Id, flight.CarrierId);
            Assert.Equal(args.Price, flight.Price);
        }