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 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))));
            }
        }