public void CalculateMonthlyPayment(double amount, int duration, double monthlyPayment) { var serviceModel = new LoanCalculationServiceModel { Amount = amount, Duration = duration }; var result = loanCalculationService.CalculateLoan(serviceModel); Assert.AreEqual(Math.Round(monthlyPayment), Math.Round(result.MonthlyPayment)); }
public void CalculateInterestRate(double amount, int duration, double interestsRate) { var serviceModel = new LoanCalculationServiceModel { Amount = amount, Duration = duration }; var result = loanCalculationService.CalculateLoan(serviceModel); Assert.AreEqual(Math.Round(interestsRate), Math.Round(result.InterestRate)); }
public void CalculateAdministrationFee(double amount, int duration, double administrationFee) { var serviceModel = new LoanCalculationServiceModel { Amount = amount, Duration = duration }; var result = loanCalculationService.CalculateLoan(serviceModel); Assert.AreEqual(Math.Round(administrationFee), Math.Round(result.AdministrationFee)); }
public LoanResultServiceModel CalculateLoan(LoanCalculationServiceModel serviceModel) { var result = new LoanResultServiceModel { DurationOfLoan = serviceModel.Duration, LoanAmount = serviceModel.Amount, InterestRate = CalculateInterestRate(serviceModel.Amount, serviceModel.Duration), AdministrationFee = CalculateAdministrationFee(serviceModel.Amount), }; result.TotalLoanAmount = result.InterestRate + result.LoanAmount + result.AdministrationFee; result.MonthlyPayment = CalculateMonthlyPayment(result.TotalLoanAmount, result.DurationOfLoan); return(result); }
public void Run(Parameters options) { var writeServiceModel = new LoanCalculationServiceModel() { Amount = options.Amount, Duration = options.Duration, }; var result = LoanCalculationService.CalculateLoan(writeServiceModel); var report = LoanReportService.GenerateReport(result); Console.WriteLine(report); Console.ReadLine(); }