@Test public void testAlarmServiceCronExpressions() throws InterruptedException, LensException { DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-mm-dd"); DateTime start = formatter.parseDateTime("2016-03-03"); DateTime end = formatter.parseDateTime("2016-03-06"); SchedulerJobHandle jobHandle = new SchedulerJobHandle(UUID.randomUUID()); System.out.println("jobHandle = " + jobHandle); XFrequency frequency = new XFrequency(); frequency.setCronExpression("0 0 12 * * ?"); alarmService.schedule(start, end, frequency, jobHandle.toString()); Thread.sleep(1000); alarmService.unSchedule(jobHandle); // Assert that the events are fired and at per second interval. assertTrue(events.size() > 1); }
@Test public void testAlarmServiceEnums() throws InterruptedException, LensException { DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-mm-dd"); DateTime start = formatter.parseDateTime("2016-03-03"); DateTime end = formatter.parseDateTime("2016-03-06"); SchedulerJobHandle jobHandle = new SchedulerJobHandle(UUID.randomUUID()); XFrequency frequency = new XFrequency(); frequency.setEnum(XFrequencyEnum.DAILY); alarmService.schedule(start, end, frequency, jobHandle.toString()); Thread.sleep(2000); // give chance to the event listener to process the data int count = 0; for (SchedulerAlarmEvent event : events) { if (event.getJobHandle().equals(jobHandle)) { count++; } } // 3 scheduled events, and one expired event. Assert.assertEquals(count, 4); DateTime expectedDate = start; Set<DateTime> actualSet = new HashSet<>(); for (SchedulerAlarmEvent e : events) { actualSet.add(e.getNominalTime()); } for (int i = 0; i < actualSet.size(); i++) { Assert.assertTrue(actualSet.contains(expectedDate)); expectedDate = expectedDate.plusDays(1); } }
/** * Inserts the Job info object into job table * * @param jobInfo * @return number of rows inserted. * @throws SQLException */ public int insertIntoJobTable(SchedulerJobInfo jobInfo) throws SQLException { String insertSQL = "INSERT INTO " + JOB_TABLE + " VALUES(?,?,?,?,?,?,?)"; JAXBElement<XJob> xmlJob = jobFactory.createJob(jobInfo.getJob()); return runner.update(insertSQL, jobInfo.getId().toString(), ToXMLString.toString(xmlJob), jobInfo.getUserName(), jobInfo.getJobState().name(), jobInfo.getCreatedOn(), jobInfo.getModifiedOn(), jobInfo.getJob().getName()); }