@Test public void testRunNowRunnable() throws Exception { TestRunnable tr = new TestRunnable(); ScheduledTask<Object> st = defaultScheduler.submit("default", tr); assertEquals(1, defaultScheduler.getActiveTasks().size()); while (!st.getTaskState().isEndingState()) { Thread.sleep(300); } assertEquals(1, tr.getRunCount()); assertEquals(TaskState.FINISHED, st.getTaskState()); assertNull(st.getNextRun()); assertEquals(0, defaultScheduler.getActiveTasks().size()); }
@Test public void testInitializeCronSchedule() throws Exception { final CScheduledTask cst = new CScheduledTask(); cst.setId("foo-" + System.currentTimeMillis()); cst.setEnabled(true); cst.setName("foo"); cst.setType(TestNexusTask.class.getName()); cst.setNextRun( new SimpleDateFormat("yyyy-MM-DD hh:mm:ss").parse("2099-01-01 20:00:00").getTime()); // System.out.println( new Date( cst.getNextRun() ) ); final CScheduleConfig csc = new CScheduleConfig(); csc.setType(SCHEDULE_TYPE_ADVANCED); csc.setCronCommand("0 0 20 ? * TUE,THU,SAT"); cst.setSchedule(csc); defaultManager.initializeTasks(defaultScheduler, Arrays.asList(cst)); final ScheduledTask<?> task = defaultScheduler.getTaskById(cst.getId()); assertThat(new Date(task.getNextRun().getTime()), is(new Date(cst.getNextRun()))); }