Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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
            }));
        }
Ejemplo n.º 6
0
        public void GetTax_invalid_percent_must_throw(decimal salary)
        {
            var rule = new SocialContributionsRule(0, 0, 0);

            Assert.Throws <ArgumentOutOfRangeException>(() => rule.GetTax(salary));
        }