예제 #1
0
        public void Tempo_DeveSerMaiorQueZero()
        {
            var calculaJuros = new CalcularJuros(VALID_VALOR_INICIAL, VALID_TAXA_JUROS, 1);

            var resultado = calculaJuros.IsValid();

            Assert.True(resultado);
            Assert.Empty(calculaJuros.ValidationResult.Errors);
        }
예제 #2
0
        public void TaxaJuros_DeveSerMaiorQueZero()
        {
            var calculaJuros = new CalcularJuros(VALID_VALOR_INICIAL, 0.001M, VALID_TEMPO);

            var resultado = calculaJuros.IsValid();

            Assert.True(resultado);
            Assert.Empty(calculaJuros.ValidationResult.Errors);
        }
예제 #3
0
        public void ValorInicial_DeveSerMaiorQueZero()
        {
            var calculaJuros = new CalcularJuros(0.001M, VALID_TAXA_JUROS, VALID_TEMPO);

            var resultado = calculaJuros.IsValid();

            Assert.True(resultado);
            Assert.Empty(calculaJuros.ValidationResult.Errors);
        }
예제 #4
0
        public void Tempo_NaoDeveSerMenorOuIgualZero()
        {
            var calculaJuros = new CalcularJuros(VALID_VALOR_INICIAL, VALID_TAXA_JUROS, 0);

            var resultado = calculaJuros.IsValid();

            Assert.False(resultado);
            Assert.NotNull(calculaJuros.ValidationResult.Errors);
            Assert.NotEmpty(calculaJuros.ValidationResult.Errors);
            Assert.NotNull(calculaJuros.ValidationResult.Errors.FirstOrDefault(_ => _.ErrorMessage == "O valor do tempo deve ser maior que zero."));
        }
예제 #5
0
        public void ValorInicial_NaoDeveSerMenorOuIgualZero()
        {
            var calculaJuros = new CalcularJuros(0, VALID_TAXA_JUROS, VALID_TEMPO);

            var resultado = calculaJuros.IsValid();

            Assert.False(resultado);
            Assert.NotNull(calculaJuros.ValidationResult.Errors);
            Assert.NotEmpty(calculaJuros.ValidationResult.Errors);
            Assert.NotNull(calculaJuros.ValidationResult.Errors.FirstOrDefault(_ => _.ErrorMessage == "O valor inicial deve ser maior que zero."));
        }
예제 #6
0
        public async Task <decimal> Calcular(decimal valorInicial, int tempo)
        {
            decimal juros;

            try
            {
                juros = await _taxaJurosService.GetTaxaJuros();
            }
            catch
            {
                throw new Exception("Não foi possível estabelecer conexão com o serviço TaxaJuros.");
            }
            var calculadora = new CalcularJuros(valorInicial, juros, tempo);

            if (!calculadora.IsValid())
            {
                throw new ArgumentException("Não foi possivel realizar o calculo de Juros, os valores devem ser maiores que zero.");
            }
            return(calculadora.Calcular());
        }