public void WhenGetFleetSummaryStatistics_CalculatesAcrossVehicles()
        {
            var fillups1 = new[]
                            {
                                new FillupEntry {Date = DateTime.UtcNow.AddDays(-1), PricePerUnit = 1.0, TotalUnits = 10},
                                new FillupEntry {Date = DateTime.UtcNow, PricePerUnit = 1.0, TotalUnits = 10}
                            };

            var fillups2 = new[]
                            {
                                new FillupEntry {Date = DateTime.UtcNow.AddDays(-1), PricePerUnit = 1.0, TotalUnits = 10},
                                new FillupEntry {Date = DateTime.UtcNow, PricePerUnit = 1.0, TotalUnits = 10},
                                new FillupEntry
                                    {
                                        Date = DateTime.UtcNow,
                                        PricePerUnit = 1.0,
                                        TotalUnits = 10,
                                        TransactionFee = 5.0
                                    }
                            };

            var vehicle1 = new Vehicle { VehicleId = 1 };
            var vehicle2 = new Vehicle { VehicleId = 2 };

            var mockVehicleRepository = new Mock<IVehicleRepository>();
            var mockFillupsRepository = new Mock<IFillupRepository>();

            mockVehicleRepository
                .Setup(x => x.GetVehicles(DefaultUserId))
                .Returns(new[] { vehicle1, vehicle2 });

            mockFillupsRepository
                .Setup(x => x.GetFillups(vehicle1.VehicleId))
                .Returns(fillups1);

            mockFillupsRepository
                .Setup(x => x.GetFillups(vehicle2.VehicleId))
                .Returns(fillups2);

            var handler = new GetFleetSummaryStatistics(mockVehicleRepository.Object,mockFillupsRepository.Object);

            var actual = handler.Execute(DefaultUserId);

            Assert.NotNull(actual);
            Assert.Equal(30, actual.TotalFuelCost);
            Assert.Equal(35, actual.TotalCost);
        }
 public GetDashboardController(GetFleetSummaryStatistics getFleetSummaryStatistics, GetImminentRemindersForUser getImminentReminders)
 {
     this.getFleetSummaryStatistics = getFleetSummaryStatistics;
     this.getImminentReminders = getImminentReminders;
 }