/// <summary> /// Creates <see cref="Quote"/> for the given amount and time. /// </summary> /// <param name="lender"></param> /// <param name="amountRequested"></param> /// <returns></returns> private Quote CreateQuote(Lender lender, int amountRequested) { Quote quote; try { // Calculate the monthly repayment using the lender's interest rate and repayment length, then create quote. var monthlyRepayment = _repaymentService.GetMonthlyRepaymentAmount(amountRequested, lender.AnnualInterestRateDecimal, _repaymentLengthMonths); quote = new Quote(amountRequested, lender.AnnualInterestRateDecimal, monthlyRepayment, _repaymentLengthMonths); } catch (Exception ex) { _logger.LogError("Could not get quote.", lender, amountRequested, _repaymentLengthMonths, ex); throw; } return(quote); }
public void GetMonthlyRepaymentAmount_CalculateAmount_ReturnValidAmount(int amountRequested, double interestRateDecimal, int repaymentLengthMonths, double expectedResult) { #region Arrange _repaymentService = new RepaymentService(_logger.Object); #endregion #region Act var result = _repaymentService.GetMonthlyRepaymentAmount(amountRequested, interestRateDecimal, repaymentLengthMonths); #endregion #region Assert Assert.That(result, Is.EqualTo(expectedResult)); #endregion }