public void GetTax_invalid_percent_return_0(decimal percent, decimal expected) { var rule = new SocialContributionsRule(percent, 0, 0); var res = rule.GetTax(1); Assert.Equal(expected, res); }
public void GetTax_correct_values(decimal minApplyAmount, decimal maxApplyAmount, decimal percent, decimal salary, decimal expected) { var rule = new SocialContributionsRule(percent, minApplyAmount, maxApplyAmount); var res = rule.GetTax(salary); Assert.Equal(expected, res); }
public void CalculateTaxes_social_contribution_correct_values(decimal minApplyAmount, decimal maxApplyAmount, decimal percent, decimal salary, decimal expected) { var rule = new SocialContributionsRule(percent, minApplyAmount, maxApplyAmount); var calc = new Calculator(new List <ITaxRule> { rule }); var res = calc.ApplyTaxes(salary); Assert.Equal(expected, res); }
public void CalculateTaxes_invalid_salary_must_return_0() { var rule1 = new IncomeTaxRule(10, 0); var rule2 = new SocialContributionsRule(15, 0, 0); var calc = new Calculator(new List <ITaxRule> { rule1, rule2 }); var res = calc.ApplyTaxes(0); Assert.Equal(0, res); }
private static Calculator GetCalculator(AppSettings settings) { var incomeTax = new IncomeTaxRule( settings.IncomeTax.Percent, settings.IncomeTax.MinApplyAmount ); var socialContributions = new SocialContributionsRule( settings.SocialContributions.Percent, settings.SocialContributions.MinApplyAmount, settings.SocialContributions.MaxApplyAmount ); return(new Calculator(new List <ITaxRule> { incomeTax, socialContributions })); }
public void GetTax_invalid_percent_must_throw(decimal salary) { var rule = new SocialContributionsRule(0, 0, 0); Assert.Throws <ArgumentOutOfRangeException>(() => rule.GetTax(salary)); }