public void GetParkingRateName_InvalidDate_ThrowsException() { //arrange var entryDateTime = new DateTime(2018, 03, 05, 18, 0, 0); var exitDateTime = new DateTime(2018, 03, 04, 22, 0, 0); var mockNightRateConditions = new Mock <INightRateConditions>(); var mockWeekendRateConditions = new Mock <IWeekendRateConditions>(); var mockEarlyBirdConditions = new Mock <IEarlyBirdConditions>(); mockNightRateConditions.Setup(x => x.MeetAllConditions(entryDateTime, exitDateTime)).Returns(false); mockWeekendRateConditions.Setup(x => x.MeetAllConditions(entryDateTime, exitDateTime)).Returns(false); mockEarlyBirdConditions.Setup(x => x.MeetAllConditions(entryDateTime, exitDateTime)).Returns(true); var parkingRateType = new ParkingRateType(mockNightRateConditions.Object, mockWeekendRateConditions.Object, mockEarlyBirdConditions.Object); //act //assert Assert.Throws <Exception>(() => parkingRateType.GetParkingRateName(entryDateTime, exitDateTime)); }
public void GetParkingRateName_NotEarlyBirdNotWeekendNotNightRate_ReturnsStandard() { //arrange var entryDateTime = new DateTime(2018, 03, 05, 18, 0, 0); var exitDateTime = new DateTime(2018, 03, 05, 22, 0, 0); var mockNightRateConditions = new Mock <INightRateConditions>(); var mockWeekendRateConditions = new Mock <IWeekendRateConditions>(); var mockEarlyBirdConditions = new Mock <IEarlyBirdConditions>(); mockNightRateConditions.Setup(x => x.MeetAllConditions(entryDateTime, exitDateTime)).Returns(false); mockWeekendRateConditions.Setup(x => x.MeetAllConditions(entryDateTime, exitDateTime)).Returns(false); mockEarlyBirdConditions.Setup(x => x.MeetAllConditions(entryDateTime, exitDateTime)).Returns(false); var parkingRateType = new ParkingRateType(mockNightRateConditions.Object, mockWeekendRateConditions.Object, mockEarlyBirdConditions.Object); //act var rateName = parkingRateType.GetParkingRateName(entryDateTime, exitDateTime); //assert Assert.Equal(rateName.ToString(), RateName.Standard.ToString()); }