コード例 #1
0
        public void CreateParkingMeter_Expect2RulesActive()
        {
            //Arrange
            var parkingMeter  = new ParkingMeter.ParkingMeter();
            var shortTermRule = new ShortStayRule();
            var longTermRule  = new LongStayRule();

            //Act
            parkingMeter.ActiveSchemes = new IChargeRule[] { shortTermRule, longTermRule };
            //Assert
            parkingMeter.ActiveSchemes.Count().Should().Be(2);
        }
コード例 #2
0
        public void CheckAppliesForMondayStartOutOfRangeAndEndOutOfRange_ExpectTrue()
        {
            //Arrange
            var longTermRule = new LongStayRule
            {
                ActiveDays = new[] { DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday, DayOfWeek.Saturday, DayOfWeek.Sunday },
                StartTime  = new TimeSpan(0, 0, 0),
                EndTime    = new TimeSpan(23, 59, 59),
                Increment  = new TimeSpan(23, 59, 59),
                Scheme     = ChargingScheme.LongStay,
                PeriodRate = 7.5m
            };
            var parkingMeter = new ParkingMeter.ParkingMeter();

            parkingMeter.ActiveSchemes = new IChargeRule[] { longTermRule };
            var entryTime = new DateTime(2020, 5, 21, 07, 30, 0);
            var exitTime  = new DateTime(2020, 5, 23, 16, 30, 0);
            //Act
            var parkingCharge = parkingMeter.ProcessParkingCharge(CustomerSelection, entryTime, exitTime);

            //Assert
            parkingCharge.Should().Be(longTermRule.PeriodRate * 3);
        }