Exemplo n.º 1
0
        public void OnGet()
        {
            if (!ModelState.IsValid)
            {
                return;
            }

            var input = new LoanCalculatorInput(Amount, TermYears * 12, InterestRate);

            CalculationResult <decimal> result = null;

            try
            {
                result = _loanCalculator.Calculate(input);
            }
            catch (ArgumentNullException)
            {
                OutputMessage = _localizer[LocalizationResourceKeys.LoanCalculatorErrorMessage];
            }

            if (result != null && result.Successful)
            {
                OutputMessage = string.Format(_localizer[LocalizationResourceKeys.LoanCalculatorResultMessage], Amount, TermYears, result.Value);
            }
        }
Exemplo n.º 2
0
        public void Calculate_NegativeInterestRate_FailsWithInvalidInputReason()
        {
            var input = new LoanCalculatorInput(100m, 12, -0.1m);

            CalculationResult <decimal> result = _calculator.Calculate(input);

            Assert.That(() => result.Successful, Is.False);
            Assert.That(() => result.FailureReason, Is.EqualTo(CalculationFailureReason.InvalidInput));
        }
Exemplo n.º 3
0
        public void Calculate_ZeroInterestRate_ResultContainsCorrectValue()
        {
            var input = new LoanCalculatorInput(100m, 12, 0m);

            CalculationResult <decimal> result = _calculator.Calculate(input);

            Assert.That(() => result.Successful, Is.True);
            Assert.That(() => result.Value, Is.EqualTo(8.33m));
        }
Exemplo n.º 4
0
        public void Calculate_ZeroAmount_ResultContainsZero()
        {
            var input = new LoanCalculatorInput(0, 12, 0.1m);

            CalculationResult <decimal> result = _calculator.Calculate(input);

            Assert.That(() => result.Successful, Is.True);
            Assert.That(() => result.Value, Is.EqualTo(0));
        }