예제 #1
0
        public void GetLoanPaymentOverwiew_ExpectedBehavior()
        {
            // Arrange
            var loanPaymentCalculatorInternal = new LoanPaymentCalculatorInternal();
            var loanParameters = new LoanParameters
            {
                LoanAmount            = 500000,
                DurationOfLoanInYears = 10,
            };

            var loanTerms = new LoanTerms
            {
                AnnualInterestRate = 0.05m,
                PaymentsPerYear    = 12,
                AdminFeeRelative   = 0.01m,
                MaxAdminFee        = 10000,
            };

            // Act
            var result = loanPaymentCalculatorInternal.GetLoanPaymentOverwiew(
                loanParameters,
                loanTerms);

            // Assert
            Assert.Equal(500000, result.LoanAmount);
            Assert.Equal(10, result.DurationOfLoanInYears);
            Assert.Equal(5303.28m, result.MonthlyPayment);
            Assert.Equal(136393.09m, result.AmountPaidAsInterest);
            Assert.Equal(5000m, result.AdministrativeFee);
        }
예제 #2
0
        public void GetAdministrativeFeeTest_ExpectedBehavior(decimal loanAmount, decimal adminFeeRelative, decimal maxAdminFee, decimal fee)
        {
            // Arrange
            var loanPaymentCalculatorInternal = new LoanPaymentCalculatorInternal();

            // Act
            var result = loanPaymentCalculatorInternal.GetAdministrativeFee(
                loanAmount,
                adminFeeRelative,
                maxAdminFee);

            Assert.Equal(fee, result);
        }
예제 #3
0
        public void GetMonthlyPayment_ExpectedBehavior()
        {
            // Arrange
            var loanPaymentCalculatorInternal = new LoanPaymentCalculatorInternal();
            var loanAmount             = 500000;
            var amountOfPayments       = 120;
            var interestRatePerPayment = 0.05 / 12;

            // Act
            var result = loanPaymentCalculatorInternal.GetMonthlyPayment(
                loanAmount,
                amountOfPayments,
                interestRatePerPayment);

            Assert.Equal(5303.28m, Math.Round(result, 2));
        }