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