### Question:
AbsolutePathResolver { public String resolveProperty(final String propPath, final String paramRef) { return doResolveProperty(propPath, normalizeParamRef(paramRef)); }  String resolveProperty(final String propPath, final String paramRef);  }### Answer:
@Test void resolveSibling() { assertEquals("dummy.foo.sibling", resolver.resolveProperty("dummy.foo.bar", "sibling")); }
@Test void resolveSiblingFromParent() { assertEquals("dummy.foo.sibling", resolver.resolveProperty("dummy.foo.bar", "../sibling")); }
@Test void resolveSiblingChild() { assertEquals("dummy.foo.sibling.child", resolver.resolveProperty("dummy.foo.bar", "../sibling/child")); }
@Test void resolveSiblingArray() { assertEquals("dummy.foo[].sibling", resolver.resolveProperty("dummy.foo[].bar", "sibling")); }
@Test void resolveMe() { assertEquals("dummy", resolver.resolveProperty("dummy", ".")); }
@Test void resolveParent() { assertEquals("dummy", resolver.resolveProperty("dummy.foo", "..")); }
@Test void resolveGrandParent() { assertEquals("foo.bar", resolver.resolveProperty("dummy.foo", "../../foo/bar")); }
@Test void resolveChild() { assertEquals("dummy.foo.child", resolver.resolveProperty("dummy.foo", "./child")); }
@Test void resolveGrandChild() { assertEquals("dummy.foo.child.grandchild", resolver.resolveProperty("dummy.foo", "./child/grandchild")); }