public void On_Convert_Payroll_MultipleShift_FixesTips() { IPayrollConverterUtils payrollConverterUtils = new PayrollConverterUtils(logger); var employeeRepository = new EmployeeRepositoryService(logger); IPayrollConverter subject = new PayrollConverter(logger, payrollConverterUtils, employeeRepository); var data = new AlohaDataset(); var empRow = AlohaDataUtils.CreateEmpRow(data, 1, "123456789", "Test", "Employee", 123456789); var adjtimeRow = AlohaDataUtils.CreateAdjTimeRow(data, 1, "", DateTime.Today, DateTime.Today, DateTime.Today, 1, 12, 0, 14, 30, 0.5m, 10m, 10m); var adjtimeRow2 = AlohaDataUtils.CreateAdjTimeRow(data, 1, "", DateTime.Today, DateTime.Today, DateTime.Today, 1, 15, 0, 16, 30, 0.5m, 10m, 10m); var gndbroeakRow = AlohaDataUtils.CreateBreakRow(data, 1, "", DateTime.Today, DateTime.Today, DateTime.Today, 1, 12, 30, 13, 00, 0.5m); data.emp.AddempRow(empRow); data.adjtime.AddadjtimeRow(adjtimeRow); data.adjtime.AddadjtimeRow(adjtimeRow2); data.gndbreak.AddgndbreakRow(gndbroeakRow); var tipStrategy = TipCalculation.Auto; var result = subject.ConvertPayroll(data, tipStrategy); var resultTips = result[0].Transactions.Where(t => t.Type == TransactionType.PayCode).ToList(); resultTips.Count.Should().Be(2); resultTips[0].ClockIn.Hour.Should().Be(12); resultTips[0].ClockIn.Minute.Should().Be(0); resultTips[1].ClockIn.Hour.Should().Be(12); resultTips[1].ClockIn.Minute.Should().Be(5); }
public void On_GetBreaks_Get_TransactionEnumerable() { IPayrollConverterUtils subject = new PayrollConverterUtils(logger); var data = new AlohaDataset(); var gndbreakRow = AlohaDataUtils.CreateBreakRow(data, 1, "", DateTime.Today, DateTime.Today, DateTime.Today, 1, 12, 0, 12, 30, 0.5m); data.gndbreak.AddgndbreakRow(gndbreakRow); var ignoreList = new List <int> { 10 }; List <Transaction> result = subject.GetBreaks(data, ignoreList); result.Should().NotBeNull(); result.Should().NotBeEmpty(); result.Should().Contain(c => c.EmpId == 1); }
public void On_ConvertBreakRow_GetRightShift() { var data = new AlohaDataset(); var gndbroeakRow = AlohaDataUtils.CreateBreakRow(data, 1, "", DateTime.Today, DateTime.Today, DateTime.Today, 1, 12, 0, 12, 30, 0.5m); IPayrollConverterUtils subject = new PayrollConverterUtils(logger); var result = subject.ConvertBreakRow(gndbroeakRow); result.Type.Should().Be(TransactionType.ClockInOut); result.PeriodType.Should().Be(PeriodType.Break); result.PayCode.Should().Be(string.Empty); result.EmpId.Should().Be(gndbroeakRow.employee); result.SSN.Should().Be(gndbroeakRow.ssn); result.JobCode.Should().Be(gndbroeakRow.jobcode); result.ClockIn.Should().Be(DateTime.Today.AddHours(12)); result.ClockOut.Should().Be(DateTime.Today.AddHours(12).AddMinutes(30)); result.Hours.Should().BeApproximately(0.5m, 0.001m); }
public void On_GetBreaks_Gets_All_Transactions() { IPayrollConverterUtils subject = new PayrollConverterUtils(logger); var data = new AlohaDataset(); var gndbreakRow = AlohaDataUtils.CreateBreakRow(data, 1, "", DateTime.Today, DateTime.Today, DateTime.Today, 1, 12, 0, 12, 30, 0.5m); var gndbreakRow2 = AlohaDataUtils.CreateBreakRow(data, 2, "", DateTime.Today, DateTime.Today, DateTime.Today, 1, 1, 0, 1, 30, 0.5m); data.gndbreak.AddgndbreakRow(gndbreakRow); data.gndbreak.AddgndbreakRow(gndbreakRow2); var ignoreList = new List <int> { 10 }; var result = subject.GetBreaks(data, ignoreList); result.Count().Should().Be(data.gndbreak.Count()); result.Should().Contain(t => t.EmpId == 1); result.Should().Contain(t => t.EmpId == 2); }
public void On_Convert_Payroll_EmpFullData_ReturnsListWith_Transactions() { IPayrollConverterUtils payrollConverterUtils = new PayrollConverterUtils(logger); var employeeRepository = new EmployeeRepositoryService(logger); IPayrollConverter subject = new PayrollConverter(logger, payrollConverterUtils, employeeRepository); var data = new AlohaDataset(); var empRow = AlohaDataUtils.CreateEmpRow(data, 1, "123456789", "Test", "Employee", 123456789); var adjtimeRow = AlohaDataUtils.CreateAdjTimeRow(data, 1, "", DateTime.Today, DateTime.Today, DateTime.Today, 1, 12, 0, 14, 30, 0.5m, 10m, 10m); var gndbroeakRow = AlohaDataUtils.CreateBreakRow(data, 1, "", DateTime.Today, DateTime.Today, DateTime.Today, 1, 12, 30, 13, 00, 0.5m); data.emp.AddempRow(empRow); data.adjtime.AddadjtimeRow(adjtimeRow); data.gndbreak.AddgndbreakRow(gndbroeakRow); var tipStrategy = TipCalculation.Auto; var result = subject.ConvertPayroll(data, tipStrategy); result[0].Transactions.Count.Should().Be(3); result[0].Transactions.Should().Contain(t => t.Type == TransactionType.ClockInOut && t.PeriodType == PeriodType.Shift); result[0].Transactions.Should().Contain(t => t.Type == TransactionType.ClockInOut && t.PeriodType == PeriodType.Break); result[0].Transactions.Should().ContainSingle(t => t.Type == TransactionType.PayCode); }