public static Project createProject(Integer id, Customer customer) { Project project = new Project(id); project.setActive(true); project.setProjectCode("aa" + id); project.setName("aa" + id); project.setCustomer(customer); customer.addProject(project); return project; } }
@Override public int compare(Project o1, Project o2) { return new CompareToBuilder() .append(o1.getCustomer(), o2.getCustomer()) .append(o1.getName(), o2.getName()) .append(o1.getProjectCode(), o2.getProjectCode()) .append(o1.getProjectId(), o2.getProjectId()).toComparison(); } });
/** * @see java.lang.Object#toString() */ public String toString() { return new ToStringBuilder(this).append("active", this.active) .append("PK", this.getPK()) .append("defaultProject", this.defaultProject) .append("fullname", this.getFullName()) .append("projectCode", this.getProjectCode()) .append("name", this.getName()) .append("projectId", this.getProjectId()) .append("billable", this.isBillable()) .append("pm", this.getProjectManager()) .toString(); }
private void assignUsersToDefaultProject(Project project) { if (project.isDefaultProject() && project.isActive()) { projectAssignmentManagementService.assignAllUsersToProject(project); } }
/** * @see java.lang.Comparable#compareTo(Object) */ public int compareTo(ProjectAssignment object) { return new CompareToBuilder() //sort by column order as displayed in ProjectOverviewPanel .append(this.getProject().getCustomer().getName(), object.getProject().getCustomer().getName()) .append(this.getProject().getProjectCode(), object.getProject().getProjectCode()) .append(this.getProject().getName(), object.getProject().getName()) //here we should already have a sort. Anyway let's continue with some default comparison .append(this.getProject(), object.getProject()) .append(this.getDateEnd(), object.getDateEnd()) .append(this.getDateStart(), object.getDateStart()) .append(this.getUser(), object.getUser()) .append(this.getAssignmentId(), object.getAssignmentId()) .toComparison(); }
@Test public void should_create_pm_detailed_report() { Project project = new Project(1); project.setProjectCode("PRJ"); DateRange dr = new DateRange(new Date(), new Date()); when(reportAggregatedDao.getMinMaxDateTimesheetEntry(project)).thenReturn(dr); List<AssignmentAggregateReportElement> elms = new ArrayList<>(); for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { elms.add(AssignmentAggregateReportElementMother.createProjectAssignmentAggregate(j, i, i)); } } when(reportAggregatedDao.getCumulatedHoursPerAssignmentForProjects(any(List.class), any(DateRange.class))) .thenReturn(elms); List<ProjectAssignment> assignments = new ArrayList<>(); assignments.add(ProjectAssignmentObjectMother.createProjectAssignment(2)); when(assignmentService.getProjectAssignments(project, dr)).thenReturn(assignments); ProjectManagerReport report = aggregateReportService.getProjectManagerDetailedReport(project); assertEquals(new Integer(1), report.getProject().getPK()); assertEquals(16, report.getAggregates().size()); }
@Test public void testGetPKsFromDomainObjects() { List<Project> projectIds = new ArrayList<>(); projectIds.add(new Project(1)); projectIds.add(new Project(2)); projectIds.add(new Project(3)); projectIds.add(new Project(4)); List<Integer> ints = DomainUtil.getIdsFromDomainObjects(projectIds); assertEquals(4, ints.size()); } }
@Override @Transactional public void validatePMRoles(Project project) { userService.validateProjectManagementRoles(project.getProjectManager() == null ? null : project.getProjectManager().getUserId()); }
@Test public void should_process_one_to_many_column() throws InstantiationException, IllegalAccessException { FieldMap fieldDefinitionMap = FieldMapFactory.buildFieldMapForEntity(Project.class); FieldDefinition fieldDef = fieldDefinitionMap.get("customer_id"); Customer customer = CustomerObjectMother.createCustomer(); Project project = ProjectObjectMother.createProject(1); project.setCustomer(null); Map<Class<?>, Object> embeddables = Maps.newHashMap(); fieldDef.process(project, embeddables, customer); assertEquals(customer, project.getCustomer()); }
@PostConstruct @Transactional(propagation = Propagation.REQUIRES_NEW) public void init() { LOGGER.info("Finding and fixing users who are PM but don't have PM role (EHO-381)"); List<Project> projectsWithPmSet = projectDao.findAllProjectsWithPmSet(); for (Project project : projectsWithPmSet) { User pm = project.getProjectManager(); boolean hasPmRole = pm.getUserRoles().contains(UserRole.PROJECTMANAGER); if (!hasPmRole) { LOGGER.warn(String.format("%s (%s) does not have PM role but is PM for %s. Adding PM role.", pm.getFullName(), pm.getPK(), project.getFullName())); projectService.validatePMRoles(project); } } } }
private List<Integer> fetchAllowedProjectIds(UserSelectedCriteria userSelectedCriteria) { List<Project> allowedProjects = projectDao.findActiveProjectsWhereUserIsPM(userSelectedCriteria.getPm()); List<Integer> projectIds = Lists.newArrayList(); for (Project allowedProject : allowedProjects) { projectIds.add(allowedProject.getProjectId()); } return projectIds; }
public String getFullNameWithCustomer() { return getCustomer().getCode() + ": " + ((StringUtils.isBlank(projectCode)) ? name : projectCode + " - " + name); }
private List<Project> getBillableProjects(UserSelectedCriteria criteria) { List<Project> projects = criteria.isOnlyActiveProjects() ? projectDao.findAllActive() : projectDao.findAll(); List<Project> filteredProjects = Lists.newArrayList(); for (Project project : projects) { boolean billableFilter = project.isBillable(); boolean customerFilter = !criteria.isOnlyActiveCustomers() || project.getCustomer().isActive(); if (billableFilter && customerFilter) { filteredProjects.add(project); } } return filteredProjects; } }
/** * Whether assignment/project/customer are all active * * @return */ public boolean isBookable() { return isActive() && (getProject() == null || getProject().isActive()) && (getProject() == null || getProject().getCustomer() == null || getProject().getCustomer().isActive()); }
/** * Compare on name * @param o1 * @param o2 * @return */ private int compareNames(ProjectAssignment o1, ProjectAssignment o2) { if (o1 != null && o2 != null && o1.getProject() != null && o2.getProject() != null && o1.getProject().getName() != null) { return o1.getProject().getFullName().compareToIgnoreCase(o2.getProject().getFullName()); } else { return o1 == null || o1.getProject() == null ? -1 : 1; } }
@Test public void should_process_column_with_basic_value() throws InstantiationException, IllegalAccessException { FieldMap fieldDefinitionMap = FieldMapFactory.buildFieldMapForEntity(Project.class); FieldDefinition fieldDef = fieldDefinitionMap.get("project_code"); Project project = ProjectObjectMother.createProject(1); project.setProjectCode(null); Map<Class<?>, Object> embeddables = Maps.newHashMap(); fieldDef.process(project, embeddables, "TEC"); assertEquals("TEC", project.getProjectCode()); }
@Test public void should_only_include_billable_without_customer_or_project_selection() { provideNoLocks(); provideNoAssignmentsWithoutBookings(); userSelectedCriteria.setOnlyBillableProjects(true); Project billableProject = ProjectObjectMother.createProject(1); billableProject.setBillable(true); Project notBillableProject = ProjectObjectMother.createProject(2); notBillableProject.setBillable(false); when(projectDao.findAllActive()).thenReturn(Arrays.asList(billableProject, notBillableProject)); List<User> users = Lists.newArrayList(); List<Project> projects = Lists.newArrayList(billableProject); UsersAndProjects usersAndProjects = new UsersAndProjects(users, projects); when(reportCriteriaService.criteriaToUsersAndProjects(userSelectedCriteria)).thenReturn(usersAndProjects); ArgumentCaptor<List> projectIdListCapture = ArgumentCaptor.forClass(List.class); when(detailedReportDao.getHoursPerDayForProjects(projectIdListCapture.capture(), any(DateRange.class))) .thenReturn(new ArrayList<FlatReportElement>()); detailedReportService.getDetailedReportData(reportCriteria); assertEquals(1, projectIdListCapture.getValue().size()); assertEquals(billableProject.getPK(), projectIdListCapture.getValue().get(0)); }
@Test public void should_delete_customer_with_projects_throw_a_constraint_violation() { Customer cust = new Customer(); Project proj = new Project(); Set<Project> projs = new HashSet<>(); proj.setProjectId(1); cust.setCustomerId(1); projs.add(proj); cust.setProjects(projs); when(customerDAO.findById(1)).thenReturn(cust); try { customerService.deleteCustomer(1); fail("no ParentChildConstraintException thrown"); } catch (ParentChildConstraintException e) { } }