public void BusinessDaysBetweenTwoDatesCustomHolidays_WhenPasseValidDatesAndCustomHoliday_ThenReturnsCorrectCount() { // Arrange var firstDate = new DateTime(2020, 4, 20); var secondDate = new DateTime(2020, 4, 30); var anzacDayHoliday = new PublicHoliday { Name = "Anzac Day", Month = 4, Day = 25, MustHappenOnAWeekDay = true }; var holidayList = new List <PublicHoliday> { anzacDayHoliday }; var anzacDayDateIn2020 = new List <DateTime> { new DateTime(2020, 4, 27) }; var year = new List <int> { 2020 }; var calculator = new FixedDayCalculator(); _dateHelper.GetYearsBetweenDates(firstDate, secondDate).Returns(year); _publicHolidayCalculatorFactory.GetCalculator(anzacDayHoliday).Returns(calculator); var target = new DateCounter(_publicHolidayCalculatorFactory, _dateHelper, _logger); // Act var actual = target.BusinessDaysBetweenTwoDates(firstDate, secondDate, holidayList); // Assert actual.Should().Be(6); _dateHelper.Received(1).GetYearsBetweenDates(firstDate, secondDate); _publicHolidayCalculatorFactory.Received(1).GetCalculator(anzacDayHoliday); }
public void BusinessDaysBetweenTwoDates_WhenPasseValidDates_ThenReturnsCorrectCount( DateTime firstDate, DateTime secondDate, IList <DateTime> holidaysList, int expectedCounts) { // Arrange var target = new DateCounter(_publicHolidayCalculatorFactory, _dateHelper, _logger); // Act var actual = target.BusinessDaysBetweenTwoDates(firstDate, secondDate, holidaysList); // Assert actual.Should().Be(expectedCounts); }