### Question:
DelegatingPropertyValueResolver implements PropertyValueResolver { @Override public String resolve(String name) { String value = getCachedValue(name); if (value == null) { for (PropertyResolver resolver : resolvers) { value = resolve(name, resolver); if (value != null) break; } } if (value != null) { cache(name, value); } return value; }  void init(); @Override String resolve(String name); @Override void destroy();  }### Answer:
@Test public void testResolvers() throws Exception { assertThat(resolver.resolve(ROOT_PROPERTY), is(equalTo(ROOT_PROPERTY))); assertThat(resolver.resolve(PACKAGE_NAME + "." + PACKAGE_PROPERTY), is(equalTo(PACKAGE_PROPERTY))); assertThat(resolver.resolve(META_INF_PROPERTY), is(equalTo(META_INF_PROPERTY))); assertThat(resolver.resolve(SHARED_PROPERTY), is(equalTo(META_INF_PROPERTY))); assertThat(resolver.resolve(SYSTEM_PROPERTY), is(equalTo(SYSTEM_PROPERTY))); assertThat(resolver.resolve("DOES_NOT_EXIST"), is(nullValue())); }