public ReportCriteria(AvailableCriteria availableCriteria) { this(availableCriteria, new UserSelectedCriteria()); }
public ReportCriteria() { this(new AvailableCriteria(), new UserSelectedCriteria()); }
@Before public void setUp() throws Exception { detailedReportDao = mock(DetailedReportDao.class); projectDao = mock(ProjectDao.class); reportCriteriaService = mock(ReportCriteriaService.class); userSelectedCriteria = new UserSelectedCriteria(); userSelectedCriteria.setShowZeroBookings(true); reportCriteria = new ReportCriteria(userSelectedCriteria); timesheetLockService = mock(TimesheetLockService.class); reportAggregatedDao = mock(ReportAggregatedDao.class); detailedReportService = new DetailedReportServiceImpl(reportCriteriaService, projectDao, timesheetLockService, detailedReportDao, reportAggregatedDao); }
@Test public void should_sync_criteria_for_global_for_all_customers() { UserSelectedCriteria userSelectedCriteria = new UserSelectedCriteria(); userSelectedCriteria.setSelectedReportType(UserSelectedCriteria.ReportType.REPORT); userSelectedCriteria.setUsers(Arrays.asList(new User(1))); Tuple2<List<Customer>, List<Project>> apply = new Tuple2<List<Customer>, List<Project>>(Lists.<Customer>newArrayList(), Lists.<Project>newArrayList()); when(customerAndProjectCriteriaFilter.getAvailableCustomers(userSelectedCriteria)).thenReturn(apply); ReportCriteria reportCriteria = new ReportCriteria(userSelectedCriteria); reportCriteriaService.syncUserReportCriteria(reportCriteria, ReportCriteriaUpdateType.UPDATE_CUSTOMERS_AND_PROJECTS); verify(customerAndProjectCriteriaFilter).getAvailableCustomers(userSelectedCriteria); }
@Test public void should_sync_criteria_for_global_for_all_users() { UserSelectedCriteria userSelectedCriteria = new UserSelectedCriteria(); userSelectedCriteria.setSelectedReportType(UserSelectedCriteria.ReportType.REPORT); userSelectedCriteria.setUsers(Arrays.asList(new User(1))); ReportCriteria reportCriteria = new ReportCriteria(userSelectedCriteria); Tuple2<List<UserDepartment>, List<User>> apply = new Tuple2<List<UserDepartment>, List<User>>(Lists.<UserDepartment>newArrayList(), Lists.<User>newArrayList()); when(userAndDepartmentCriteriaFilter.getAvailableUsers(userSelectedCriteria)).thenReturn(apply); reportCriteriaService.syncUserReportCriteria(reportCriteria, ReportCriteriaUpdateType.UPDATE_USERS_AND_DEPTS); verify(userAndDepartmentCriteriaFilter).getAvailableUsers(userSelectedCriteria); }
@Test public void should_find_projects_when_customer_is_provided() { Customer customer = CustomerObjectMother.createCustomer(); UserSelectedCriteria userSelectedCriteria = new UserSelectedCriteria(); List<Customer> customers = Lists.newArrayList(customer); userSelectedCriteria.setCustomers(customers); Project project = ProjectObjectMother.createProject(1); when(projectDao.findProjectForCustomers(customers, true)).thenReturn(Lists.newArrayList(project)); UsersAndProjects usersAndProjects = reportCriteriaService.criteriaToUsersAndProjects(userSelectedCriteria); assertThat(usersAndProjects.getProjects(), contains(project)); assertTrue("Users should be empty", usersAndProjects.getUsers().isEmpty()); }
@Test public void should_find_projects_when_project_is_provided() { Project project = ProjectObjectMother.createProject(1); UserSelectedCriteria userSelectedCriteria = new UserSelectedCriteria(); userSelectedCriteria.setProjects(Lists.newArrayList(project)); UsersAndProjects usersAndProjects = reportCriteriaService.criteriaToUsersAndProjects(userSelectedCriteria); assertThat(userSelectedCriteria.getProjects(), contains(project)); assertTrue("Users should be empty", usersAndProjects.getUsers().isEmpty()); }
@Test public void should_return_single_user_when_its_provided() { User user = UserObjectMother.createUser(); UserSelectedCriteria userSelectedCriteria = new UserSelectedCriteria(); userSelectedCriteria.setUsers(Lists.newArrayList(user)); UsersAndProjects usersAndProjects = reportCriteriaService.criteriaToUsersAndProjects(userSelectedCriteria); assertThat(userSelectedCriteria.getUsers(), contains(user)); assertTrue("Projects should be empty", usersAndProjects.getProjects().isEmpty()); }
@Test public void should_create_report_for_specific_project() { DateRange dateRange = new DateRange(); UserSelectedCriteria userSelectedCriteria = new UserSelectedCriteria(); userSelectedCriteria.setReportRange(dateRange); ReportCriteria reportCriteria = new ReportCriteria(userSelectedCriteria); List<Project> projects = filterOnSingleProject(userSelectedCriteria); List<AssignmentAggregateReportElement> pags = createAssignmentAggregateReportElements(); when(reportAggregatedDao.getCumulatedHoursPerAssignmentForProjects(eq(projects), any(DateRange.class))).thenReturn(pags); ReportData data = aggregateReportService.getAggregateReportData(reportCriteria); assertEquals(3, data.getReportElements().size()); }
@Test public void should_return_empty_users_and_projects_when_no_filter_is_provided() { UsersAndProjects usersAndProjects = reportCriteriaService.criteriaToUsersAndProjects(new UserSelectedCriteria()); assertTrue("Users should be empty", usersAndProjects.getUsers().isEmpty()); assertTrue("Projects should be empty", usersAndProjects.getProjects().isEmpty()); }
@Test public void should_create_global_report() { DateRange dateRange = new DateRange(); UserSelectedCriteria userSelectedCriteria = new UserSelectedCriteria(); userSelectedCriteria.setReportRange(dateRange); ReportCriteria reportCriteria = new ReportCriteria(userSelectedCriteria); List<AssignmentAggregateReportElement> pags = createAssignmentAggregateReportElements(); when(reportAggregatedDao.getCumulatedHoursPerAssignment(any(DateRange.class))).thenReturn(pags); when(reportCriteriaService.criteriaToUsersAndProjects(userSelectedCriteria)).thenReturn(new UsersAndProjects()); ReportData data = aggregateReportService.getAggregateReportData(reportCriteria); assertEquals(3, data.getReportElements().size()); }
@Test public void should_sync_criteria_for_single_user() { UserSelectedCriteria userSelectedCriteria = new UserSelectedCriteria(); userSelectedCriteria.setSelectedReportType(UserSelectedCriteria.ReportType.INDIVIDUAL_USER); userSelectedCriteria.setUsers(Arrays.asList(new User(1))); ReportCriteria reportCriteria = new ReportCriteria(userSelectedCriteria); reportCriteriaService.syncUserReportCriteria(reportCriteria, ReportCriteriaUpdateType.UPDATE_ALL); verify(individualUserCriteriaSync).syncCriteriaForIndividualUser(reportCriteria); }
@Test public void should_create_report_for_single_user() { DateRange dateRange = new DateRange(); UserSelectedCriteria userSelectedCriteria = new UserSelectedCriteria(); userSelectedCriteria.setReportRange(dateRange); List<User> users = filterOnSingleUser(userSelectedCriteria); userSelectedCriteria.setUsers(users); ReportCriteria criteria = new ReportCriteria(userSelectedCriteria); List<AssignmentAggregateReportElement> pags = createAssignmentAggregateReportElements(); when(reportAggregatedDao.getCumulatedHoursPerAssignmentForUsers(eq(users), any(DateRange.class))).thenReturn(pags); ReportData data = aggregateReportService.getAggregateReportData(criteria); assertEquals(3, data.getReportElements().size()); }
@Test public void should_find_only_billable_projects() { UserSelectedCriteria userSelectedCriteria = new UserSelectedCriteria(); Project billableProject = ProjectObjectMother.createProject(1); billableProject.setBillable(true); Project notBillableProject = ProjectObjectMother.createProject(2); notBillableProject.setBillable(false); when(projectDao.findAllActive()).thenReturn(Lists.newArrayList(billableProject, notBillableProject)); userSelectedCriteria.setOnlyBillableProjects(true); UsersAndProjects usersAndProjects = reportCriteriaService.criteriaToUsersAndProjects(userSelectedCriteria); assertEquals(1, usersAndProjects.getProjects().size()); assertThat(usersAndProjects.getProjects(), contains(billableProject)); assertTrue("Users should be empty", usersAndProjects.getUsers().isEmpty()); } }
@Test public void should_find_users_when_a_department_is_provided() { UserSelectedCriteria userSelectedCriteria = new UserSelectedCriteria(); UserDepartment userDepartment = UserDepartmentObjectMother.createUserDepartment(1); userSelectedCriteria.setDepartments(Lists.newArrayList(userDepartment)); User matchingUser = UserObjectMother.createUser(); matchingUser.setUserDepartment(userDepartment); User nonMatchingUser = UserObjectMother.createUser(); UserDepartment wrongDepartment = UserDepartmentObjectMother.createUserDepartment(2); wrongDepartment.setCode("cc"); nonMatchingUser.setUserDepartment(wrongDepartment); when(userDao.findUsers(true)).thenReturn(Lists.newArrayList(matchingUser, nonMatchingUser)); UsersAndProjects usersAndProjects = reportCriteriaService.criteriaToUsersAndProjects(userSelectedCriteria); assertEquals(1, usersAndProjects.getUsers().size()); assertThat(usersAndProjects.getUsers(), contains(matchingUser)); assertTrue("Projects should be empty", usersAndProjects.getProjects().isEmpty()); }
@Test public void should_create_pm_report() { UserSelectedCriteria userSelectedCriteria = new UserSelectedCriteria();