@Test public void testCycleElasticsearchUrls() throws Exception { CorePlugin corePlugin = ConfigurationRegistry.builder() .addOptionProvider(new CorePlugin()) .addConfigSource(new SimpleSource("test") .add("stagemonitor.reporting.elasticsearch.url", "http://bla:1/,http://bla:2,http://bla:3")) .build() .getConfig(CorePlugin.class); assertThat(corePlugin.getElasticsearchUrl().toString()).isEqualTo("http://bla:1"); assertThat(corePlugin.getElasticsearchUrl().toString()).isEqualTo("http://bla:2"); assertThat(corePlugin.getElasticsearchUrl().toString()).isEqualTo("http://bla:3"); assertThat(corePlugin.getElasticsearchUrl().toString()).isEqualTo("http://bla:1"); assertThat(corePlugin.getElasticsearchUrl().toString()).isEqualTo("http://bla:2"); assertThat(corePlugin.getElasticsearchUrl().toString()).isEqualTo("http://bla:3"); }
@Test public void testLogUrlWithBasicAuth() throws Exception { class Provider extends ConfigurationOptionProvider { private ConfigurationOption<List<URL>> urlBasicAuthOption = ConfigurationOption.urlsOption() .key("foo") .buildRequired(); } final ConfigurationRegistry configurationRegistry = ConfigurationRegistry.builder() .addOptionProvider(new Provider()) .addConfigSource(new SimpleSource("source").add("foo", "http://user:pwd@example.com")) .build(); configurationLogger.logConfiguration(configurationRegistry); verify(logger).info(startsWith("# stagemonitor configuration")); verify(logger).info(eq("{}: {} (source: {})"), eq("foo"), eq("http://user:XXX@example.com"), eq("source")); } }
@Test public void testLogSensitive() throws Exception { class Provider extends ConfigurationOptionProvider { private ConfigurationOption<String> sensitiveOption = ConfigurationOption.stringOption() .key("foo") .sensitive() .buildRequired(); } final ConfigurationRegistry configurationRegistry = ConfigurationRegistry.builder() .addOptionProvider(new Provider()) .addConfigSource(new SimpleSource("source").add("foo", "secret")) .build(); configurationLogger.logConfiguration(configurationRegistry); verify(logger).info(startsWith("# stagemonitor configuration")); verify(logger).info(eq("{}: {} (source: {})"), eq("foo"), eq("XXXX"), eq("source")); }
@Test public void testAliasKey() throws Exception { class Provider extends ConfigurationOptionProvider { private ConfigurationOption<String> aliasOption = ConfigurationOption.stringOption() .key("foo") .aliasKeys("foo.old") .buildRequired(); } final ConfigurationRegistry configurationRegistry = ConfigurationRegistry.builder() .addOptionProvider(new Provider()) .addConfigSource(new SimpleSource().add("foo.old", "bar")) .build(); configurationLogger.logConfiguration(configurationRegistry); verify(logger).warn(eq("Detected usage of an old configuration key: '{}'. " + "Please use '{}' instead."), eq("foo.old"), eq("foo")); }
@Before public void setUp() throws Exception { GlobalTracerTestHelper.resetGlobalTracer(); tracingPlugin = spy(new TracingPlugin()); doReturn(true).when(tracingPlugin).isRoot(any()); configuration = ConfigurationRegistry.builder() .addOptionProvider(tracingPlugin) .addConfigSource(new SimpleSource()) .build(); final Tracer tracer = mock(Tracer.class); GlobalTracer.register(tracer); spanContext = mock(SpanContextInformation.class); when(spanContext.getSpanWrapper()).thenReturn(mock(SpanWrapper.class)); context = new PreExecutionInterceptorContext(spanContext); interceptor = new ProbabilisticSamplingPreExecutionInterceptor(); interceptor.init(configuration); }
@Before public void setUp() throws Exception { configurationRegistry = ConfigurationRegistry.builder() // its also possible to automatically detect all ConfigurationOptionProvider // implementations at runtime via ServiceLoader.load .addOptionProvider(new ExampleConfiguration()) // Defines the hierarchy of configuration sources // The first one has the highest precedence // You can implement custom configuration sources // For example JdbcConfigurationSource to sore config values in your DB .addConfigSource(new SimpleSource()) .addConfigSource(new SystemPropertyConfigurationSource()) .addConfigSource(new PropertyFileConfigurationSource("application.properties")) .addConfigSource(new EnvironmentVariableConfigurationSource()) .build(); // reloads configuration options from all configuration sources each 30 seconds configurationRegistry.scheduleReloadAtRate(30, TimeUnit.SECONDS); exampleConfiguration = configurationRegistry.getConfig(ExampleConfiguration.class); }
@Test public void testDeprecatedOption() throws Exception { class Provider extends ConfigurationOptionProvider { private ConfigurationOption<String> deprecatedOption = ConfigurationOption.stringOption() .key("foo") .tags("deprecated") .buildRequired(); } final ConfigurationRegistry configurationRegistry = ConfigurationRegistry.builder() .addOptionProvider(new Provider()) .addConfigSource(new SimpleSource().add("foo", "bar")) .build(); configurationLogger.logConfiguration(configurationRegistry); verify(logger).warn(contains("Detected usage of deprecated configuration option '{}'"), eq("foo")); }
@Before public void init() { configuration = ConfigurationRegistry.builder() .addOptionProvider(new CorePlugin()) .addConfigSource(new SimpleSource()) .build(); corePlugin = configuration.getConfig(CorePlugin.class); }
@Before public void before() throws Exception { ConfigurationRegistry configuration = ConfigurationRegistry.builder() .addOptionProvider(new ServletPlugin()) .build(); config = configuration.getConfig(ServletPlugin.class); }
@Test(expected = IllegalStateException.class) public void testFailOnRequiredValueMissing() throws Exception { final ConfigurationOption<String> configurationOption = ConfigurationOption.stringOption().key("foo").buildRequired(); final ConfigurationOptionProvider optionProvider = TestConfigurationOptionProvider.of(configurationOption); ConfigurationRegistry.builder().addOptionProvider(optionProvider).failOnMissingRequiredValues(true).build(); }
@Test(expected = IllegalArgumentException.class) public void testDuplicateLabel() throws Exception { final ConfigurationOptionProvider optionProvider = TestConfigurationOptionProvider.of( ConfigurationOption.stringOption().key("foo").description("Foo").build(), ConfigurationOption.stringOption().key("foo").label("Bar").build()); ConfigurationRegistry.builder().addOptionProvider(optionProvider).build(); }
@Before public void before() throws Exception { Stagemonitor.reset(); SharedMetricRegistries.clear(); ConfigurationRegistry configuration = ConfigurationRegistry.builder() .addOptionProvider(new TracingPlugin()) .build(); config = configuration.getConfig(TracingPlugin.class); }
private ConfigurationRegistry createConfiguration(List<ConfigurationOption<?>> configurationOptions, ConfigurationSource configurationSource) { return ConfigurationRegistry.builder() .addOptionProvider(new ConfigurationOptionProvider() { public List<ConfigurationOption<?>> getConfigurationOptions() { return configurationOptions; } }) .addConfigSource(configurationSource) .build(); }
@Test public void testElasticsearchUrlsBasicAuthViaConfig() throws Exception { CorePlugin corePlugin = ConfigurationRegistry.builder() .addOptionProvider(new CorePlugin()) .addConfigSource(new SimpleSource("test") .add("stagemonitor.reporting.elasticsearch.url", "http://bla:1") .add("stagemonitor.reporting.elasticsearch.username", "user") .add("stagemonitor.reporting.elasticsearch.password", "password")) .build() .getConfig(CorePlugin.class); assertThat(corePlugin.getElasticsearchUrl().toString()).isEqualTo("http://user:password@bla:1"); }
@Test public void testCycleElasticsearchUrlsEmptyString() throws Exception { CorePlugin corePlugin = ConfigurationRegistry.builder() .addOptionProvider(new CorePlugin()) .addConfigSource(new SimpleSource("test") .add("stagemonitor.reporting.elasticsearch.url", "")) .build() .getConfig(CorePlugin.class); assertThat(corePlugin.getElasticsearchUrls()).isEmpty(); }
@Test public void testElasticsearchUrlsBasicAuth() throws Exception { CorePlugin corePlugin = ConfigurationRegistry.builder() .addOptionProvider(new CorePlugin()) .addConfigSource(new SimpleSource("test") .add("stagemonitor.reporting.elasticsearch.url", "http://user:password@bla:1")) .build() .getConfig(CorePlugin.class); assertThat(corePlugin.getElasticsearchUrlsWithoutAuthenticationInformation()).isEqualTo("http://user:XXX@bla:1"); }
public AbstractAlerterTest() { configurationSource = new SimpleSource(); alertingPlugin = new AlertingPlugin(); configuration = ConfigurationRegistry.builder() .addOptionProvider(new CorePlugin()) .addOptionProvider(alertingPlugin) .addConfigSource(configurationSource) .build(); }
@Test public void testToJsonDoesNotThrowException() throws Exception { final ConfigurationOptionProvider optionProvider = TestConfigurationOptionProvider.of( ConfigurationOption.stringOption().key("foo").description("Foo").configurationCategory("Foos").build()); final ConfigurationRegistry configuration = ConfigurationRegistry.builder().addOptionProvider(optionProvider).build(); new ObjectMapper().writeValueAsString(configuration.getConfigurationOptionsByCategory()); }
@Test public void testGetConfigSubclass() { final CorePlugin corePluginMock = mock(CorePlugin.class); configuration = ConfigurationRegistry.builder() .addOptionProvider(corePluginMock) .addConfigSource(new SimpleSource()) .build(); assertSame(corePluginMock, configuration.getConfig(CorePlugin.class)); assertNull(configuration.getConfig(new ConfigurationOptionProvider(){}.getClass())); }
@Test public void testNoElasticsearchUrl() throws Exception { CorePlugin corePlugin = ConfigurationRegistry.builder() .addOptionProvider(new CorePlugin()) .addConfigSource(new SimpleSource("test")) .build() .getConfig(CorePlugin.class); assertNull(corePlugin.getElasticsearchUrl()); }