This is an automated email from the ASF dual-hosted git repository.

sseifert pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-servlet-helpers.git


The following commit(s) were added to refs/heads/master by this push:
     new 825f448  SLING-7744 add implementation for 
RequestPathInfo.getSuffixResource
825f448 is described below

commit 825f4486404944a41a7f552945a346cee8bfe2cf
Author: sseifert <[email protected]>
AuthorDate: Tue Jul 31 13:08:44 2018 +0200

    SLING-7744 add implementation for RequestPathInfo.getSuffixResource
---
 .../sling/servlethelpers/MockRequestPathInfo.java  | 24 +++++++++++++++++++--
 .../MockSlingHttpServletRequest.java               |  2 +-
 .../apache/sling/servlethelpers/package-info.java  |  2 +-
 .../servlethelpers/MockRequestPathInfoTest.java    | 25 +++++++++++++++++++++-
 .../MockSlingHttpServletRequestTest.java           | 11 ++++++++++
 5 files changed, 59 insertions(+), 5 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/servlethelpers/MockRequestPathInfo.java 
b/src/main/java/org/apache/sling/servlethelpers/MockRequestPathInfo.java
index d14034c..c96c2eb 100644
--- a/src/main/java/org/apache/sling/servlethelpers/MockRequestPathInfo.java
+++ b/src/main/java/org/apache/sling/servlethelpers/MockRequestPathInfo.java
@@ -21,6 +21,7 @@ package org.apache.sling.servlethelpers;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.sling.api.request.RequestPathInfo;
 import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceResolver;
 import org.osgi.annotation.versioning.ConsumerType;
 
 /**
@@ -33,6 +34,20 @@ public class MockRequestPathInfo implements RequestPathInfo {
     private String resourcePath;
     private String selectorString;
     private String suffix;
+    
+    private final ResourceResolver resourceResolver;
+    
+    /**
+     * @deprecated Use @link {@link #MockRequestPathInfo(ResourceResolver)} 
instead. 
+     */
+    @Deprecated
+    public MockRequestPathInfo() {
+        this(null);
+    }
+
+    public MockRequestPathInfo(ResourceResolver resourceResolver) {
+        this.resourceResolver = resourceResolver;
+    }
 
     @Override
     public String getExtension() {
@@ -79,10 +94,15 @@ public class MockRequestPathInfo implements RequestPathInfo 
{
         this.suffix = suffix;
     }
 
-    // --- unsupported operations ---
     @Override
     public Resource getSuffixResource() {
-        throw new UnsupportedOperationException();
+        if (this.resourceResolver == null) {
+            throw new UnsupportedOperationException("No resource resolver 
available.");
+        }
+        if (suffix == null) {
+            return null;
+        }
+        return this.resourceResolver.getResource(suffix);
     }
 
 }
diff --git 
a/src/main/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequest.java
 
b/src/main/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequest.java
index 4b60195..dfb318c 100644
--- 
a/src/main/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequest.java
+++ 
b/src/main/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequest.java
@@ -130,7 +130,7 @@ public class MockSlingHttpServletRequest extends 
SlingAdaptable implements Sling
     }
 
     protected MockRequestPathInfo newMockRequestPathInfo() {
-        return new MockRequestPathInfo();
+        return new MockRequestPathInfo(this.resourceResolver);
     }
 
     @Override
diff --git a/src/main/java/org/apache/sling/servlethelpers/package-info.java 
b/src/main/java/org/apache/sling/servlethelpers/package-info.java
index ada5dc0..fc30dde 100644
--- a/src/main/java/org/apache/sling/servlethelpers/package-info.java
+++ b/src/main/java/org/apache/sling/servlethelpers/package-info.java
@@ -19,5 +19,5 @@
 /**
  * Mock implementation of selected Servlet-related Sling APIs.
  */
[email protected]("1.3")
[email protected]("1.4")
 package org.apache.sling.servlethelpers;
diff --git 
a/src/test/java/org/apache/sling/servlethelpers/MockRequestPathInfoTest.java 
b/src/test/java/org/apache/sling/servlethelpers/MockRequestPathInfoTest.java
index 4a6b15b..bb7eb29 100644
--- a/src/test/java/org/apache/sling/servlethelpers/MockRequestPathInfoTest.java
+++ b/src/test/java/org/apache/sling/servlethelpers/MockRequestPathInfoTest.java
@@ -21,17 +21,29 @@ package org.apache.sling.servlethelpers;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceResolver;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
 
+@RunWith(MockitoJUnitRunner.class)
 public class MockRequestPathInfoTest {
 
     private MockRequestPathInfo requestPathInfo;
+    
+    @Mock
+    private ResourceResolver resourceResolver;
 
     @Before
     public void setUp() throws Exception {
-        this.requestPathInfo = new MockRequestPathInfo();
+        this.requestPathInfo = new MockRequestPathInfo(resourceResolver);
     }
 
     @Test
@@ -65,4 +77,15 @@ public class MockRequestPathInfoTest {
         assertEquals("/suffix", this.requestPathInfo.getSuffix());
     }
 
+    @Test
+    public void testGetSuffixResource() {
+        assertNull(this.requestPathInfo.getSuffixResource());
+        
+        this.requestPathInfo.setSuffix("/suffix");
+        Resource resource = mock(Resource.class);
+        when(resourceResolver.getResource("/suffix")).thenReturn(resource);
+        
+        assertSame(resource, this.requestPathInfo.getSuffixResource());
+    }
+
 }
diff --git 
a/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java
 
b/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java
index 9c02ec7..d2e12b3 100644
--- 
a/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java
+++ 
b/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java
@@ -442,4 +442,15 @@ public class MockSlingHttpServletRequestTest {
         assertNull(request.getPathInfo());
     }
 
+    @Test
+    public void testGetSuffixResource() {
+        assertNull(request.getRequestPathInfo().getSuffixResource());
+        
+        
((MockRequestPathInfo)request.getRequestPathInfo()).setSuffix("/suffix");
+        Resource resource = mock(Resource.class);
+        when(resourceResolver.getResource("/suffix")).thenReturn(resource);
+        
+        assertSame(resource, request.getRequestPathInfo().getSuffixResource());
+    }
+
 }

Reply via email to