Example #1
0
        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);
        }
Example #2
0
        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);
        }