Ejemplo n.º 1
0
        public void EmployeeOnlyWithNoName()
        {
            var emp     = new EmployeeFactory().CreateEmployee(52000, 26);
            var benCalc = new BenefitCalculatorService(new NameDiscountPolicy());

            var results = benCalc.Calculate(emp);

            Assert.AreEqual(results.BaseAnnualCost, 1000);
            Assert.AreEqual(results.DiscountApplied, false);
            Assert.AreEqual(results.DiscountedAnnualCost, 1000);
        }
Ejemplo n.º 2
0
        public void EmployeeWithDependentsWithDiscount()
        {
            var emp = new EmployeeFactory().CreateEmployee(52000, 26);

            emp.FirstName = "John";
            emp.Dependents.Add(new DependentFactory().CreateDependent("Aaron", "Doe"));

            var benCalc = new BenefitCalculatorService(new NameDiscountPolicy());
            var results = benCalc.Calculate(emp);

            Assert.AreEqual(results.BaseAnnualCost, 1500);
            Assert.AreEqual(results.DiscountApplied, true);
            Assert.AreEqual(results.DiscountedAnnualCost, 1450);
        }
Ejemplo n.º 3
0
        public void EmployeeOnlyWithDiscount()
        {
            var emp = new EmployeeFactory().CreateEmployee(52000, 26);

            emp.FirstName = "Aaron";

            var b = new BenefitCalculatorService(new NameDiscountPolicy());
            var p = new PaycheckCalculatorService(b);

            p.Calculate(emp);

            Assert.AreEqual(emp.PayCheck.GrossAmount, 2000);
            Assert.AreEqual(emp.PayCheck.NetAmount, 1965.38M);
            Assert.AreEqual(emp.PayCheck.Deductions.Count, 1);
            Assert.AreEqual(emp.PayCheck.Deductions["Benefits"], 34.62M);
        }
Ejemplo n.º 4
0
        public void EmployeeWithDependentWithDiscount()
        {
            var emp = new EmployeeFactory().CreateEmployee(52000, 26);

            emp.FirstName = "Aaron";

            emp.Dependents.Add(new DependentFactory().CreateDependent("Allison", "Smith"));

            var b = new BenefitCalculatorService(new NameDiscountPolicy());
            var p = new PaycheckCalculatorService(b);

            p.Calculate(emp);

            Assert.AreEqual(emp.PayCheck.GrossAmount, 2000);
            Assert.AreEqual(emp.PayCheck.NetAmount, 1948.08M);
            Assert.AreEqual(emp.PayCheck.Deductions.Count, 1);
            Assert.AreEqual(emp.PayCheck.Deductions["Benefits"], 51.92M);
        }