コード例 #1
0
        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);
        }
コード例 #2
0
        public void ShouldWorkNormally()
        {
            // Arrange
            var startOfWeek = new DateTime(2021, 7, 11);
            var minDate     = new DateTime(2021, 1, 1);
            var maxDate     = new DateTime(2021, 12, 31);

            var incomeRoeGetter = A.Fake <IGetIncomeFromOneRoe>();

            A.CallTo(() => incomeRoeGetter.Get(A <FullPayPeriod> ._, startOfWeek, minDate, maxDate))
            .Returns(100).Once();
            A.CallTo(() => incomeRoeGetter.Get(A <FullPayPeriod> ._, startOfWeek, minDate, maxDate))
            .Returns(150).Once();

            var sut = new WeeklyIncomeGetter(incomeRoeGetter);

            // Act
            var simpleRoe = new SimpleRoe()
            {
                LastDayForWhichPaid  = maxDate,
                FirstDayForWhichPaid = minDate,
            };
            var payPeriods = new List <FullPayPeriod>()
            {
                new FullPayPeriod(1, 1000),
                new FullPayPeriod(2, 2000)
            };
            var fullRoe = new FullRoe(simpleRoe, payPeriods);
            var result  = sut.Get(fullRoe, startOfWeek);

            // Assert
            A.CallTo(() => incomeRoeGetter.Get(A <FullPayPeriod> ._, A <DateTime> ._, A <DateTime> ._, A <DateTime> ._))
            .MustHaveHappenedTwiceExactly();

            Assert.Equal(250, result);
        }