public void ExecuteStrategyAndReturnSalaryObject([Values(1000, 5000)] decimal grossSalary)
        {
            _coreSalaryStrategy.GrossSalary = grossSalary;
            ISalary salary = new bc.Salary();

            salary.GrossSalary   = grossSalary;
            salary.TaxableIncome = grossSalary;


            decimal deductionsAmount = (decimal)600;
            var     deductionsList   = new List <Tuple <string, decimal> >()
            {
                Tuple.Create <string, decimal>("a", (decimal)100),
                Tuple.Create <string, decimal>("b", (decimal)200),
                Tuple.Create <string, decimal>("c", (decimal)300)
            };

            _deductionsMock.Setup(d => d.GetDeductionsReport()).Returns(deductionsList);
            _deductionsMock.Setup(d => d.GetTotalDeductionsAmount(It.IsAny <decimal>())).Returns(deductionsAmount);

            salary.Deductions      = deductionsList;
            salary.NetAnnualSalary = (salary.TaxableIncome - deductionsAmount);
            ISalary calculatedSalary = _coreSalaryStrategy.Execute();

            Assert.AreEqual(salary.GrossSalary, calculatedSalary.GrossSalary);
            Assert.AreEqual(salary.TaxableIncome, calculatedSalary.TaxableIncome);
            Assert.AreEqual(salary.NetAnnualSalary, calculatedSalary.NetAnnualSalary);
            Assert.AreEqual(salary.Deductions, calculatedSalary.Deductions);
        }
示例#2
0
 private ISalary BuildSalaryReport(decimal taxableIncome, decimal netAnnualSalary)
 {
     cbc.Salary salary = new cbc.Salary();
     salary.GrossSalary     = GrossSalary;
     salary.TaxableIncome   = taxableIncome;
     salary.NetAnnualSalary = netAnnualSalary;
     salary.Deductions      = _deductions.GetDeductionsReport();
     return(salary);
 }
示例#3
0
        public void SetEmployeeSalaryPropertyAfterSalaryCalculation()
        {
            ISalary salaryObj = new sbc.Salary();

            _salaryStrategyMock.Setup(f => f.Execute()).Returns(salaryObj);
            _employee.Init("Adir", "Australia", "200000");
            _employee.CalculateNetSalary();
            Assert.AreEqual(_employee.EmployeeSalary, salaryObj);
        }
        private ISalary BuildSalaryReport(decimal superannuation, decimal taxableIncome, decimal netAnnualSalary)
        {
            cbc.Salary salary = new cbc.Salary();
            salary.GrossSalary     = GrossSalary;
            salary.TaxableIncome   = taxableIncome;
            salary.NetAnnualSalary = netAnnualSalary;
            salary.Deductions      = _deductions.GetDeductionsReport();

            // Adding Superannuation to the report, since the requierments states that the deductions report
            // should contain the super entry, but the code is using the deduction report to calculate the amount
            // needed for net annual - adding the super after the report was used.
            salary.Deductions.Insert(0, Tuple.Create <string, decimal>("Superannuation", superannuation));
            return(salary);
        }
示例#5
0
        public void CotainInitializedData([Values(1000, 0, -1000)] decimal grossSalary,
                                          [Values(1000, 0, -1000)] decimal taxableIncome,
                                          [Values(1000, 0, -1000)] decimal netAnuualSalary)
        {
            cbc.Salary salary = new cbc.Salary();
            salary.GrossSalary     = grossSalary;
            salary.TaxableIncome   = taxableIncome;
            salary.NetAnnualSalary = netAnuualSalary;

            var deductionsList = new List <Tuple <string, decimal> >()
            {
                Tuple.Create <string, decimal>("a", (decimal)100),
                Tuple.Create <string, decimal>("b", (decimal)200),
                Tuple.Create <string, decimal>("c", (decimal)300)
            };

            salary.Deductions = deductionsList;
            Assert.AreEqual(salary.GrossSalary, grossSalary);
            Assert.AreEqual(salary.TaxableIncome, taxableIncome);
            Assert.AreEqual(salary.NetAnnualSalary, netAnuualSalary);
            Assert.AreEqual(salary.Deductions, deductionsList);
        }