コード例 #1
0
        public CostDetails CalculateCost(double totalMinutes)
        {
            TimeSpan duration  = TimeSpan.FromMinutes(totalMinutes);
            decimal  totalCost = 0;

            if (totalMinutes <= 0)
            {
                totalCost = 0;
            }
            else
            if (totalMinutes <= MinuteConvertor.Hours(5))
            {
                totalCost = COST_IN_5_HOURS;
            }
            else
            {
                var days       = duration.Days;
                var startedDay = (duration.Hours | duration.Minutes) != 0 ? 1 : 0;
                var totalDays  = days + startedDay;
                totalCost = totalDays * COST_PER_DAY;
            }


            return(new CostDetails
            {
                Cost = totalCost,
                Days = duration.Days,
                Hours = duration.Hours,
                Minutes = duration.Minutes
            });
        }
コード例 #2
0
 public double CalculateCost(int minutes)
 {
     if (minutes <= MinuteConvertor.Hours(5))
     {
         return(ParkingCostIn5Hours);
     }
     return(ParkingDays(minutes) * ParkingCostPerDay);
 }
コード例 #3
0
        public void Should_convert_hours_to_minutes()
        {
            int minutes = MinuteConvertor.Hours(1);

            Assert.That(minutes, Is.EqualTo(60));
        }
コード例 #4
0
 public void Should_charge_2_days_when_valet_parking_time_is_slightly_more_than_1_day()
 {
     Assert.That(_costCalculator.CalculateCost(MinuteConvertor.DaysAndHoursAndMinutes(1, 0, 1)), Is.EqualTo(36));
 }
コード例 #5
0
 public void Should_charge_18_dollars_when_valet_parking_time_is_1_day()
 {
     Assert.That(_costCalculator.CalculateCost(MinuteConvertor.Days(1)), Is.EqualTo(18));
 }
コード例 #6
0
 public void Should_charge_18_dollars_when_valet_parking_time_is_slightly_more_than_5_hours()
 {
     Assert.That(_costCalculator.CalculateCost(MinuteConvertor.HoursAndMinutes(5, 1)), Is.EqualTo(18));
 }
コード例 #7
0
 public void Should_charge_12_dollars_when_valet_parking_time_is_less_than_5_hours()
 {
     Assert.That(_costCalculator.CalculateCost(MinuteConvertor.Hours(5)), Is.EqualTo(12));
 }