public string CalculateCompoundInterestStringValue(string initialValue, double interestRate, int months) { var validateInterestRate = CheckIfInterestRateHasNegativeValue(interestRate); if (!string.IsNullOrEmpty(validateInterestRate)) { return(validateInterestRate); } var validateParameters = new ValidateStringParameter(); var validationStringParameterResult = validateParameters.Validate(initialValue, months); if (!string.IsNullOrEmpty(validationStringParameterResult)) { return(validationStringParameterResult); } var validDecimalParameter = validateParameters.ValidateDecimal(initialValue); if (!string.IsNullOrEmpty(validDecimalParameter)) { return(validDecimalParameter); } initialValue = initialValue.Replace(".", ","); var initialValueUsed = decimal.Parse(initialValue, CultureInfo.GetCultureInfo("pt-BR")); return((Math.Truncate(100 * (initialValueUsed * (decimal)Math.Pow((1 + interestRate), (double)months))) / 100).ToString("#0.00"));; }
public void ValidateStringParameters_ShoulReturnErroWhenInitialValueIsNotNumber(string initialValue) { ValidateStringParameter validateStringParameters = new ValidateStringParameter(); var result = validateStringParameters.ValidateDecimal(initialValue); Assert.Equal("[ERRO] O Valor inicial informado está em formato inválido.", result); }
public void ValidateStringParameters_ShoulReturnErroWhenInitialValueHasMoreThanOneDot(string initialValue) { ValidateStringParameter validateStringParameters = new ValidateStringParameter(); int months = 1; var result = validateStringParameters.Validate(initialValue, months); Assert.Equal("[ERRO] O Valor inicial informado está em formato inválido.", result); }
public void ValidateStringParameters_ShoulReturnErroWhenInitialValueAndMonthsAreValid(string initialValue) { ValidateStringParameter validateStringParameters = new ValidateStringParameter(); int months = 1; var result = validateStringParameters.Validate(initialValue, months); Assert.Equal(string.Empty, result); }
public void ValidateStringParameters_ShoulNotReturnErroWhenInitialValueIsValidDecimal() { ValidateStringParameter validateStringParameters = new ValidateStringParameter(); string initialValue = "0.01"; var result = validateStringParameters.ValidateDecimal(initialValue); Assert.Equal(string.Empty, result); }
public void ValidateStringParameters_ShoulReturnErroWhenInitialValueIsZero() { ValidateStringParameter validateStringParameters = new ValidateStringParameter(); string initialValue = "0.00"; var result = validateStringParameters.ValidateDecimal(initialValue); Assert.Equal("[ERRO] O Valor inicial informado deve ser um número decimal maior que zero (0).", result); }
public void ValidateStringParameters_ShoulReturnErroWhenMonthsIsZero(string initialValue) { ValidateStringParameter validateStringParameters = new ValidateStringParameter(); int months = 0; var result = validateStringParameters.Validate(initialValue, months); Assert.Equal("[ERRO] O Valor informado no parâmetro 'meses' deve ser um número inteiro maior que zero (0).", result); }