package org.stagemonitor.core; import java.io.Closeable; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import java.util.Collections; import org.junit.Assert; import org.junit.Test; import static org.mockito.Mockito.mock; import org.stagemonitor.configuration.ConfigurationRegistry; import org.stagemonitor.configuration.source.ConfigurationSource; import org.stagemonitor.configuration.source.SimpleSource; import org.stagemonitor.core.elasticsearch.ElasticsearchClient; import org.stagemonitor.core.metrics.metrics2.ElasticsearchReporter; import org.stagemonitor.core.metrics.metrics2.Metric2Registry; public class CorePluginTest { @Test public void testCycleElasticsearchUrls() throws Exception { CorePlugin corePlugin = new ConfigurationRegistry( Collections.singletonList(new CorePlugin()), Collections.<ConfigurationSource>singletonList(new SimpleSource("test") .add("stagemonitor.elasticsearch.url", "http://bla:1/,http://bla:2,http://bla:3")), null).getConfig(CorePlugin.class); assertEquals("http://bla:1", corePlugin.getElasticsearchUrl()); assertEquals("http://bla:2", corePlugin.getElasticsearchUrl()); assertEquals("http://bla:3", corePlugin.getElasticsearchUrl()); assertEquals("http://bla:1", corePlugin.getElasticsearchUrl()); assertEquals("http://bla:2", corePlugin.getElasticsearchUrl()); assertEquals("http://bla:3", corePlugin.getElasticsearchUrl()); } @Test public void testNoElasticsearchUrl() throws Exception { CorePlugin corePlugin = new ConfigurationRegistry( Collections.singletonList(new CorePlugin()), Collections.<ConfigurationSource>singletonList(new SimpleSource("test")), null).getConfig(CorePlugin.class); assertNull(corePlugin.getElasticsearchUrl()); } @Test public void testOnlyLogElasticsearchMetricReports() throws Exception { Metric2Registry registry = new Metric2Registry(); CorePlugin corePlugin = new CorePlugin(mock(ElasticsearchClient.class)); ConfigurationRegistry configuration = new ConfigurationRegistry( Collections.singletonList(corePlugin), Collections.<ConfigurationSource>singletonList(new SimpleSource("test") .add("stagemonitor.reporting.elasticsearch.onlyLogElasticsearchMetricReports", "true")), null); corePlugin.registerReporters(registry, configuration, new MeasurementSession("OnlyLogElasticsearchMetricReportsTest", "test", "test")); boolean found = false; for (Closeable c : corePlugin.getReporters()) { found |= (c instanceof ElasticsearchReporter); } Assert.assertTrue("No ElasticsearchReporter found", found); } }