public void CalcularDivida_100EMesNegativo_Ok() { var interestParams = new DividaEntity { ValorInicial = 100, Meses = -1 }; var result = _mockDivida.Object.CalcularDivida(interestParams); }
public void CalcularDivida_SemParametros_Zero() { var parameters = new DividaEntity(); var resultado = interestController.Get(parameters); var actual = (resultado.Result as OkObjectResult).Value; var expected = "0,00"; Assert.Equal(expected, actual); }
public void CalcularDivida_ValorInicialNegativoE5_Ok() { var interestParams = new DividaEntity { ValorInicial = -100, Meses = 5 }; var result = _mockDivida.Object.CalcularDivida(interestParams); var expected = "-110,41"; Assert.AreEqual(expected, result); }
public void CalcularDivida_0E0_Ok() { var interestParams = new DividaEntity { ValorInicial = 0, Meses = 0 }; var result = _mockDivida.Object.CalcularDivida(interestParams); var expected = "0,00"; Assert.AreEqual(expected, result); }
public void CalcularDivida_ValorInicialNegativoE5_BadRequest() { var parameters = new DividaEntity { Meses = 5, ValorInicial = -100 }; var resultado = interestController.Get(parameters); var actual = (resultado.Result as OkObjectResult).Value; var expected = "-110,41"; Assert.Equal(expected, actual); }
public void CalcularDivida_100EMesNegativo_BadRequest() { var parameters = new DividaEntity { Meses = -5, ValorInicial = 100 }; var resultado = interestController.Get(parameters); var actual = (resultado.Result as BadRequestObjectResult).Value; var expected = "Mês não pode ser negativo"; Assert.Equal(expected, actual); }
/// <summary> /// Method that calculates memory, compound interest, according to a formula: Valor Final = Valor Inicial * (1 + juros) ^ Tempo /// </summary> /// <param name="valorInicial">It's a decimal</param> /// <param name="meses">It's a integer</param> /// <returns>Calculation result, in decimal format with two places</returns> public string CalcularDivida(DividaEntity interestParams) { try { if (interestParams.Meses < 0) { throw new ArgumentException("Mês não pode ser negativo"); } var apiResult = _juros.RetornarTaxaDeJuros(); var valorDivida = (double)(interestParams.ValorInicial * (decimal)Math.Pow(1 + apiResult, interestParams.Meses)); var valorFormatado = valorDivida.ToString("F"); return(valorFormatado); } catch (Exception e) { SimpleLog.Error("Message: " + e.Message + "; InnerException: " + e.InnerException); throw e; } }
public ActionResult <string> Get([FromQuery] DividaEntity parameters) { if (parameters.Meses < 0) { var msg = "Mês não pode ser negativo"; SimpleLog.Warning(msg); return(BadRequest(msg)); } try { var result = _idivida.CalcularDivida(parameters); return(Ok(result)); } catch (Exception e) { SimpleLog.Error("Message: " + e.Message + "; InnerException: " + e.InnerException); throw e; } }