public void testStatisticsDecayRate() { final MultipleNodeExecutorTuner tuner = new MultipleNodeExecutorTuner(Mockito.mock(MultipleNodeExecutorFactory.class)); assertEquals(tuner.getStatisticsDecayRate(), 0.1d); tuner.setStatisticsDecayRate(0.9d); assertEquals(tuner.getStatisticsDecayRate(), 0.9d); }
public void testStatisticsKeepAlive() { final MultipleNodeExecutorTuner tuner = new MultipleNodeExecutorTuner(Mockito.mock(MultipleNodeExecutorFactory.class)); assertEquals(tuner.getStatisticsKeepAlive(), 300); tuner.setStatisticsKeepAlive(60); assertEquals(tuner.getStatisticsKeepAlive(), 60); }
public void testJobDispatchStatistics() { final MultipleNodeExecutorFactory factory = Mockito.mock(MultipleNodeExecutorFactory.class); final MultipleNodeExecutorTuner tuner = new MultipleNodeExecutorTuner(factory); final AtomicLong age = new AtomicLong(); final TotallingNodeStatisticsGatherer stats = new TotallingNodeStatisticsGatherer() { @Override public void dropStatisticsBefore(final Instant limit) { assertEquals(age.getAndSet(Instant.now().getEpochSecond() - limit.getEpochSecond()), 0); } }; tuner.setJobDispatchStatistics(stats); tuner.run(); assertTrue(age.get() >= 300); }
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(); }