private FlightViewModel CreateDefaultEditFlightViewModel(string flightId) { var flight = _database.GetFlightsById(new[] { Guid.Parse(flightId) }).Single(); return(new FlightViewModel { Flights = new[] { new FlightModel( flight.Id.ToString(), flight.Departure, flight.Destination, flight.AircraftFuelConsumptionLitersPerKm, flight.AircraftFuelConsumptionTakeoffEffort, $"{_flightsManager.GetTotalFuelConsumption(flight.Id):0.###} Liters") }, AvailableAirports = _database.GetAllAirports() .Select(a => new SelectListItem { Value = a.InternalName, Text = a.UserFriendlyName }), NewFlightDepartureAirport = flight.Departure.InternalName, NewFlightArrivalAirport = flight.Destination.InternalName, NewFuelConsumptionLitersPerKm = flight.AircraftFuelConsumptionLitersPerKm, NewFuelConsumptionTakeoffEffortInLiters = flight.AircraftFuelConsumptionTakeoffEffort, }); }
public void WhenGettingFuelConsumptionForFlight_GivenFlight_ShouldComputeCorrectFuelRequired() { //https://www.movable-type.co.uk/scripts/latlong.html //https://gps-coordinates.org/distance-between-coordinates.php //Distance computed for '5.0, 10.0' -> '20.0, 25.0' var expectedDistanceInKm = 2327.12; var expectedInFlightFuelConsumption = expectedDistanceInKm * _testFlight.AircraftFuelConsumptionLitersPerKm; var expectedTotalFuelconsumption = expectedInFlightFuelConsumption + _testFlight.AircraftFuelConsumptionTakeoffEffort; _databaseMock.Setup(d => d.GetFlightsById(It.Is <Guid[]>(t => t[0] == _testFlightId))).Returns(new[] { _testFlight }); var totalFuelConsumption = _flightsManager.GetTotalFuelConsumption(_testFlightId); Assert.Equal(expectedTotalFuelconsumption, totalFuelConsumption, 1); }