public void Parse_Single_Day_RateFinder_InvoiceBuilder_Called()
        {
            var invoiceBuilder = new Mock<IInvoiceBuilder>();
               var congestionRateStore = new Mock<ICongestionRateStore>();

            var startTime = new DateTime(2008, 04, 24, 11, 32, 0);
            var endTime = new DateTime(2008, 04, 24, 14, 42, 0);

            congestionRateStore.Setup(crs => crs.GetRates(It.IsAny<DateTime>(), VehicleType.Car)).Returns(new List<ICongestionRate>
                                                                                                                {
                                                                                                                    new CongestionRate("AM rate",Day.Weekday, VehicleType.FullRateVehicle, 2m,
                                                                                                                                         new DateTime(DateTime.MinValue.Year, DateTime.MinValue.Month,
                                                                                                                                                      DateTime.MinValue.Day, 07, 0, 0),
                                                                                                                                         new DateTime(DateTime.MinValue.Year, DateTime.MinValue.Month,
                                                                                                                                                      DateTime.MinValue.Day, 12, 0, 0)),

                                                                                                                    new CongestionRate("PM rate", Day.Weekday, VehicleType.FullRateVehicle, 2.5m,
                                                                                                                                         new DateTime(DateTime.MinValue.Year, DateTime.MinValue.Month,
                                                                                                                                                      DateTime.MinValue.Day, 12, 0, 0),
                                                                                                                                         new DateTime(DateTime.MinValue.Year, DateTime.MinValue.Month,
                                                                                                                                                      DateTime.MinValue.Day, 19, 0, 0)),

                                                                                                                });

            invoiceBuilder.Setup(ib => ib.BuildInvoice(It.IsAny<List<IChargeSummary>>())).Returns(new List<ICongestionChargeInvoice>());

            var congestionCalculator = new CongestionChargeCalculator(congestionRateStore.Object, invoiceBuilder.Object);
            congestionCalculator.CalculateCost(startTime, endTime, VehicleType.Car);

            congestionRateStore.Verify(crs => crs.GetRates(It.IsAny<DateTime>(), VehicleType.Car), Times.Exactly(1));
            invoiceBuilder.Verify(ib => ib.BuildInvoice(It.IsNotNull<List<IChargeSummary>>()), Times.Exactly(1));
        }
예제 #2
0
        public void When_I_leave_the_congestion_charge_zone_at_P0_P1_P2(string p0, string p1, int p2)
        {
            _end = ParseToDate(p0, p1, p2);

                var congestionRateStore = new CongestionRateStore(_rates);
                var congestionCalculator = new CongestionChargeCalculator(congestionRateStore, new InvoiceBuilder());
                _results = congestionCalculator.CalculateCost(_start, _end, _vehicleType);
        }