@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_provide_assignments_without_bookings() { provideNoLocks(); noFilteringOnUserOrProject(); when(reportAggregatedDao.getAssignmentsWithoutBookings(reportCriteria.getReportRange())).thenReturn(Arrays.asList(ProjectAssignmentObjectMother.createProjectAssignment(1))); userSelectedCriteria.setShowZeroBookings(true); Project billableProject = ProjectObjectMother.createProject(1); billableProject.setBillable(true); Project notBillableProject = ProjectObjectMother.createProject(2); notBillableProject.setBillable(false); when(projectDao.findAllActive()).thenReturn(Arrays.asList(billableProject)); when(detailedReportDao.getHoursPerDay(reportCriteria.getReportRange())).thenReturn(Arrays.asList(createFlatReportElement())); ReportData reportData = detailedReportService.getDetailedReportData(reportCriteria); FlatReportElement element = (FlatReportElement) reportData.getReportElements().get(0); assertTrue(element.isEmptyEntry()); verify(detailedReportDao).getHoursPerDay(reportCriteria.getReportRange()); verify(reportAggregatedDao).getAssignmentsWithoutBookings(reportCriteria.getReportRange()); } }