@Test
public void testConfigAdminService() throws Exception {
// Verify that there is no config with this PID already
ConfigAdminService configAdmin = getConfigAdminService();
boolean hasconfig = configAdmin.hasConfiguration(ConfiguredService.SERVICE_PID);
assertFalse("Config null", hasconfig);
Dictionary<String, String> config = new Hashtable<String, String>();
config.put("foo", "bar");
// Register a new config for the given PID
Dictionary<String, String> oldConfig = configAdmin.putConfiguration(ConfiguredService.SERVICE_PID, config);
try {
assertNull("Config null", oldConfig);
// Verify the registered config
Dictionary<String, String> regConfig = configAdmin.getConfiguration(ConfiguredService.SERVICE_PID);
assertNotNull("Config not null", regConfig);
assertEquals("Config not null", 1, regConfig.size());
assertEquals("bar", regConfig.get("foo"));
// Verify unmodifiable dictionary
try {
regConfig.remove("foo");
fail("UnsupportedOperationException expected");
} catch (UnsupportedOperationException ex) {
// expected
}
// Verify unmodifiable dictionary
config.put("foo", "baz");
regConfig = configAdmin.getConfiguration(ConfiguredService.SERVICE_PID);
assertEquals("bar", regConfig.get("foo"));
} finally {
oldConfig = configAdmin.removeConfiguration(ConfiguredService.SERVICE_PID);
assertNotNull("Config not null", oldConfig);
hasconfig = configAdmin.hasConfiguration(ConfiguredService.SERVICE_PID);
assertFalse("Config null", hasconfig);
}
}