public async Task GenerateLoanReport_Should_Return_Correct_Report(double loanAmount, int durationOfLoanMonthly) { // Arrange CalculationLoanInputData calculationData = new CalculationLoanInputData() { DurationOfLoanMonthly = durationOfLoanMonthly, LoanAmount = loanAmount }; // Act var result = await _loanCalculationController.GenerateLoanReport( calculationData); var okResult = result as OkObjectResult; var loanReport = (LoanReport)okResult.Value; // Assert okResult.StatusCode.ShouldBe(200); loanReport.YearlyPayment.ShouldBe(636385.00000000012); loanReport.MonthlyPayment.ShouldBe(5303.2083333333339); }
public async Task <ActionResult> GenerateLoanReport([FromBody] CalculationLoanInputData calculationData) { double annualInterestRate = 0.05; try { var amountAdministrationFee = await _calculationService.GetAdministrationFee(calculationData.LoanAmount) .ConfigureAwait(false); var report = await _calculationService.GenerateReport( calculationData.LoanAmount, annualInterestRate, calculationData.DurationOfLoanMonthly, amountAdministrationFee); return(Ok(report)); } catch (Exception ex) { _logger.Error(ex.Message); return(BadRequest("problem with generate report")); } }