コード例 #1
0
        public void TestCorrectRoundingLoss()
        {
            var request              = CompensationSummaryRequestContractData.GetCompensationSummaryRequestContract();
            var paychecks            = CompensationSummaryResultContractData.GetCompensationSummaryResultContract().Paychecks;
            var totalAnnualDiscounts = 0.0m;

            var expectedDifference = Math.Abs(request.Employee.AnnualElectedBenefitsCost - paychecks.Select(x => x.DeductionsAmount).Sum());

            var result = _summaryRoundingLossCalculators.CorrectRoundingLoss(request, totalAnnualDiscounts, paychecks);

            var adjustedAmmount = Math.Abs(result.Paychecks.Where(x => x.PayPeriodOrdinal == 0).FirstOrDefault().DeductionsAmount -
                                           result.Paychecks.Where(x => x.PayPeriodOrdinal == 25).FirstOrDefault().DeductionsAmount);

            Assert.AreEqual(expectedDifference, adjustedAmmount);
        }
コード例 #2
0
        public void TestCalculateEmployeeAnnualCompensationSummary()
        {
            var request = CompensationSummaryRequestContractData.GetCompensationSummaryRequestContract();

            _mockDeductionCalculators.Setup(x => x.CalculateEmployeePersonalPaycheckDeduction(It.IsAny <EmployeeContract>(), It.IsAny <int>())).Returns(request.Employee.AnnualElectedBenefitsCost);
            _mockDeductionCalculators.Setup(x => x.CalculateEmployeeDependentPaycheckDeduction(It.IsAny <DependentContract>(), It.IsAny <int>())).Returns(request.Employee.Dependents.FirstOrDefault()?.AnnualElectedBenefitsCost ?? 0m);

            var mockDiscountValue = 0.5m;

            _mockDiscountCalculators.Setup(x => x.CalculateBeneficiaryDiscountPaycheckValue(It.IsAny <BeneficiaryContract>(), It.IsAny <IEnumerable <IDiscount> >(), It.IsAny <int>())).Returns(mockDiscountValue);

            _mockSummaryRoundingLossCalculators.Setup(x => x.CorrectRoundingLoss(It.IsAny <CompensationSummaryRequestContract>(), It.IsAny <decimal>(), It.IsAny <IEnumerable <PaycheckContract> >())).Returns(CompensationSummaryResultContractData.GetCompensationSummaryResultContract());

            var result = _compensationSummaryProxy.CalculateEmployeeAnnualCompensationSummary(request);

            var dependentCount = request.Employee.Dependents.Count();

            _mockDeductionCalculators.Verify(x => x.CalculateEmployeePersonalPaycheckDeduction(It.IsAny <EmployeeContract>(), It.IsAny <int>()), Times.Once);
            _mockDeductionCalculators.Verify(x => x.CalculateEmployeeDependentPaycheckDeduction(It.IsAny <DependentContract>(), It.IsAny <int>()), Times.Exactly(dependentCount));

            _mockDiscountCalculators.Verify(x => x.CalculateBeneficiaryDiscountPaycheckValue(It.IsAny <BeneficiaryContract>(), It.IsAny <IEnumerable <IDiscount> >(), It.IsAny <int>()), Times.Exactly(1 + dependentCount));

            _mockSummaryRoundingLossCalculators.Verify(x => x.CorrectRoundingLoss(It.IsAny <CompensationSummaryRequestContract>(), It.IsAny <decimal>(), It.IsAny <IEnumerable <PaycheckContract> >()), Times.Once);
        }