public void Fixed_CalculatePay() { var c = new FixedPayCalculator(); c.MonthlySalary = 1500; var pay = c.CalculatePay(2018, 1); Assert.AreEqual(1500, pay); }
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 Employee_AddSalary_cumulates_salaries() { var c = new FixedPayCalculator(); c.MonthlySalary = 1000; var e = new Employee(); e.PayCalculator = c; Assert.AreEqual(0, e.TotalPay); e.AddSalary(2018, 1); Assert.AreEqual(1000, e.TotalPay); e.AddSalary(2018, 2); e.AddSalary(2018, 3); Assert.AreEqual(3000, e.TotalPay); }
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); }