/** * Adds a configuration source as first priority to the configuration. * <p> * Don't forget to call {@link #reloadAllConfigurationOptions()} or {@link #reloadDynamicConfigurationOptions()} * after adding all configuration sources. * * @param configurationSource the configuration source to add */ public void addConfigurationSource(ConfigurationSource configurationSource) { addConfigurationSource(configurationSource, true); }
@Test public void testUpdateConfigurationNonDynamicPersistent() throws IOException { final ConfigurationSource persistentSourceMock = mock(ConfigurationSource.class); when(persistentSourceMock.isSavingPossible()).thenReturn(true); when(persistentSourceMock.isSavingPersistent()).thenReturn(true); when(persistentSourceMock.getName()).thenReturn("Test Persistent"); configuration.addConfigurationSource(persistentSourceMock); assertEquals(0, corePlugin.getConsoleReportingInterval()); configuration.save("stagemonitor.reporting.interval.console", "1", "Test Persistent"); verify(persistentSourceMock).save("stagemonitor.reporting.interval.console", "1"); }
@Test public void testUpdateConfigurationWithPassword() throws IOException { configuration.addConfigurationSource(SimpleSource.forTest(passwordKey, "pwd")); configurationPasswordChecker.assertPasswordCorrect("pwd"); }
@Test public void testUpdateConfigurationWithoutPassword() throws IOException { configuration.addConfigurationSource(SimpleSource.forTest(passwordKey, "pwd")); try { configurationPasswordChecker.assertPasswordCorrect(null); fail(); } catch (IllegalStateException e) { assertEquals("Wrong password for 'configuration.password'.", e.getMessage()); } }
@Test public void testAddConfigurationSource() { ConfigurationRegistry configuration = ConfigurationRegistry.builder().build(); configuration.addConfigurationSource(new SimpleSource()); assertEquals(Collections.singletonMap("Transient Configuration Source", true), configuration.getNamesOfConfigurationSources()); }
@Test public void testSetNewPasswordViaQueryParamsShouldFail() throws IOException { configuration.addConfigurationSource(SimpleSource.forTest(passwordKey, "")); try { configurationPasswordChecker.assertPasswordCorrect(""); configuration.save(passwordKey, "", null); fail(); } catch (IllegalArgumentException e) { assertEquals("Config key 'configuration.password' does not exist.", e.getMessage()); } }
@Test public void testUpdateConfigurationNotSaveableConfigurationSource() throws IOException { configuration.addConfigurationSource(new SystemPropertyConfigurationSource()); assertFalse(corePlugin.isInternalMonitoringActive()); try { configuration.save("stagemonitor.internal.monitoring", "true", "Java System Properties"); fail(); } catch (UnsupportedOperationException e) { assertEquals("Saving to Java System Properties is not possible.", e.getMessage()); } assertFalse(corePlugin.isInternalMonitoringActive()); }
@Test public void testIsPasswordSetTrue() throws Exception { ConfigurationRegistry configuration = ConfigurationRegistry.builder().build(); configuration.addConfigurationSource(SimpleSource.forTest(passwordKey, "")); assertTrue(new ConfigurationPasswordChecker(configuration, passwordKey).isPasswordSet()); }
@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()); }