public void Throws_If_ElecHobbs_Null_But_Req()
        {
            var opts  = new AircraftOptions(true, false, false, false, false, false);
            var times = new AircraftTimes(0m, 0m, 0m, 0m, null, 0m, 0m, 0, _default);

            Assert.Throws <InvalidTimesException>(() => new Aircraft("", "", 0, 0, times, opts));
        }
Example #2
0
        public double CalculateFuelConsumptionInLiter(Flight flight, AircraftOptions aircraftOptions)
        {
            double fuelConsumptionInLiter = (flight.DistanceInKilometer * aircraftOptions.FuelConsumptionInLiterPerKilometer) +
                                            aircraftOptions.TakeoffFuelConsumptionInLiter;

            return(fuelConsumptionInLiter);
        }
        public void Throws_If_Cycles_Given_But_NotReq()
        {
            var opts  = new AircraftOptions(false, false, false, false, false, false);
            var times = new AircraftTimes(0m, 0m, 0m, 0m, null, null, null, 0, _default);

            Assert.Throws <InvalidTimesException>(() => new Aircraft("", "", 0, 0, times, opts));
        }
Example #4
0
 public FlightController(IFlightService flightService, ILogger <FlightController> logger,
                         IOptions <AircraftOptions> aircraftOptionsAccessor, IMapper mapper)
 {
     this.flightService = flightService;
     this.logger        = logger;
     aircraftOptions    = aircraftOptionsAccessor.Value;
     this.mapper        = mapper;
 }
Example #5
0
        public void UpdateFlight(Flight flight, AircraftOptions aircraftOptions)
        {
            flight.DepartureAirport       = airportRepository.GetById(flight.DepartureAirportId);
            flight.DestinationAirport     = airportRepository.GetById(flight.DestinationAirportId);
            flight.DistanceInKilometer    = this.CalculateFlightDistanceInKilometer(flight);
            flight.FuelConsumptionInLiter = this.CalculateFuelConsumptionInLiter(flight, aircraftOptions);

            flightRepository.Update(flight);
        }
        public void Throws_If_Airtime_Given_But_NotReq()
        {
            var opts  = new AircraftOptions(false, false, false, false, false, false);
            var curr  = new AircraftTimes(0m, 0m, 0m, 0m, null, 0m, null, null, _default);
            var total = new AircraftTimes(0m, 0m, 0m, 0m, null, null, 0m, null, _default);

            // Check both Curr and Total
            Assert.Throws <InvalidTimesException>(() => new Aircraft("", "", 0, 0, curr, opts));
            Assert.Throws <InvalidTimesException>(() => new Aircraft("", "", 0, 0, total, opts));
        }
        public void Throws_If_Airtime_Null_But_Req()
        {
            var opts    = new AircraftOptions(false, true, false, false, false, false);
            var noCurr  = new AircraftTimes(0m, 0m, 0m, 0m, 0m, null, 0m, 0, _default);
            var noTotal = new AircraftTimes(0m, 0m, 0m, 0m, 0m, 0m, null, 0, _default);

            // Check both Curr and Total
            Assert.Throws <InvalidTimesException>(() => new Aircraft("", "", 0, 0, noCurr, opts));
            Assert.Throws <InvalidTimesException>(() => new Aircraft("", "", 0, 0, noTotal, opts));
        }
        public void Throws_On_Invalid_Target(AircraftTotalTarget invalidTgt)
        {
            // Create barebones single-engine AircraftOptions
            // IMPORTANT - Engine1Current is always a valid target.
            var opts  = new AircraftOptions(false, false, false, false, false, false);
            var times = new AircraftTimes(0m, 0m, 0m, 0m, null, null, null, null,
                                          invalidTgt);

            // Create an aircraft that does not ever have Airtime or ElecHobbs data
            // while also passing in targets pointing to those properties.
            Assert.Throws <InvalidTargetException>(() => new Aircraft("", "", 0, 0, times, opts));
        }
Example #9
0
        public void Throws_If_Twin_But_Null_On_Creation()
        {
            var opts  = new AircraftOptions(false, false, false, false, true, false);
            var times = new AircraftTimes(0m, 0m, 0m, 0m, null, null, null, null,
                                          AircraftTotalTarget.Engine1Current);

            // Start with eng2Curr null, then try each other (decimals not supported in InlineData)
            // eng2Curr
            times.SetTwinTimes(null, 0m, 0m);
            Assert.Throws <InvalidTimesException>(() => new Aircraft("", "", 0, 0, times, opts));
            // eng2Total
            times.SetTwinTimes(0m, null, 0m);
            Assert.Throws <InvalidTimesException>(() => new Aircraft("", "", 0, 0, times, opts));
            // prop2Total
            times.SetTwinTimes(0m, 0m, null);
            Assert.Throws <InvalidTimesException>(() => new Aircraft("", "", 0, 0, times, opts));
        }
        public void CalculateFuelConsumptionInLiter_NearFlight_GetFuelConsumption()
        {
            //
            // Arrange
            Flight          flight          = FlightsProvider.GetNearFlight();
            AircraftOptions aircraftOptions = new AircraftOptions()
            {
                FuelConsumptionInLiterPerKilometer = 3.628, TakeoffFuelConsumptionInLiter = 2.392
            };
            FlightService flightService = new FlightService(flightRepository, airportRepository, unitOfWork);

            flight.DistanceInKilometer = flightService.CalculateFlightDistanceInKilometer(flight);
            //
            // Act
            var result = flightService.CalculateFuelConsumptionInLiter(flight, aircraftOptions);

            //
            // Assert
            Assert.Equal(2037, Math.Round(result));
        }
Example #11
0
        public void IsSimulator_Overrides_Twin_And_Tailwheel()
        {
            var ac = new AircraftOptions(false, false, false, true, true, true);

            Assert.True(ac.IsSimulator == true && ac.IsTwin == false && ac.IsTailWheel == false);
        }