### Question:
AbstractPackagePathPropertyResolver implements PropertyResolver { @Override public final String resolve(String name) { try { return resolve(new PropertyRef(name)); } catch (IOException ex) { throw new RuntimeException(ex); } } AbstractPackagePathPropertyResolver(int priority,
      PropertiesSetLoader loader); @Override void init(); @Override void destroy(); @Override final int getPriority(); @Override final String resolve(String name);  }### Answer:
@Test public void testGetPropertyWithNoRecursion() throws Exception { assertThat(resolver.resolve("rootProperty"), is(equalTo("rootProperty"))); assertThat(resolver.resolve("NO_SUCH_PROPERTY"), is(nullValue())); assertThat(resolver.resolve("parent.parentProperty"), is(equalTo("parentProperty"))); assertThat(resolver.resolve("parent.child.childProperty"), is(equalTo("childProperty"))); assertThat(resolver.resolve("parent.child.grandchild.grandchildProperty"), is(equalTo("grandchildProperty"))); }
@Test public void testGetPropertyWithRecursion() throws Exception { assertThat(resolver.resolve("parent.child.grandchild.parentProperty"), is(equalTo("parentOfGrandchildProperty"))); assertThat(resolver.resolve("parent.child.grandchild.grandparentProperty"), is(equalTo("grandparentOfGrandchildProperty"))); assertThat(resolver.resolve("parent.child.grandchild.greatGrandparentProperty"), is(equalTo("greatGrandparentOfGrandchildProperty"))); assertThat(resolver.resolve("parent.child.grandchild.NO_SUCH_PROPERTY"), is(nullValue())); }