Exemple #1
0
        public void Test_PassMissingValue()
        {
            IFareRequest       i;
            TaxiFareCalculator taxiCalculator  = new TaxiFareCalculator();
            TaxiFareRequest    taxiFareRequest = new TaxiFareRequest
            {
                MilesTraveledBelow6mph   = 2,
                MinutesTraveledAbove6mph = 5,
                RideBeginDateTime        = null
            };

            TaxiFareResult result = (TaxiFareResult)taxiCalculator.CalculateFare(taxiFareRequest);

            Assert.IsNotNull(result);
            Assert.IsFalse(result.Success);
        }
Exemple #2
0
        public void Test_TotalFareIncludesPeakWeekdaySurcharge()
        {
            TaxiFareRequest taxiFareRequest = new TaxiFareRequest
            {
                MilesTraveledBelow6mph   = 2,
                MinutesTraveledAbove6mph = 5,
                RideBeginDateTime        = new DateTime(2010, 10, 8, 17, 30, 0)
            };

            TaxiFareCalculator taxiCalculator = new TaxiFareCalculator();
            TaxiFareResult     taxiResult     = (TaxiFareResult)taxiCalculator.CalculateFare(taxiFareRequest);

            Assert.IsTrue(taxiResult.Success);
            Assert.AreEqual(9.75m, taxiResult.TotalFare);
            Assert.AreEqual(3.50m, taxiResult.FareMilesTraveledBelow6mph);
            Assert.AreEqual(1.75m, taxiResult.FareMinutesTraveledAbove6mph);
            Assert.AreEqual(1m, taxiResult.PeakWeekdaySurcharge);
        }
Exemple #3
0
        public void Test_WeekdayNightSurchargeAndNoPeak()
        {
            TaxiFareRequest taxiFareRequest = new TaxiFareRequest
            {
                MilesTraveledBelow6mph   = 2,
                MinutesTraveledAbove6mph = 5,
                RideBeginDateTime        = new DateTime(2010, 10, 8, 20, 30, 0)
            };

            Assert.AreEqual(DayOfWeek.Friday, taxiFareRequest.RideBeginDateTime.Value.DayOfWeek);

            TaxiFareCalculator taxiCalculator = new TaxiFareCalculator();
            TaxiFareResult     taxiResult     = (TaxiFareResult)taxiCalculator.CalculateFare(taxiFareRequest);

            Assert.IsTrue(taxiResult.Success);
            Assert.AreEqual(9.25m, taxiResult.TotalFare);
            Assert.AreEqual(3.50m, taxiResult.FareMilesTraveledBelow6mph);
            Assert.AreEqual(1.75m, taxiResult.FareMinutesTraveledAbove6mph);
            Assert.AreEqual(.5m, taxiResult.NightSurcharge);
            Assert.AreEqual(0m, taxiResult.PeakWeekdaySurcharge);
        }
Exemple #4
0
        public void Test_WeekendNightSurchargeBeforeNight745PM()
        {
            TaxiFareRequest taxiFareRequest = new TaxiFareRequest
            {
                MilesTraveledBelow6mph   = 2,
                MinutesTraveledAbove6mph = 5,
                RideBeginDateTime        = new DateTime(2010, 10, 9, 19, 45, 0)
            };

            Assert.AreEqual(DayOfWeek.Saturday, taxiFareRequest.RideBeginDateTime.Value.DayOfWeek);

            TaxiFareCalculator taxiCalculator = new TaxiFareCalculator();
            TaxiFareResult     taxiResult     = (TaxiFareResult)taxiCalculator.CalculateFare(taxiFareRequest);

            Assert.IsTrue(taxiResult.Success);
            Assert.AreEqual(8.75m, taxiResult.TotalFare);
            Assert.AreEqual(3.50m, taxiResult.FareMilesTraveledBelow6mph);
            Assert.AreEqual(1.75m, taxiResult.FareMinutesTraveledAbove6mph);
            Assert.AreEqual(0, taxiResult.NightSurcharge);
            Assert.AreEqual(0m, taxiResult.PeakWeekdaySurcharge);
        }