Exemplo n.º 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);
        }
Exemplo n.º 2
0
        public void CheckAppliesForMondayStartOutOfRangeAndEndOutOfRange_ExpectTrue()
        {
            //Arrange
            var shortTermRule = new ShortStayRule
            {
                ActiveDays = new[] { DayOfWeek.Monday },
                StartTime  = new TimeSpan(8, 0, 0),
                EndTime    = new TimeSpan(18, 0, 0),
                Increment  = new TimeSpan(1, 0, 0),
                Scheme     = ChargingScheme.ShortStay,
                PeriodRate = 1.1m
            };
            var parkingMeter = new ParkingMeter.ParkingMeter();

            parkingMeter.ActiveSchemes = new IChargeRule[] { shortTermRule };
            var entryTime = new DateTime(2020, 05, 25, 07, 30, 0);
            var exitTime  = new DateTime(2020, 5, 25, 18, 30, 0);
            //Act
            var parkingCharge = parkingMeter.ProcessParkingCharge(CustomerSelection, entryTime, exitTime);

            //Assert
            parkingCharge.Should().Be(11m);
        }