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());
        }
Example #2
0
        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))));
            }
        }