@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)); }
@Before public void setup() throws SchedulerException { ApplicationContext applicationContext = mock(ApplicationContext.class); // introduce repositorys widgetConfigRepository = mock(WidgetConfigRepository.class); when(widgetConfigRepository.exists(GROUP_NAME)).thenReturn(true); when(applicationContext.getBean(WidgetConfigRepository.class)) .thenReturn(widgetConfigRepository); sourceDataRepository = mock(SourceDataRepository.class); when(applicationContext.getBean(SchedulingService.class)).thenReturn(schedulingService); schedulingService = new SchedulingService(applicationContext, widgetConfigRepository, sourceDataRepository); schedulingService.setupScheduling(); schedulingService.registerJob(TEST_JOB, TestJob.class); when(applicationContext.getBean(SchedulingService.class)).thenReturn(schedulingService); }