Search in sources :

Example 1 with Hours

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);
}
Also used : HourType(com.artezio.arttime.datamodel.HourType) Hours(com.artezio.arttime.datamodel.Hours) Project(com.artezio.arttime.datamodel.Project) Employee(com.artezio.arttime.datamodel.Employee) Test(org.junit.Test)

Example 2 with Hours

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));
}
Also used : HourType(com.artezio.arttime.datamodel.HourType) Hours(com.artezio.arttime.datamodel.Hours) Project(com.artezio.arttime.datamodel.Project) Employee(com.artezio.arttime.datamodel.Employee) Test(org.junit.Test)

Example 3 with Hours

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());
}
Also used : Project(com.artezio.arttime.datamodel.Project) Employee(com.artezio.arttime.datamodel.Employee) HourType(com.artezio.arttime.datamodel.HourType) Hours(com.artezio.arttime.datamodel.Hours) Test(org.junit.Test)

Example 4 with Hours

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);
}
Also used : Project(com.artezio.arttime.datamodel.Project) Employee(com.artezio.arttime.datamodel.Employee) HourType(com.artezio.arttime.datamodel.HourType) Hours(com.artezio.arttime.datamodel.Hours) Date(java.util.Date) Test(org.junit.Test)

Example 5 with Hours

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);
}
Also used : Project(com.artezio.arttime.datamodel.Project) Employee(com.artezio.arttime.datamodel.Employee) HourType(com.artezio.arttime.datamodel.HourType) Hours(com.artezio.arttime.datamodel.Hours) Test(org.junit.Test)

Aggregations

Hours (com.artezio.arttime.datamodel.Hours)76 Test (org.junit.Test)70 Project (com.artezio.arttime.datamodel.Project)67 HourType (com.artezio.arttime.datamodel.HourType)65 Employee (com.artezio.arttime.datamodel.Employee)63 Date (java.util.Date)33 CalendarUtils.getOffsetDate (com.artezio.arttime.test.utils.CalendarUtils.getOffsetDate)22 BigDecimal (java.math.BigDecimal)22 Period (com.artezio.arttime.datamodel.Period)16 CalendarUtils.createPeriod (com.artezio.arttime.test.utils.CalendarUtils.createPeriod)15 Filter (com.artezio.arttime.filter.Filter)5 RangePeriodSelector (com.artezio.arttime.web.criteria.RangePeriodSelector)5 ArrayList (java.util.ArrayList)5 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)4 Arrays.asList (java.util.Arrays.asList)3 SimpleDateFormat (java.text.SimpleDateFormat)2 List (java.util.List)2 WorkdaysCalendar (com.artezio.arttime.datamodel.WorkdaysCalendar)1 ProjectService (com.artezio.arttime.services.ProjectService)1 WorkTimeService (com.artezio.arttime.services.WorkTimeService)1