@Test public void shouldReturnLastAddedPeriodForASchedule() throws Exception { DateTime date1 = new DateTime(); DateTime date2 = date1.plusMonths(3); ProcessingPeriod period1 = make( a( defaultProcessingPeriod, with(ProcessingPeriodBuilder.startDate, date1.toDate()), with(scheduleId, schedule.getId()))); ProcessingPeriod period2 = make( a( defaultProcessingPeriod, with(ProcessingPeriodBuilder.startDate, date2.toDate()), with(scheduleId, schedule.getId()), with(name, "Month2"))); mapper.insert(period1); mapper.insert(period2); ProcessingPeriod fetchedPeriod = mapper.getLastAddedProcessingPeriod(schedule.getId()); assertThat(fetchedPeriod.getId(), is(period2.getId())); }
@Test public void shouldReturnAllPeriodsForASchedule() throws Exception { DateTime date1 = new DateTime(); DateTime date2 = date1.plusMonths(3); ProcessingPeriod period1 = make( a( defaultProcessingPeriod, with(ProcessingPeriodBuilder.startDate, date1.toDate()), with(scheduleId, schedule.getId()))); ProcessingPeriod period2 = make( a( defaultProcessingPeriod, with(ProcessingPeriodBuilder.startDate, date2.toDate()), with(scheduleId, schedule.getId()), with(name, "Month2"))); mapper.insert(period1); mapper.insert(period2); List<ProcessingPeriod> fetchedPeriods = mapper.getAll(schedule.getId()); assertThat(fetchedPeriods.size(), is(2)); assertThat(fetchedPeriods.get(0).getId(), is(period2.getId())); }
@Test public void shouldGetPeriodById() { ProcessingPeriod processingPeriod = make(a(defaultProcessingPeriod, with(scheduleId, schedule.getId()))); mapper.insert(processingPeriod); ProcessingPeriod period = mapper.getById(processingPeriod.getId()); assertThat(period.getName(), is(processingPeriod.getName())); }
@Test public void shouldDeleteAPeriod() { ProcessingPeriod processingPeriod = make(a(defaultProcessingPeriod, with(scheduleId, schedule.getId()))); mapper.insert(processingPeriod); mapper.delete(processingPeriod.getId()); assertThat(mapper.getAll(schedule.getId()).size(), is(0)); }
@Test public void shouldGetAllPeriodsAfterAGivenDate() throws Exception { DateTime date1 = new DateTime(); DateTime date2 = date1.minusMonths(1); DateTime date3 = date1.minusMonths(2); DateTime date4 = date1.minusMonths(3); DateTime date5 = date1.minusMonths(4); DateTime futureDate = date1.plusMonths(1); insertProcessingPeriod("Period 1", date5, date4); ProcessingPeriod period2 = insertProcessingPeriod("Period 2", date4.plusDays(1), date3); ProcessingPeriod period3 = insertProcessingPeriod("Period 3", date3.plusDays(1), date2); ProcessingPeriod period4 = insertProcessingPeriod("Period 4", date2.plusDays(1), date1); insertProcessingPeriod("Period 5", date1.plusDays(1), futureDate); List<ProcessingPeriod> relevantPeriods = mapper.getAllPeriodsAfterDate(schedule.getId(), date3.toDate(), date1.toDate()); assertThat(relevantPeriods.size(), is(3)); assertThat(relevantPeriods.get(0).getId(), is(period2.getId())); assertThat(relevantPeriods.get(1).getId(), is(period3.getId())); assertThat(relevantPeriods.get(2).getId(), is(period4.getId())); }
@RequestMapping(value = "/schedules/{scheduleId}/periods", method = POST, headers = ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'MANAGE_SCHEDULE')") public ResponseEntity<OpenLmisResponse> save( @PathVariable("scheduleId") Long scheduleId, @RequestBody ProcessingPeriod processingPeriod, HttpServletRequest request) { processingPeriod.setScheduleId(scheduleId); processingPeriod.setModifiedBy(loggedInUserId(request)); processingPeriod.setCreatedBy(loggedInUserId(request)); try { processingScheduleService.savePeriod(processingPeriod); } catch (Exception e) { return error(new DataException(e.getMessage()), HttpStatus.BAD_REQUEST); } ResponseEntity<OpenLmisResponse> successResponse = success(messageService.message("message.period.added.success")); successResponse.getBody().addData("id", processingPeriod.getId()); return successResponse; }