/// <summary> /// VF = VI x (1 + taxa)^tempo ///Fórmula do montante em juros compostos ///Onde: ///VF é o valor final obtido na aplicação, ou seja, o saldo após a aplicação do juros; ///taxa é a taxa de juros aplicada, em porcentagem; ///VI é o capital ou valor inicial aplicado; ///tempo é o tempo total da aplicação. /// </summary> /// <param name="calcularJuros"></param> /// <returns>Valor Final</returns> public decimal CalculaJuros(CalcularJuros calcularJuros) { double taxa = 0.01; decimal valorFinal = Convert.ToDecimal(calcularJuros.ValorInicial * Math.Pow(1 + taxa, calcularJuros.Tempo)); return(HelpersService.TruncateDecimal2(valorFinal)); }
public void Calculo_ComTempoMenorOuIgualZero_DeveRetornarZero(int tempo) { var calculaJuros = new CalcularJuros(VALID_VALOR_INICIAL, VALID_TAXA_JUROS, tempo); var resultado = calculaJuros.Calcular(); Assert.Equal(0, resultado); }
public void Calculo_ComTaxaJurosMenorOuIgualZero_DeveRetornarZero(decimal taxaJuros) { var calculaJuros = new CalcularJuros(VALID_VALOR_INICIAL, taxaJuros, VALID_TEMPO); var resultado = calculaJuros.Calcular(); Assert.Equal(0, resultado); }
public void Calculo_ComValorMenorOuIgualZero_DeveRetornarZero(decimal valorInicial) { var calculaJuros = new CalcularJuros(valorInicial, VALID_TAXA_JUROS, VALID_TEMPO); var resultado = calculaJuros.Calcular(); Assert.Equal(0, resultado); }
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); }
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); }
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); }
public void TestCalcularJurosCompostoTruncate() { var valorEsperado = 105.62M; var calcularJuros = new CalcularJuros(100.50, 5); var retorno = _calculaJurosService.CalculaJuros(calcularJuros); Assert.Equal(valorEsperado, retorno); }
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.")); }
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.")); }
public void Calcular_ComValorInicial100TaxaDeJuros0Virgula01Tempo5_DeveRetornar105Virgula10() { var taxaDeJuros = 0.01M; var valorInicial = 100M; var tempo = 5; var esperado = 105.10M; var calculaJuros = new CalcularJuros(valorInicial, taxaDeJuros, tempo); var resultado = calculaJuros.Calcular(); Assert.Equal(esperado, resultado); }
public IActionResult Get(double valorInicial, int meses) { try { var calculaJuros = new CalcularJuros(valorInicial, meses); decimal valorFinal = _calculaJurosService.CalculaJuros(calculaJuros); return(Ok(valorFinal.ToString("N2"))); } catch (Exception ex) { return(BadRequest($"Erro: {ex.Message}")); } }
public ActionResult <decimal> Getcalculajuros(decimal valorinicia, int meses) { try { var calcularJuros = new CalcularJuros(); calcularJuros.CalcularTaxaJuros(valorinicia, meses); var calcularJurosDto = _mapper.Map <CalcularJurosDto>(calcularJuros); return(StatusCode(StatusCodes.Status200OK, calcularJurosDto)); } catch (Exception) { return(StatusCode(StatusCodes.Status500InternalServerError, "Error ao tentat obter os dados")); } }
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()); }
public IActionResult CalcularJuros([FromQuery] CalcularJuros cmd) { return(OkResponse(cmd, _calcularJuros)); }