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); } }
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)); }
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)); }
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)); }