You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 10:21:56 UTC
[sling-org-apache-sling-testing-resourceresolver-mock] 04/06:
SLING-6765 resourceresolver-mock: Implement
ResourceResolver.getParentResourceType
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to annotated tag org.apache.sling.testing.resourceresolver-mock-1.1.18
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-resourceresolver-mock.git
commit 8d4b7aac3bb488c2edb7f6f4b24e17d8eabcdfd4
Author: Stefan Seifert <ss...@apache.org>
AuthorDate: Sat Apr 1 07:27:59 2017 +0000
SLING-6765 resourceresolver-mock: Implement ResourceResolver.getParentResourceType
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/testing/mocks/resourceresolver-mock@1789774 13f79535-47bb-0310-9956-ffa450edef68
---
.../resourceresolver/MockResourceResolver.java | 37 ++++++++++++++++------
.../SlingCrudResourceResolverTest.java | 18 +++++++++++
2 files changed, 45 insertions(+), 10 deletions(-)
diff --git a/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java b/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java
index fe5bbb4..f826d1d 100644
--- a/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java
+++ b/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java
@@ -371,6 +371,33 @@ public class MockResourceResolver extends SlingAdaptable implements ResourceReso
this.temporaryResources.put(path, props);
}
+ @Override
+ public String getParentResourceType(Resource resource) {
+ String resourceSuperType = null;
+ if ( resource != null ) {
+ resourceSuperType = resource.getResourceSuperType();
+ if (resourceSuperType == null) {
+ resourceSuperType = this.getParentResourceType(resource.getResourceType());
+ }
+ }
+ return resourceSuperType;
+ }
+
+ @Override
+ public String getParentResourceType(String resourceType) {
+ // normalize resource type to a path string
+ final String rtPath = (resourceType == null ? null : ResourceUtil.resourceTypeToPath(resourceType));
+ // get the resource type resource and check its super type
+ String resourceSuperType = null;
+ if ( rtPath != null ) {
+ final Resource rtResource = getResource(rtPath);
+ if (rtResource != null) {
+ resourceSuperType = rtResource.getResourceSuperType();
+ }
+ }
+ return resourceSuperType;
+ }
+
// part of Resource API 2.6.0
public boolean hasChildren(Resource resource) {
return this.listChildren(resource).hasNext();
@@ -395,16 +422,6 @@ public class MockResourceResolver extends SlingAdaptable implements ResourceReso
}
@Override
- public String getParentResourceType(Resource resource) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getParentResourceType(String resourceType) {
- throw new UnsupportedOperationException();
- }
-
- @Override
public Iterator<Resource> findResources(final String query, final String language) {
throw new UnsupportedOperationException();
}
diff --git a/src/test/java/org/apache/sling/testing/resourceresolver/SlingCrudResourceResolverTest.java b/src/test/java/org/apache/sling/testing/resourceresolver/SlingCrudResourceResolverTest.java
index 3cd8007..a51a59b 100644
--- a/src/test/java/org/apache/sling/testing/resourceresolver/SlingCrudResourceResolverTest.java
+++ b/src/test/java/org/apache/sling/testing/resourceresolver/SlingCrudResourceResolverTest.java
@@ -38,6 +38,7 @@ import org.apache.jackrabbit.util.ISO8601;
import org.apache.sling.api.resource.LoginException;
import org.apache.sling.api.resource.ModifiableValueMap;
import org.apache.sling.api.resource.NonExistingResource;
+import org.apache.sling.api.resource.PersistenceException;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ResourceUtil;
@@ -289,4 +290,21 @@ public class SlingCrudResourceResolverTest {
assertEquals("/non/existing/path", resource.getPath());
}
+ @Test
+ public void testGetParentResourceType() throws PersistenceException {
+ Resource r1 = resourceResolver.create(testRoot, "resource1", ImmutableMap.<String, Object>of());
+ Resource r2 = resourceResolver.create(testRoot, "resource2", ImmutableMap.<String, Object>of(
+ "sling:resourceSuperType", testRoot.getPath() + "/resource1"));
+ Resource r3 = resourceResolver.create(testRoot, "resource3", ImmutableMap.<String, Object>of(
+ "sling:resourceType", testRoot.getPath() + "/resource2"));
+ Resource r4 = resourceResolver.create(testRoot, "resource4", ImmutableMap.<String, Object>of(
+ "sling:resourceSuperType", testRoot.getPath() + "/resource2"));
+
+ assertNull(resourceResolver.getParentResourceType(r1));
+ assertEquals(r1.getPath(), resourceResolver.getParentResourceType(r2));
+ assertEquals(r1.getPath(), resourceResolver.getParentResourceType(r3));
+ assertEquals(r2.getPath(), resourceResolver.getParentResourceType(r4));
+ assertEquals(r2.getPath(), resourceResolver.getParentResourceType(r4.getPath()));
+ }
+
}
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.