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); }
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); }
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); }
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); }