@Test public void sameJobCanNotBeScheduledTwice() throws SchedulerException { try { expectedException.expect(JobAlreadyScheduledException.class); schedulingService.scheduleJob( GROUP_NAME, new SourceConfig(TEST_JOB, TEST_JOB, 100, Collections.emptyMap())); schedulingService.scheduleJob( GROUP_NAME, new SourceConfig(TEST_JOB, TEST_JOB, 100, Collections.emptyMap())); } finally { schedulingService.cancelJobs(GROUP_NAME); } }
@Test public void cancelJob() throws SchedulerException, InterruptedException { MutableInt mutableInt = new MutableInt(0); HashMap<String, Object> map = new HashMap<>(); map.put(TestJob.COUNTER, mutableInt); schedulingService.scheduleJob(GROUP_NAME, new SourceConfig(TEST_JOB, TEST_JOB, 100, map)); assertTrue(schedulingService.checkJobExists(TEST_JOB, GROUP_NAME)); schedulingService.cancelJobs(GROUP_NAME); assertFalse(schedulingService.checkJobExists(TEST_JOB, GROUP_NAME)); }
@Test public void scheduleJobShouldRunAtLeastThreeTimes() throws SchedulerException, InterruptedException { MutableInt mutableInt = new MutableInt(0); HashMap<String, Object> map = new HashMap<>(); map.put(TestJob.COUNTER, mutableInt); schedulingService.scheduleJob(GROUP_NAME, new SourceConfig(TEST_JOB, TEST_JOB, 100, map)); Thread.sleep(500); schedulingService.cancelJobs(GROUP_NAME); assertThat(mutableInt.getValue()).isGreaterThan(3); }
@Test public void sourceJobShouldBeCanceled() throws SchedulerException, InterruptedException { // this test should find no widget and therefore cancel the job when(widgetConfigRepository.exists(GROUP_NAME)).thenReturn(false); schedulingService.scheduleJob( GROUP_NAME, new SourceConfig(TEST_JOB, TEST_JOB, 100, Collections.emptyMap())); Thread.sleep(200); // time for scheduling service to cancel the job assertFalse(schedulingService.checkJobExists(TEST_JOB, GROUP_NAME)); verify(sourceDataRepository).deleteByWidgetId(eq(GROUP_NAME)); }