public async Task CalculaJuros(decimal valorInicial, int meses, decimal resultado) { var presenter = new CalculaJurosPresenter(); var useCase = new CalculaJurosUseCase( presenter, _fixture.FinanceiroService); await useCase.Execute( new CalculaJurosInput( new ValorInicial(valorInicial), new Meses(meses))); var output = presenter.CalculaJuros.Last(); Assert.Equal(resultado, output.Resultado.ToDecimal()); }
public void GivenValidData_Handle_WritesOkObjectResult() { Resultado resultado = new Resultado(105.1m); var output = new CalculaJurosOutput(resultado); var presenter = new CalculaJurosPresenter(); presenter.Standard(output); var actual = Assert.IsType <OkObjectResult>(presenter.ViewModel); Assert.Equal((int)HttpStatusCode.OK, actual.StatusCode); var actualValue = (CalculaJurosResponse)actual.Value; Assert.Equal(resultado.ToDecimal(), actualValue.Resultado); }
public async Task CalculaJuros_ShouldNot_Calculate_WhenMaxValue(decimal valorInicial, int meses) { var presenter = new CalculaJurosPresenter(); var useCase = new CalculaJurosUseCase( presenter, _fixture.FinanceiroService); if (valorInicial > 10000000000000m) { await Assert.ThrowsAsync <ValorInicialMaxValueException>(() => useCase.Execute(new CalculaJurosInput( new ValorInicial(valorInicial), new Meses(meses)))); } if (meses > 1200) { await Assert.ThrowsAsync <MesesMaxValueException>(() => useCase.Execute(new CalculaJurosInput( new ValorInicial(valorInicial), new Meses(meses)))); } }