public void Give_Pay_to_a_list_of_employees_works() { var fixedCalc = new FixedPayCalculator(); fixedCalc.MonthlySalary = 1500; var hourlyCalc = new HourlyPayCalculator(); hourlyCalc.HourlySalary = 20; hourlyCalc.AddWorkedHours(new DateTime(2018, 1, 15), 8); hourlyCalc.AddWorkedHours(new DateTime(2018, 1, 16), 9); var commissionCalc = new CommissionPayCalculator(); commissionCalc.CommissionPercentage = (decimal)0.02; commissionCalc.AddCommission(new DateTime(2018, 1, 20), 10000); commissionCalc.AddCommission(new DateTime(2018, 1, 29), 20000); var noFamilyCalc = new NoFamilyBonusCalculator(); var bigFamilyCalc = new BigFamilyBonusCalculator(); var list = new List <Employee> { new Employee { PayCalculator = fixedCalc, BonusCalculator = noFamilyCalc }, new Employee { PayCalculator = hourlyCalc, BonusCalculator = noFamilyCalc }, new Employee { PayCalculator = commissionCalc, BonusCalculator = bigFamilyCalc }, }; foreach (var e in list) { e.AddSalary(2018, 1); } list[1].PayCalculator = fixedCalc; list[2].PayCalculator = fixedCalc; foreach (var e in list) { e.AddSalary(2018, 2); } }
public void Commission_CalculatePay() { var c = new CommissionPayCalculator(); c.CommissionPercentage = (decimal)0.02; Assert.AreEqual(0, c.CalculatePay(2018, 1)); c.AddCommission(new DateTime(2018, 1, 2), 40000); c.AddCommission(new DateTime(2018, 1, 15), 5000); Assert.AreEqual(900, c.CalculatePay(2018, 1)); c.AddCommission(new DateTime(2018, 2, 15), 10000); Assert.AreEqual(900, c.CalculatePay(2018, 1)); c.AddCommission(new DateTime(2018, 1, 15), 10000); Assert.AreEqual(1100, c.CalculatePay(2018, 1)); }
private List <Employee> createEmployees() { var fixedCalc = new FixedPayCalculator(); fixedCalc.MonthlySalary = 1500; var hourlyCalc = new HourlyPayCalculator(); hourlyCalc.HourlySalary = 20; hourlyCalc.AddWorkedHours(new DateTime(2018, 1, 15), 8); hourlyCalc.AddWorkedHours(new DateTime(2018, 1, 16), 9); var commissionCalc = new CommissionPayCalculator(); commissionCalc.CommissionPercentage = (decimal)0.02; commissionCalc.AddCommission(new DateTime(2018, 1, 20), 10000); commissionCalc.AddCommission(new DateTime(2018, 1, 29), 20000); var list = new List <Employee> { new Employee { Name = "Mario Rossi", PayCalculator = fixedCalc, BonusCalculator = new BigFamilyBonusCalculator() }, new Employee { Name = "Tonio Cartonio", PayCalculator = hourlyCalc, BonusCalculator = new LittleFamilyBonusCalculator() }, new Employee { Name = "Gigi Pirola", PayCalculator = commissionCalc, BonusCalculator = new NoFamilyBonusCalculator() }, }; return(list); }