Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        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
        }