예제 #1
0
        public void ShouldWorkForSemiMonthlyOn15()
        {
            // Arrange
            var sut     = new StartDateFromEndDateGetter();
            var endDate = new DateTime(2021, 9, 15);

            // Act
            var result = sut.Get(endDate, ppTypes.SEMIMONTHLY);

            // Assert
            var expected = new DateTime(2021, 9, 1);

            Assert.Equal(expected, result);
        }
예제 #2
0
        public void ShouldWorkForBiWeekly()
        {
            // Arrange
            var sut     = new StartDateFromEndDateGetter();
            var endDate = new DateTime(2019, 3, 14);

            // Act
            var result = sut.Get(endDate, ppTypes.BIWEEKLY);

            // Assert
            var expected = new DateTime(2019, 3, 1);

            Assert.Equal(expected, result);
        }
예제 #3
0
        public void ShouldWorkForBiWeeklyOnDifferentMonth()
        {
            // Arrange
            var sut     = new StartDateFromEndDateGetter();
            var endDate = new DateTime(2021, 9, 4);

            // Act
            var result = sut.Get(endDate, ppTypes.BIWEEKLY);

            // Assert
            var expected = new DateTime(2021, 8, 22);

            Assert.Equal(expected, result);
        }
예제 #4
0
        public void ShouldWorkForMonthly(int dayOfMonth)
        {
            // Arrange
            var sut     = new StartDateFromEndDateGetter();
            var endDate = new DateTime(2019, 3, dayOfMonth, 3, 6, 50);

            // Act
            var result = sut.Get(endDate, ppTypes.MONTHLY);

            // Assert
            var expected = new DateTime(2019, 3, 1, 0, 0, 0);

            Assert.Equal(expected, result);
        }
        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);
        }