test_class.file: osgi/config/src/test/java/org/microbule/osgi/config/OsgiConfigProviderTest.java
test_class.identifier: OsgiConfigProviderTest
test_class.superclass: extends MockObjectTestCase
test_case.body: @Test
      public void testGetConfig() throws Exception {
          final OsgiConfigProvider provider = new OsgiConfigProvider();
          assertEquals("osgi", provider.name());
          assertEquals(ConfigUtils.DEFAULT_PRIORITY, provider.priority());
  
          Config config = provider.getConfig("foo", "bar");
  
          assertFalse(config.value("baz").isPresent());
  
          Hashtable<String,Object> props = new Hashtable<>();
          props.put("foo.bar.baz", "hello");
          provider.updated(props);
  
          config = provider.getConfig("foo", "bar");
          assertEquals("hello", config.value("baz").get());
  
          provider.updated(null);
  
          config = provider.getConfig("foo", "bar");
          assertFalse(config.value("baz").isPresent());
      }
test_case.class_method_signature: OsgiConfigProviderTest.testGetConfig()
test_case.full_signature: @Test public void testGetConfig()
test_case.identifier: testGetConfig
test_case.invocations: assertEquals name assertEquals priority getConfig assertFalse isPresent value put updated getConfig assertEquals get value updated getConfig assertFalse isPresent value
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testGetConfig()
focal_class.declarator: configRef = new AtomicReference<>(EmptyConfig.INSTANCE)
focal_class.modifier: private final
focal_class.original_string: private final AtomicReference<Config> configRef = new AtomicReference<>(EmptyConfig.INSTANCE);
focal_class.type: AtomicReference<Config>
focal_class.var_name: configRef
focal_class.file: osgi/config/src/main/java/org/microbule/osgi/config/OsgiConfigProvider.java
focal_class.identifier: OsgiConfigProvider
focal_class.interfaces: implements ConfigProvider, ManagedService
focal_class.class_method_signature: OsgiConfigProvider.getConfig(String... path)
focal_class.full_signature: @Override public Config getConfig(String... path)
focal_class.identifier: getConfig
focal_class.modifiers: @Override public
focal_class.parameters: (String... path)
focal_class.return: Config
focal_class.signature: Config getConfig(String... path)
focal_class.class_method_signature: OsgiConfigProvider.name()
focal_class.full_signature: @Override public String name()
focal_class.identifier: name
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String name()
focal_class.class_method_signature: OsgiConfigProvider.priority()
focal_class.full_signature: @Override public int priority()
focal_class.identifier: priority
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int priority()
focal_class.class_method_signature: OsgiConfigProvider.updated(Dictionary<String, ?> properties)
focal_class.full_signature: @Override public void updated(Dictionary<String, ?> properties)
focal_class.identifier: updated
focal_class.modifiers: @Override public
focal_class.parameters: (Dictionary<String, ?> properties)
focal_class.return: void
focal_class.signature: void updated(Dictionary<String, ?> properties)
focal_method.body: @Override
      public Config getConfig(String... path) {
          return configRef.get().filtered(path);
      }
focal_method.class_method_signature: OsgiConfigProvider.getConfig(String... path)
focal_method.full_signature: @Override public Config getConfig(String... path)
focal_method.identifier: getConfig
focal_method.invocations: filtered get
focal_method.modifiers: @Override public
focal_method.parameters: (String... path)
focal_method.return: Config
focal_method.signature: Config getConfig(String... path)