static void Main(string[] args) { do { double totalHoursWorked = GetTotalHoursWorked(); double hourlyRate = GetHourlyRate(); string location = GetLocation(); var calculatorType = GetCalculatorType(location); var calculator = new EmployeeSalaryCalculator(calculatorType); var employee = new Employee { HoursWorked = totalHoursWorked, HourlyRate = hourlyRate, Location = location }; employee.Salary = calculator.CalculateSalary(employee); PrintResults(employee); Console.WriteLine("Do you want to continue? (y/n)"); } while (Console.ReadLine() != "n"); }
public void SocialSecurityShouldBeProperlyDeductedForItalyEmployees() { var employee = new Employee { HourlyRate = 1, HoursWorked = 1, Location = "italy" }; var salaryCalculator = new EmployeeSalaryCalculator(new ItalaySalaryCalculator()); var salary = salaryCalculator.CalculateSalary(employee); Assert.AreEqual(salary.Deduction.SocialSecurityContribution, 0.0919); }
public void IncomeTaxShouldBeProperlyDeductedForItalyEmployees() { var employee = new Employee { HourlyRate = 1, HoursWorked = 1, Location = "italy" }; var salaryCalculator = new EmployeeSalaryCalculator(new ItalaySalaryCalculator()); var salary = salaryCalculator.CalculateSalary(employee); Assert.AreEqual(salary.Deduction.IncomeTax, 0.25); }
public void CompulsoryPensionShouldBeProperlyDeductedForIrelandEmployees() { var employee = new Employee { HourlyRate = 1, HoursWorked = 1, Location = "ireland" }; var salaryCalculator = new EmployeeSalaryCalculator(new IrelandSalaryCalculator()); var salary = salaryCalculator.CalculateSalary(employee); Assert.AreEqual(salary.Deduction.Pension, 0.04); }
public void UniversalChargeShouldBeProperlyDeductedForIrelandEmployeesWhenSalaryIsMore() { var employee = new Employee { HourlyRate = 100, HoursWorked = 10, Location = "ireland" }; var salaryCalculator = new EmployeeSalaryCalculator(new IrelandSalaryCalculator()); var salary = salaryCalculator.CalculateSalary(employee); Assert.AreEqual(salary.Deduction.UniversalSocialCharge, 75); }
public void PensionShouldBeProperlyDeductedForGermanyEmployees() { var employee = new Employee { HourlyRate = 1, HoursWorked = 1, Location = "germany" }; var salaryCalculator = new EmployeeSalaryCalculator(new GermanySalaryCalculator()); var salary = salaryCalculator.CalculateSalary(employee); Assert.AreEqual(salary.Deduction.Pension, 0.02); }
public void IncomeTaxShouldBeProperlyDeductedForGermanyEmployeesIfSalaryIsMore() { var employee = new Employee { HourlyRate = 100, HoursWorked = 10, Location = "germany" }; var salaryCalculator = new EmployeeSalaryCalculator(new GermanySalaryCalculator()); var salary = salaryCalculator.CalculateSalary(employee); Assert.AreEqual(salary.Deduction.IncomeTax, 292); }
public void SalaryShouldBeProperlyCalculatedForIrelandEmployees() { var employee = new Employee { HourlyRate = 10, HoursWorked = 1, Location = "ireland" }; var salaryCalculator = new EmployeeSalaryCalculator(new IrelandSalaryCalculator()); var salary = salaryCalculator.CalculateSalary(employee); Assert.AreEqual(salary.GrossSalary, 10); }