public void testJobDispatcher() { final MultipleNodeExecutorFactory factory = Mockito.mock(MultipleNodeExecutorFactory.class); final MultipleNodeExecutorTuner tuner = new MultipleNodeExecutorTuner(factory); final JobDispatcher dispatcher = Mockito.mock(JobDispatcher.class); final Map<String, Collection<Capability>> capabilities = new HashMap<String, Collection<Capability>>(); Mockito.when(dispatcher.getAllCapabilities()).thenReturn(capabilities); tuner.setJobDispatcher(dispatcher); tuner.run(); Mockito.verifyZeroInteractions(factory); capabilities.put("A", Arrays.asList(Capability.instanceOf("Foo"))); capabilities.put("B", Arrays.asList(Capability.instanceOf("Bar"))); tuner.run(); Mockito.verifyZeroInteractions(factory); capabilities.put( "A", Arrays.asList( Capability.instanceOf("Foo"), Capability.parameterInstanceOf(PlatformCapabilities.NODE_COUNT, 10d))); capabilities.put( "B", Arrays.asList( Capability.instanceOf("Bar"), Capability.parameterInstanceOf(PlatformCapabilities.NODE_COUNT, 4d))); tuner.run(); Mockito.verify(factory, Mockito.times(1)).setMaximumConcurrency(7); Mockito.verify(factory, Mockito.times(1)).invalidateCache(); Mockito.when(factory.getMaximumConcurrency()).thenReturn(7); tuner.run(); Mockito.verify(factory, Mockito.times(1)).setMaximumConcurrency(7); Mockito.verify(factory, Mockito.times(1)).invalidateCache(); }
private static MultipleNodeExecutorFactory multipleNodeExecutorFactoryOneJob() { final MultipleNodeExecutorFactory factory = new MultipleNodeExecutorFactory(); factory.afterPropertiesSet(); return factory; }
private static MultipleNodeExecutorFactory multipleNodeExecutorFactoryManyJobs() { final MultipleNodeExecutorFactory factory = multipleNodeExecutorFactoryOneJob(); factory.setMaximumJobItems(JOB_SIZE / 10); return factory; }