@Test public void should_not_update_assignment_when_there_is_data_after_the_end() { ProjectAssignment assignment = ProjectAssignmentObjectMother.createProjectAssignment(1); Date date = new Date(); assignment.setDateEnd(date); when(timesheetDao.getTimesheetEntriesAfter(assignment, date)).thenReturn(Lists.newArrayList(TimesheetEntryObjectMother.createTimesheetEntry(1, new Date(), 5f))); try { service.persistUpdatedProjectAssignment(assignment); fail(); } catch (ProjectAssignmentValidationException e) { List<ProjectAssignmentValidationException.Issue> issues = e.getIssues(); assertThat(issues, contains(ProjectAssignmentValidationException.Issue.EXISTING_DATA_AFTER_END)); } }
@Test public final void testGetAssignmentStatusDateIn() { ProjectAssignment assignment = ProjectAssignmentObjectMother.createProjectAssignment(1); ProjectAssignmentType type = new ProjectAssignmentType(); type.setAssignmentTypeId(EhourConstants.ASSIGNMENT_DATE); assignment.setAssignmentType(type); Calendar startCal = new GregorianCalendar(); startCal.add(Calendar.DAY_OF_YEAR, -5); Date startDate = startCal.getTime(); assignment.setDateStart(startDate); Calendar endCal = new GregorianCalendar(); endCal.add(Calendar.DAY_OF_YEAR, 2); Date endDate = endCal.getTime(); assignment.setDateEnd(endDate); when(timesheetDAO.getTimesheetEntriesBefore(assignment, startDate)) .thenReturn(new ArrayList<TimesheetEntry>()); when(timesheetDAO.getTimesheetEntriesAfter(assignment, endDate)) .thenReturn(new ArrayList<TimesheetEntry>()); ProjectAssignmentStatus status = util.getAssignmentStatus(assignment); assertTrue(status.getStatusses().contains(ProjectAssignmentStatus.Status.RUNNING)); assertEquals(1, status.getStatusses().size()); }
@Test public final void testGetAssignmentStatusDateOut() { ProjectAssignment assignment = ProjectAssignmentObjectMother.createProjectAssignment(1); ProjectAssignmentType type = new ProjectAssignmentType(); type.setAssignmentTypeId(EhourConstants.ASSIGNMENT_DATE); assignment.setAssignmentType(type); Calendar startCal = new GregorianCalendar(); startCal.add(Calendar.DAY_OF_YEAR, -5); assignment.setDateStart(startCal.getTime()); Date start = startCal.getTime(); Calendar endCal = new GregorianCalendar(); endCal.add(Calendar.DAY_OF_YEAR, -2); assignment.setDateEnd(endCal.getTime()); Date end = endCal.getTime(); when(timesheetDAO.getTimesheetEntriesBefore(assignment, start)) .thenReturn(new ArrayList<TimesheetEntry>()); List<TimesheetEntry> entry = new ArrayList<>(); entry.add(new TimesheetEntry()); when(timesheetDAO.getTimesheetEntriesAfter(assignment, end)) .thenReturn(entry); ProjectAssignmentStatus status = util.getAssignmentStatus(assignment); assertTrue(status.getStatusses().contains(ProjectAssignmentStatus.Status.AFTER_DEADLINE)); assertEquals(1, status.getStatusses().size()); }
@Test public void shouldPersist() { Calendar cal = new GregorianCalendar(); cal.add(Calendar.MONTH, 1); ProjectAssignment assignment = ProjectAssignmentObjectMother.createProjectAssignment(new User(5), new Project(1)); assignment.setDateStart(new Date()); assignment.setDateEnd(cal.getTime()); assignment.setAssignmentType(new ProjectAssignmentType(EhourConstants.ASSIGNMENT_DATE)); assignment.setAssignmentId(25); projectAssignmentDAO.persist(assignment); assertNotNull(assignment.getAssignmentId()); }
assignmentA.setDateStart(calA.getTime()); calA.add(Calendar.MONTH, 1); assignmentA.setDateEnd(calA.getTime()); assignmentA.setProject(projectA); assignments.add(assignmentA); calB = new GregorianCalendar(); calB.add(Calendar.MONTH, 1); assignmentB.setDateEnd(calB.getTime()); assignmentB.setProject(projectB); assignments.add(assignmentB);
@Test public void testGetProgressPercentageDate() { ProjectAssignment assignment = new ProjectAssignment(); assignment.setAssignmentType(new ProjectAssignmentType(EhourConstants.ASSIGNMENT_DATE)); LocalDate base = LocalDate.parse("2015-01-01"); DateTimeUtils.setCurrentMillisFixed(base.toDateTimeAtCurrentTime().getMillis()); assignment.setDateStart(base.minusDays(3).toDate()); assignment.setDateEnd(base.plusDays(3).toDate()); AssignmentAggregateReportElement ele = new AssignmentAggregateReportElement(); ele.setProjectAssignment(assignment); assertEquals(50, ele.getProgressPercentage().get(), 2f); }
private static ProjectAssignment createProjectAssignment(ProjectAssignment templateAssignment) { ProjectAssignment assignment = new ProjectAssignment(); assignment.setActive(templateAssignment.isActive()); assignment.setAllottedHours(templateAssignment.getAllottedHours()); assignment.setAllowedOverrun(templateAssignment.getAllowedOverrun()); assignment.setAssignmentType(templateAssignment.getAssignmentType()); assignment.setDateEnd(templateAssignment.getDateEnd()); assignment.setDateStart(templateAssignment.getDateStart()); assignment.setHourlyRate(templateAssignment.getHourlyRate()); assignment.setNotifyPm(templateAssignment.isNotifyPm()); assignment.setProject(templateAssignment.getProject()); assignment.setRole(templateAssignment.getRole()); assignment.setUser(templateAssignment.getUser()); return assignment; }