private AverageIncomeCalculator GetSut()
        {
            var startDateGetter  = new StartDateFromEndDateGetter();
            var payPeriodCreator = new FullPayPeriodCreator();
            var fullRoeCreator   = new FullRoeCreator(startDateGetter, payPeriodCreator);

            var mainStartDateGetter = new MainStartDateGetter();
            var incomeRoeGetter     = new IncomeRoeGetter();
            var weeklyIncomeGetter  = new WeeklyIncomeGetter(incomeRoeGetter);
            var incomeListGetter    = new IncomeListGetter(mainStartDateGetter, weeklyIncomeGetter);

            var result = new AverageIncomeCalculator(fullRoeCreator, incomeListGetter);

            return(result);
        }
        public void ShouldWorkForPPEndMidWeek()
        {
            // Arrange
            var startOfWeek = new DateTime(2021, 7, 11);
            var minDate     = new DateTime(2021, 1, 1);
            var maxDate     = new DateTime(2021, 12, 31);

            var payPeriod = new FullPayPeriod(1, 100)
            {
                StartDate = new DateTime(2021, 7, 1),
                EndDate   = new DateTime(2021, 7, 15)
            };

            var sut = new IncomeRoeGetter();

            // Act
            var result = sut.Get(payPeriod, startOfWeek, minDate, maxDate);

            // Assert
            var expected = 500;

            Assert.Equal(expected, result);
        }