private ConfigurationOption<?> validateConfigurationOption(String key, String value) throws IllegalArgumentException { final ConfigurationOption configurationOption = getConfigurationOptionByKey(key); if (configurationOption != null) { configurationOption.assertValid(value); return configurationOption; } else { throw new IllegalArgumentException("Config key '" + key + "' does not exist."); } }
@Test public void testAlternateKeysPrimary() { final ConfigurationRegistry configuration = createConfiguration(Collections.singletonList(testAlternateKeys), SimpleSource.forTest("primaryKey", "foo")); assertEquals("foo", configuration.getConfigurationOptionByKey("primaryKey").getValueAsString()); assertEquals("foo", configuration.getConfigurationOptionByKey("alternateKey1").getValueAsString()); assertEquals("foo", configuration.getConfigurationOptionByKey("alternateKey2").getValueAsString()); }
@Test public void testAlternateKeysAlternate() { final ConfigurationRegistry configuration = createConfiguration(Collections.singletonList(testAlternateKeys), SimpleSource.forTest("alternateKey1", "foo")); assertEquals("foo", configuration.getConfigurationOptionByKey("primaryKey").getValueAsString()); assertEquals("foo", configuration.getConfigurationOptionByKey("alternateKey1").getValueAsString()); assertEquals("foo", configuration.getConfigurationOptionByKey("alternateKey2").getValueAsString()); }
@Test public void testAlternateKeysPrimaryAndAlternate() { final ConfigurationRegistry configuration = createConfiguration(Collections.singletonList(testAlternateKeys), SimpleSource.forTest("primaryKey", "foo").add("alternateKey1", "bar")); assertEquals("foo", configuration.getConfigurationOptionByKey("primaryKey").getValueAsString()); assertEquals("foo", configuration.getConfigurationOptionByKey("alternateKey1").getValueAsString()); assertEquals("foo", configuration.getConfigurationOptionByKey("alternateKey2").getValueAsString()); }
@Test public void testWithOptions_valid() { final ConfigurationOption<String> option = ConfigurationOption.stringOption() .key("test.options") .addValidOptions("foo", "bar") .buildWithDefault("foo"); final ConfigurationRegistry configuration = createConfiguration(Collections.singletonList(option), SimpleSource.forTest("test.options", "bar")); assertThat(configuration.getConfigurationOptionByKey("test.options").getValueAsString()).isEqualTo("bar"); assertThatThrownBy(() -> configuration.save("test.options", "baz", "Test Configuration Source")) .isInstanceOf(IllegalArgumentException.class) .hasMessageContaining("Invalid option"); }
@Test public void testUpdateConfigurationWrongDatatype() throws IOException { configuration.addConfigurationSource(SimpleSource.forTest("stagemonitor.internal.monitoring", "1")); configuration.reloadAllConfigurationOptions(); assertFalse(corePlugin.isInternalMonitoringActive()); assertEquals("Error in Test Configuration Source: Can't convert '1' to Boolean.", configuration.getConfigurationOptionByKey("stagemonitor.internal.monitoring").getErrorMessage()); configuration.save("stagemonitor.internal.monitoring", "true", "Test Configuration Source"); assertTrue(corePlugin.isInternalMonitoringActive()); assertNull(configuration.getConfigurationOptionByKey("stagemonitor.internal.monitoring").getErrorMessage()); }