public void CalcularJuros_ParametroValorIncialInvalido_GravarNotificacao()
        {
            Business.Models.Juros       juros = DataCreatorJuros.PreencherEntidadeComValorInicialInvalido();
            Task <Business.Models.Taxa> taxa  = DataCreatorJuros.PreencherTaxaComValorValido();

            LogicCreatorJuros Creator = new LogicCreatorJuros()
                                        .ComStubObterTaxaJurosAtual(taxa);

            JurosService Logic = Creator.Instanciar();

            var resultado = Logic.CalcularJuros(juros);

            Creator._taxaService.Verify(p => p.ObterTaxaJurosAtual(), Times.Once);
            Creator._notificacao.Verify(p => p.Handle(It.IsAny <Notificacao>()), Times.Once);

            Assert.True(resultado.Result == null);
        }
        public void CalcularJuros_ParametrosValidos_DeveCalcular()
        {
            Business.Models.Juros       juros = DataCreatorJuros.PreencherEntidadeComValoresValidos();
            Task <Business.Models.Taxa> taxa  = DataCreatorJuros.PreencherTaxaComValorValido();

            LogicCreatorJuros Creator = new LogicCreatorJuros()
                                        .ComStubObterTaxaJurosAtual(taxa);

            JurosService Logic = Creator.Instanciar();

            var resultado = Logic.CalcularJuros(juros);

            var valorFinal = juros.ValorInicial * Convert.ToDecimal(Math.Pow((Convert.ToDouble(taxa.Result.ValorTaxa) + 1), juros.Meses));

            Creator._taxaService.Verify(p => p.ObterTaxaJurosAtual(), Times.Once);
            Creator._notificacao.Verify(p => p.Handle(It.IsAny <Notificacao>()), Times.Never);

            Assert.False(resultado.Result == null);
            Assert.Equal(valorFinal, resultado.Result.ValorFinal);
        }