package org.stagemonitor.core;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import org.stagemonitor.configuration.ConfigurationRegistry;
import org.stagemonitor.configuration.source.ConfigurationSource;
import org.stagemonitor.core.elasticsearch.ElasticsearchClient;
import org.stagemonitor.core.util.HttpClient;
import java.util.Arrays;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
public class StagemonitorCoreConfigurationSourceInitializerTest {
private StagemonitorCoreConfigurationSourceInitializer initializer = new StagemonitorCoreConfigurationSourceInitializer();
final ConfigurationRegistry configuration = Mockito.mock(ConfigurationRegistry.class);
final CorePlugin corePlugin = Mockito.mock(CorePlugin.class);
@Before
public void setUp() throws Exception {
when(corePlugin.getElasticsearchConfigurationSourceProfiles()).thenReturn(Arrays.asList("test"));
when(corePlugin.getThreadPoolQueueCapacityLimit()).thenReturn(1000);
when(configuration.getConfig(CorePlugin.class)).thenReturn(corePlugin);
ElasticsearchClient elasticsearchClient = new ElasticsearchClient(corePlugin, new HttpClient(), -1);
when(corePlugin.getElasticsearchClient()).thenReturn(elasticsearchClient);
}
@Test(expected = IllegalStateException.class)
public void testEsDownDeactivate() throws Exception {
when(corePlugin.isDeactivateStagemonitorIfEsConfigSourceIsDown()).thenReturn(true);
initializer.onConfigurationInitialized(new StagemonitorConfigurationSourceInitializer.ConfigInitializedArguments(configuration));
}
@Test
public void testEsDown() throws Exception {
when(corePlugin.isDeactivateStagemonitorIfEsConfigSourceIsDown()).thenReturn(false);
initializer.onConfigurationInitialized(new StagemonitorConfigurationSourceInitializer.ConfigInitializedArguments(configuration));
verify(configuration).addConfigurationSource(any(ConfigurationSource.class), eq(false));
}
}