public CalculaJurosDTO CalculaJuros(CalculaJurosParametro param) { CalculaJurosDTO calculo; try { TaxaJuros(); if (param.ValorInicial > 0 && param.Meses > 0) { decimal valorCalculado = Pow(param.ValorInicial * (1 + Convert.ToDecimal(taxaJuros.TaxaJuros)), (uint)param.Meses); calculo = new CalculaJurosDTO() { ValorFinal = Math.Truncate(100 * valorCalculado) / 100 }; } else { throw new Exception("Os parâmetros ValorInicial e Meses são obrigatórios!"); } return(calculo); } catch (Exception ex) { throw new Exception(ex.Message); } }
public async Task <decimal> CalculaJurosAsync(CalculaJurosDTO dto) { var taxa = await _aplicTaxaJuros.TaxaJurosAsync(); var juros = (double)dto.ValorInicial * Math.Pow(1 + (double)taxa, dto.Tempo); return(decimal.Truncate((decimal)juros * 100) / 100); }
public async void CalculaValorTotalComJurosDeveRetornar105_1() { var calculaJurosDTO = new CalculaJurosDTO() { ValorInicial = 100, Tempo = 5 }; var mockAplicCalculaJuros = new Mock <IAplicCalculaJuros>(); mockAplicCalculaJuros.Setup(p => p.CalculaJurosAsync(calculaJurosDTO)).ReturnsAsync(105.1m); var controller = new CalculaJurosController(mockAplicCalculaJuros.Object); var valorTotal = await controller.CalculaJurosAsync(calculaJurosDTO); Assert.Equal(105.1m, valorTotal); }
public void CalculaJuros() { CalculaJurosParametro taxaJuros = new CalculaJurosParametro() { ValorInicial = 100, Meses = 5 }; CalculaJurosDTO retorno = new CalculaJurosDTO() { ValorFinal = 10510100501 }; CalculaJurosServices objCalculaJuros = new CalculaJurosServices(); Assert.Equal(retorno.ValorFinal, objCalculaJuros.CalculaJuros(taxaJuros).ValorFinal); }
public async Task <IActionResult> CalculaJuros([FromQuery] CalculaJurosDTO calculaJurosDTO) { try { var valor = await _calculaJurosService.CalculaJuros(calculaJurosDTO); return(Ok(valor)); } catch (ValidationException ex) { _logger.LogError(ex, "ValidationException"); return(BadRequest(_validationErrorService.FormatError(ex))); } catch (Exception ex) { _logger.LogError(ex, "Exception"); return(Problem(ex.Message)); } }
public async void CalculaJuros__ShouldReturnCorrectValue() { //Arrange var parms = new CalculaJurosDTO { Meses = 5, ValorInicial = 100 }; _clientConnectionService.GetTaxaJuros().Returns(new TaxaJurosViewModel() { TaxaJuros = 0.01M }); //Act var result = await _sut.CalculaJuros(parms); //Assert Assert.Equal("105,10", result.Valor); }
public void GetTaxaJurosComMoq() { var calculo = new Mock <IServiceCalculaJuros>(MockBehavior.Strict); CalculaJurosParametro taxaJuros = new CalculaJurosParametro() { ValorInicial = 100, Meses = 5 }; CalculaJurosDTO retorno = new CalculaJurosDTO() { ValorFinal = 10510100501 }; calculo.Setup(w => w.CalculaJuros(taxaJuros)).Returns(() => retorno); Assert.Equal <CalculaJurosDTO>(retorno, calculo.Object.CalculaJuros(taxaJuros)); }
public async void CalculaJuros__ShouldReturnValidationException_WhenInitialValueIsNull() { //Arrange var parms = new CalculaJurosDTO { Meses = 5, ValorInicial = null }; //Act and Assert var result = await Assert.ThrowsAsync <ValidationException>(async() => await _sut.CalculaJuros(parms)); var details = result.Errors .Select(s => new Detail() { Code = s.ErrorCode, Message = $"{s.PropertyName} {s.ErrorMessage}", }); var total = details.Count(); Assert.Equal(1, total); Assert.Equal("NULL_INITIAL_VALUE", details.First().Code); }
public async Task <CalculaJurosViewModel> CalculaJuros(CalculaJurosDTO calculaJurosDTO) { try { new CalculaJurosValidator().ValidateAndThrow(calculaJurosDTO); var fee = await _clientConnectionService.GetTaxaJuros(); var rate = 1D + (double)fee.TaxaJuros; var value = (double)calculaJurosDTO.ValorInicial.Value * Math.Pow((rate), calculaJurosDTO.Meses.Value); return(new CalculaJurosViewModel { Valor = string.Format("{0:0.00}", (Math.Truncate(100 * value) / 100)) }); } catch (Exception ex) { throw ex; } }
public async Task <IActionResult> CalculaJuros([FromQuery] CalculaJurosDTO calculaJurosDTO) { return(Ok(await _calculoService.CalculaJuros(calculaJurosDTO.ValorInicial.Value, calculaJurosDTO.Meses.Value))); }
public async Task <decimal> CalculaJurosAsync(CalculaJurosDTO dto) { return(await _aplicCalculaJuros.CalculaJurosAsync(dto)); }