use of com.artezio.arttime.datamodel.Hours in project ART-TIME by Artezio.
the class EmployeeEffortsSpreadSheetTest method testCalculateKeysOfTotals.
@Test
public void testCalculateKeysOfTotals() throws NoSuchFieldException {
Date date = new Date(2017, 1, 1);
Employee employee = new Employee("test");
Project project = new Project();
HourType hourType = new HourType("test");
List<Hours> hours = Collections.singletonList(new Hours(project, date, employee, hourType));
List<Integer> expected = Collections.singletonList(employee.hashCode() + project.hashCode() + hourType.hashCode() + 1237);
List<HoursSpreadSheetRow> hoursSpreadSheetRows = Collections.singletonList(new HoursSpreadSheetRow(project, employee, hourType, hours));
TotalsSpreadSheetRow totalRow = new TotalsSpreadSheetRow(project, hourType, hoursSpreadSheetRows);
totalRow.setEmployee(employee);
List<SpreadSheetRow> spreadSheetRows = Arrays.asList(new HeadSpreadSheetRow(employee), new HoursSpreadSheetRow(project, employee, hourType, hours), totalRow);
spreadSheet = new EmployeeEffortsSpreadSheet(hoursRepository, projectRepository, hourTypeRepository, employeeRepository, projectService, workTimeService, filter);
setField(spreadSheet, "rows", spreadSheetRows);
SpreadSheetRow spreadSheetRow = new HoursSpreadSheetRow(project, employee, hourType, hours);
List<Integer> actual = spreadSheet.calculateKeysOfTotalsRows(spreadSheetRow);
ListAssert.assertEquals(expected, actual);
}
use of com.artezio.arttime.datamodel.Hours in project ART-TIME by Artezio.
the class EmployeeEffortsSpreadSheetTest method testBuildSpreadSheetRows.
@Test
public void testBuildSpreadSheetRows() throws ParseException, NoSuchFieldException {
Employee employee1 = filter.getEmployees().get(0);
Employee employee2 = filter.getEmployees().get(1);
Project project1 = filter.getProjects().get(0);
Project project2 = filter.getProjects().get(1);
HourType hourType1 = filter.getHourTypes().get(0);
HourType hourType2 = filter.getHourTypes().get(1);
spreadSheet = new EmployeeEffortsSpreadSheet(hoursRepository, projectRepository, hourTypeRepository, employeeRepository, projectService, workTimeService, filter);
setField(spreadSheet, "rows", new LinkedList<SpreadSheetRow>());
List<Hours> hours = getHours();
expect(hoursRepository.getHours(filter)).andReturn(hours);
Map<Project, List<Project>> subprojects = new HashMap<>();
expect(projectRepository.getSubprojectsMap(EasyMock.anyObject(List.class))).andReturn(subprojects).anyTimes();
expect(workTimeService.getEmployees(filter)).andReturn(Arrays.asList(employee1, employee2));
replay(hoursRepository, projectRepository, workTimeService);
List<SpreadSheetRow<?>> actual = spreadSheet.buildSpreadSheetRows(employee1);
verify(hoursRepository, projectRepository);
SpreadSheetRow<?> expected1 = new HeadSpreadSheetRow(employee1);
SpreadSheetRow<?> expected2 = createSpreadSheetRow(project1, employee1, hourType1, findHours(hours, project1, employee1, hourType1));
SpreadSheetRow<?> expected3 = createSpreadSheetRow(project1, employee1, hourType2, findHours(hours, project1, employee1, hourType2));
SpreadSheetRow<?> expected4 = createSpreadSheetRow(project2, employee1, hourType1, findHours(hours, project2, employee1, hourType1));
SpreadSheetRow<?> expected5 = createTotalsSpreadSheetRow(employee1, hourType1, Arrays.asList((HoursSpreadSheetRow) expected2, (HoursSpreadSheetRow) expected4));
SpreadSheetRow<?> expected6 = createTotalsSpreadSheetRow(employee1, hourType2, Arrays.asList((HoursSpreadSheetRow) expected3));
SpreadSheetRow<?> expected7 = new HeadSpreadSheetRow(employee2);
SpreadSheetRow<?> expected8 = createSpreadSheetRow(project2, employee2, hourType1, findHours(hours, project2, employee2, hourType1));
SpreadSheetRow<?> expected9 = createTotalsSpreadSheetRow(employee2, hourType1, Arrays.asList((HoursSpreadSheetRow) expected8));
assertEquals(9, actual.size());
assertEquals(expected1, actual.get(0));
assertEquals(expected2, actual.get(1));
assertEquals(expected3, actual.get(2));
assertEquals(expected4, actual.get(3));
assertEquals(expected5, actual.get(4));
assertEquals(expected6, actual.get(5));
assertEquals(expected7, actual.get(6));
assertEquals(expected8, actual.get(7));
assertEquals(expected9, actual.get(8));
}
use of com.artezio.arttime.datamodel.Hours in project ART-TIME by Artezio.
the class HoursIndexedBundleTest method testFindHours_ByProjectAndEmployee_NoHours.
@Test
public void testFindHours_ByProjectAndEmployee_NoHours() {
Project project1 = createProject(1L);
Project project2 = createProject(2L);
Employee employee1 = new Employee("employee1");
Employee employee2 = new Employee("employee2");
Employee employee3 = new Employee("employee3");
HourType type1 = new HourType("regular");
Hours hours1 = createHours(project1, employee1, type1);
Hours hours2 = createHours(project1, employee2, type1);
bundle = new HoursIndexedBundle(Arrays.asList(hours1, hours2));
assertTrue(bundle.findHours(project2, employee1).isEmpty());
assertTrue(bundle.findHours(project1, employee3).isEmpty());
}
use of com.artezio.arttime.datamodel.Hours in project ART-TIME by Artezio.
the class HoursIndexedBundleTest method testContainsHours_ByEmployee_ifNotContains.
@Test
public void testContainsHours_ByEmployee_ifNotContains() {
Project project = createProject(1L);
Employee employee1 = new Employee("employee1");
Employee employee2 = new Employee("employee2");
HourType hourType = new HourType();
Hours hour = new Hours(project, new Date(), employee1, hourType);
List<Hours> hours = Arrays.asList(hour);
bundle = new HoursIndexedBundle(hours);
boolean actual = bundle.containsHours(employee2);
assertFalse(actual);
}
use of com.artezio.arttime.datamodel.Hours in project ART-TIME by Artezio.
the class HoursIndexedBundleTest method testFindHours_ByProjectAndEmployee.
@Test
public void testFindHours_ByProjectAndEmployee() {
Project project1 = createProject(1L);
Project project2 = createProject(2L);
Employee employee1 = new Employee("employee1");
Employee employee2 = new Employee("employee2");
HourType type1 = new HourType("regular");
HourType type2 = new HourType("overtime");
Hours hours1 = createHours(project1, employee1, type1);
Hours hours2 = createHours(project2, employee1, type2);
Hours hours3 = createHours(project1, employee2, type1);
bundle = new HoursIndexedBundle(Arrays.asList(hours1, hours2, hours3));
List<Hours> actual = bundle.findHours(project1, employee1);
ListAssert.assertEquals(Arrays.asList(hours1), actual);
}
Aggregations