public void Setup() { _employeeRepository = new Mock <IEmployeeRepository>(); var hourlyEmp = new HourlyEmployee(); hourlyEmp.Id = 1; hourlyEmp.Name = "Juan"; hourlyEmp.ContractTypeName = "HourlySalaryEmployee"; hourlyEmp.RoleId = 1; hourlyEmp.RoleName = "Administrator"; hourlyEmp.RoleDescription = ""; hourlyEmp.HourlySalary = 60000; hourlyEmp.MonthlySalary = 80000; var monthlyEmp = new MonthlyEmployee(); monthlyEmp.Id = 2; monthlyEmp.Name = "Sebastian"; monthlyEmp.ContractTypeName = "MonthlySalaryEmployee"; monthlyEmp.RoleId = 2; monthlyEmp.RoleName = "Contractor"; monthlyEmp.RoleDescription = ""; monthlyEmp.HourlySalary = 60000; monthlyEmp.MonthlySalary = 80000; var employees = new List <IEmployee>(); employees.Add(hourlyEmp); employees.Add(monthlyEmp); _employeeRepository.Setup(er => er.GetEmployees()).Returns(Task.FromResult(employees)); _employeeService = new EmployeeService(_employeeRepository.Object); }
public void AnnualSalaryCalculated_WhenTheEmployeeHasMonthlyContract() { //formula to calculate annual salary to MonthlyEmployee MonthlySalary * 12 //Arrange const long annualSalaryExpected = 960000; var monthlyEmployee = new MonthlyEmployee { Id = 1, Name = "Juan", MonthlySalary = 80000, RoleId = 1, RoleName = "Administrator" }; //Assert monthlyEmployee.AnnualSalary.Should().Be(annualSalaryExpected); }
/// <summary> /// Creates a MonthlyEmployee calculating annual salary as: /// MonthtlySalary * 12 /// </summary> /// <param name="data">Basic employee information</param> /// <returns>Converted user with annual salary</returns> public override HubEmployee Create(BasicEmployee data) { var role = new HubRole { Id = data.RoleId, Name = data.Name, Description = data.RoleDescription }; var employee = new MonthlyEmployee { Id = data.Id, Name = data.Name, MonthlySalary = data.MonthlySalary, AnnualSalary = data.MonthlySalary * MonthsInYear, Role = role }; return(employee); }
public static Employee GetEmployee(EmployeeProfile input) { if (input == null) { throw new Exception("Null employee profile"); } if (string.IsNullOrEmpty(input.ContractTypeName)) { throw new Exception("Contract type isn't defined"); } Employee output; switch (input.ContractTypeName.ToLower()) { case "hourlysalaryemployee": output = new HourlyEmployee(); break; case "monthlysalaryemployee": output = new MonthlyEmployee(); break; default: throw new Exception("Invalid contract type"); } output.ContractTypeName = input.ContractTypeName; output.HourlySalary = input.HourlySalary; output.MonthlySalary = input.MonthlySalary; output.Name = input.Name; output.RoleDescription = input.RoleDescription; output.RoleId = input.RoleId; output.RoleName = input.RoleName; output.Id = input.Id; return(output); }