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); }
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); }