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:00:51 UTC

[sling-org-apache-sling-resourceresolver] 07/24: Use Mockito instead of extra mock classes

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

rombert pushed a commit to annotated tag org.apache.sling.resourceresolver-1.0.6
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourceresolver.git

commit eba13afcae537a21a13977e211a4e1ce5f6a384b
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Fri Feb 22 15:08:25 2013 +0000

    Use Mockito instead of extra mock classes
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/resourceresolver@1449070 13f79535-47bb-0310-9956-ffa450edef68
---
 .../impl/tree/ResourceProviderEntryTest.java       | 309 ++++++---------------
 1 file changed, 87 insertions(+), 222 deletions(-)

diff --git a/src/test/java/org/apache/sling/resourceresolver/impl/tree/ResourceProviderEntryTest.java b/src/test/java/org/apache/sling/resourceresolver/impl/tree/ResourceProviderEntryTest.java
index c9970a3..bb4f6d3 100644
--- a/src/test/java/org/apache/sling/resourceresolver/impl/tree/ResourceProviderEntryTest.java
+++ b/src/test/java/org/apache/sling/resourceresolver/impl/tree/ResourceProviderEntryTest.java
@@ -18,18 +18,14 @@
  */
 package org.apache.sling.resourceresolver.impl.tree;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.fail;
 
-import java.util.Arrays;
-import java.util.Collections;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 
-import javax.servlet.http.HttpServletRequest;
-
 import org.apache.sling.api.resource.AbstractResource;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceMetadata;
@@ -38,16 +34,21 @@ import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.SyntheticResource;
 import org.junit.Before;
 import org.junit.Test;
+import org.mockito.Mockito;
 import org.osgi.framework.Constants;
 
 public class ResourceProviderEntryTest {
 
+    private ResourceResolver rootResolver;
+
     private ResourceProvider rootProvider;
 
     private ResourceProviderEntry root;
 
     @Before public void setUp() throws Exception {
-        rootProvider = new TestResourceProvider("/");
+        this.rootResolver = Mockito.mock(ResourceResolver.class);
+        this.rootProvider = Mockito.mock(ResourceProvider.class);
+        Mockito.when(this.rootProvider.getResource(Mockito.any(ResourceResolver.class), Mockito.anyString())).thenReturn(new TestResource(this.rootResolver));
         final Map<String, Object> props = new HashMap<String, Object>();
         props.put(Constants.SERVICE_ID, (long)0);
         root = new ResourceProviderEntry("/", new ResourceProviderHandler[]{ new ResourceProviderHandler(rootProvider, props)});
@@ -55,30 +56,33 @@ public class ResourceProviderEntryTest {
 
     @Test public void testRootProvider() {
         assertNull(root.getResource(null, null, "relpath"));
-        assertEquals(root, root.getResource(null, null, "/"));
-        assertEquals(root, root.getResource(null, null, "/rootel"));
-        assertEquals(root, root.getResource(null, null, "/rootel/child"));
-        assertEquals(root, root.getResource(null, null, "/apps/sling/sample/html.js"));
-        assertEquals(root, root.getResource(null, null,
+        assertEqualsResolver(this.rootResolver, root.getResource(null, null, "/"));
+        assertEqualsResolver(this.rootResolver, root.getResource(null, null, "/rootel"));
+        assertEqualsResolver(this.rootResolver, root.getResource(null, null, "/rootel/child"));
+        assertEqualsResolver(this.rootResolver, root.getResource(null, null, "/apps/sling/sample/html.js"));
+        assertEqualsResolver(this.rootResolver, root.getResource(null, null,
             "/apps/sling/microsling/html.js"));
     }
 
     @Test public void testAdd1Provider() {
         String firstPath = "/rootel";
-        ResourceProvider first = new TestResourceProvider(firstPath);
+        final ResourceResolver resolver = Mockito.mock(ResourceResolver.class);
+        final ResourceProvider first = Mockito.mock(ResourceProvider.class);
+        Mockito.when(first.getResource(Mockito.any(ResourceResolver.class), Mockito.startsWith(firstPath))).thenReturn(new TestResource(resolver));
+
         final Map<String, Object> firstProps = new HashMap<String, Object>();
         firstProps.put(Constants.SERVICE_ID, (long)1);
         root.addResourceProvider(firstPath, new ResourceProviderHandler(first, firstProps));
 
 
-        assertEquals(root, root.getResource(null, null, "/"));
-        assertEquals(first, root.getResource(null, null, "/rootel"));
-        assertEquals(first, root.getResource(null, null, "/rootel/html.js"));
-        assertEquals(first, root.getResource(null, null, "/rootel/child"));
-        assertEquals(first, root.getResource(null, null, "/rootel/child/html.js"));
-        assertEquals(rootProvider, root.getResource(null, null,
+        assertEqualsResolver(this.rootResolver, root.getResource(null, null, "/"));
+        assertEqualsResolver(resolver, root.getResource(null, null, "/rootel"));
+        assertEqualsResolver(resolver, root.getResource(null, null, "/rootel/html.js"));
+        assertEqualsResolver(resolver, root.getResource(null, null, "/rootel/child"));
+        assertEqualsResolver(resolver, root.getResource(null, null, "/rootel/child/html.js"));
+        assertEqualsResolver(this.rootResolver, root.getResource(null, null,
             "/apps/sling/sample/html.js"));
-        assertEquals(rootProvider, root.getResource(null, null,
+        assertEqualsResolver(this.rootResolver, root.getResource(null, null,
             "/apps/sling/microsling/html.js"));
     }
 
@@ -87,9 +91,16 @@ public class ResourceProviderEntryTest {
         String thirdPath = "/apps/sling/sample";
         String secondPath = firstPath + "/child";
 
-        ResourceProvider first = new TestResourceProvider(firstPath);
-        ResourceProvider second = new TestResourceProvider(secondPath);
-        ResourceProvider third = new TestResourceProvider(thirdPath);
+        final ResourceResolver firstResolver = Mockito.mock(ResourceResolver.class);
+        final ResourceProvider first = Mockito.mock(ResourceProvider.class);
+        Mockito.when(first.getResource(Mockito.any(ResourceResolver.class), Mockito.startsWith(firstPath))).thenReturn(new TestResource(firstResolver));
+        final ResourceResolver secondResolver = Mockito.mock(ResourceResolver.class);
+        final ResourceProvider second = Mockito.mock(ResourceProvider.class);
+        Mockito.when(second.getResource(Mockito.any(ResourceResolver.class), Mockito.startsWith(secondPath))).thenReturn(new TestResource(secondResolver));
+        final ResourceResolver thirdResolver = Mockito.mock(ResourceResolver.class);
+        final ResourceProvider third = Mockito.mock(ResourceProvider.class);
+        Mockito.when(third.getResource(Mockito.any(ResourceResolver.class), Mockito.startsWith(thirdPath))).thenReturn(new TestResource(thirdResolver));
+
         final Map<String, Object> firstProps = new HashMap<String, Object>();
         firstProps.put(Constants.SERVICE_ID, (long)1);
         final Map<String, Object> secondProps = new HashMap<String, Object>();
@@ -101,17 +112,16 @@ public class ResourceProviderEntryTest {
         root.addResourceProvider(secondPath, new ResourceProviderHandler(second, secondProps));
         root.addResourceProvider(thirdPath, new ResourceProviderHandler(third, thirdProps));
 
-
-        assertEquals(rootProvider, root.getResource(null, null, "/"));
-        assertEquals(first, root.getResource(null, null, "/rootel"));
-        assertEquals(first, root.getResource(null, null, "/rootel/html.js"));
-        assertEquals(second, root.getResource(null, null, "/rootel/child"));
-        assertEquals(second, root.getResource(null, null, "/rootel/child/html.js"));
-        assertEquals(third,
+        assertEqualsResolver(this.rootResolver, root.getResource(null, null, "/"));
+        assertEqualsResolver(firstResolver, root.getResource(null, null, "/rootel"));
+        assertEqualsResolver(firstResolver, root.getResource(null, null, "/rootel/html.js"));
+        assertEqualsResolver(secondResolver, root.getResource(null, null, "/rootel/child"));
+        assertEqualsResolver(secondResolver, root.getResource(null, null, "/rootel/child/html.js"));
+        assertEqualsResolver(thirdResolver,
             root.getResource(null, null, "/apps/sling/sample/html.js"));
-        Resource resource = root.getResource(null, null,
+        final Resource resource = root.getResource(null, null,
             "/apps/sling/microsling/html.js");
-            assertEquals(rootProvider, resource);
+        assertEqualsResolver(this.rootResolver, resource);
     }
 
     @Test public void testAdd3ProvidersReverse() {
@@ -119,9 +129,16 @@ public class ResourceProviderEntryTest {
         String thirdPath = "/apps/sling/sample";
         String secondPath = firstPath + "/child";
 
-        ResourceProvider first = new TestResourceProvider(firstPath);
-        ResourceProvider second = new TestResourceProvider(secondPath);
-        ResourceProvider third = new TestResourceProvider(thirdPath);
+        final ResourceResolver firstResolver = Mockito.mock(ResourceResolver.class);
+        final ResourceProvider first = Mockito.mock(ResourceProvider.class);
+        Mockito.when(first.getResource(Mockito.any(ResourceResolver.class), Mockito.startsWith(firstPath))).thenReturn(new TestResource(firstResolver));
+        final ResourceResolver secondResolver = Mockito.mock(ResourceResolver.class);
+        final ResourceProvider second = Mockito.mock(ResourceProvider.class);
+        Mockito.when(second.getResource(Mockito.any(ResourceResolver.class), Mockito.startsWith(secondPath))).thenReturn(new TestResource(secondResolver));
+        final ResourceResolver thirdResolver = Mockito.mock(ResourceResolver.class);
+        final ResourceProvider third = Mockito.mock(ResourceProvider.class);
+        Mockito.when(third.getResource(Mockito.any(ResourceResolver.class), Mockito.startsWith(thirdPath))).thenReturn(new TestResource(thirdResolver));
+
         final Map<String, Object> firstProps = new HashMap<String, Object>();
         firstProps.put(Constants.SERVICE_ID, (long)1);
         final Map<String, Object> secondProps = new HashMap<String, Object>();
@@ -133,16 +150,16 @@ public class ResourceProviderEntryTest {
         root.addResourceProvider(secondPath, new ResourceProviderHandler(second, secondProps));
         root.addResourceProvider(thirdPath, new ResourceProviderHandler(third, thirdProps));
 
-        assertEquals(rootProvider, root.getResource(null, null, "/"));
-        assertEquals(first, root.getResource(null, null, "/rootel"));
-        assertEquals(first, root.getResource(null, null, "/rootel/html.js"));
-        assertEquals(second, root.getResource(null, null, "/rootel/child"));
-        assertEquals(second, root.getResource(null, null, "/rootel/child/html.js"));
-        assertEquals(third,
+        assertEqualsResolver(this.rootResolver, root.getResource(null, null, "/"));
+        assertEqualsResolver(firstResolver, root.getResource(null, null, "/rootel"));
+        assertEqualsResolver(firstResolver, root.getResource(null, null, "/rootel/html.js"));
+        assertEqualsResolver(secondResolver, root.getResource(null, null, "/rootel/child"));
+        assertEqualsResolver(secondResolver, root.getResource(null, null, "/rootel/child/html.js"));
+        assertEqualsResolver(thirdResolver,
            root.getResource(null, null, "/apps/sling/sample/html.js"));
         Resource resource = root.getResource(null, null,
               "/apps/sling/microsling/html.js");
-        assertEquals(rootProvider, resource);
+        assertEqualsResolver(this.rootResolver, resource);
     }
 
     @Test public void testRemoveProviders() {
@@ -150,9 +167,16 @@ public class ResourceProviderEntryTest {
         String thirdPath = "/apps/sling/sample";
         String secondPath = firstPath + "/child";
 
-        ResourceProvider first = new TestResourceProvider(firstPath);
-        ResourceProvider second = new TestResourceProvider(secondPath);
-        ResourceProvider third = new TestResourceProvider(thirdPath);
+        final ResourceResolver firstResolver = Mockito.mock(ResourceResolver.class);
+        final ResourceProvider first = Mockito.mock(ResourceProvider.class);
+        Mockito.when(first.getResource(Mockito.any(ResourceResolver.class), Mockito.startsWith(firstPath))).thenReturn(new TestResource(firstResolver));
+        final ResourceResolver secondResolver = Mockito.mock(ResourceResolver.class);
+        final ResourceProvider second = Mockito.mock(ResourceProvider.class);
+        Mockito.when(second.getResource(Mockito.any(ResourceResolver.class), Mockito.startsWith(secondPath))).thenReturn(new TestResource(secondResolver));
+        final ResourceResolver thirdResolver = Mockito.mock(ResourceResolver.class);
+        final ResourceProvider third = Mockito.mock(ResourceProvider.class);
+        Mockito.when(third.getResource(Mockito.any(ResourceResolver.class), Mockito.startsWith(thirdPath))).thenReturn(new TestResource(thirdResolver));
+
         final Map<String, Object> firstProps = new HashMap<String, Object>();
         firstProps.put(Constants.SERVICE_ID, (long)1);
         final Map<String, Object> secondProps = new HashMap<String, Object>();
@@ -164,22 +188,22 @@ public class ResourceProviderEntryTest {
         root.addResourceProvider(secondPath, new ResourceProviderHandler(second, secondProps));
         root.addResourceProvider(thirdPath, new ResourceProviderHandler(third, thirdProps));
 
-        assertEquals(rootProvider, root.getResource(null, null, "/"));
-        assertEquals(first, root.getResource(null, null, "/rootel/html.js"));
-        assertEquals(second, root.getResource(null, null, "/rootel/child/html.js"));
+        assertEqualsResolver(this.rootResolver, root.getResource(null, null, "/"));
+        assertEqualsResolver(firstResolver, root.getResource(null, null, "/rootel/html.js"));
+        assertEqualsResolver(secondResolver, root.getResource(null, null, "/rootel/child/html.js"));
 
         root.removeResourceProvider(firstPath, new ResourceProviderHandler(first, firstProps));
 
-        assertEquals(rootProvider, root.getResource(null, null, "/"));
-        assertEquals(rootProvider, root.getResource(null, null, "/rootel/sddsf/sdfsdf/html.js"));
-        assertEquals(rootProvider, root.getResource(null, null, "/rootel/html.js"));
-        assertEquals(second, root.getResource(null, null, "/rootel/child/html.js"));
+        assertEqualsResolver(this.rootResolver, root.getResource(null, null, "/"));
+        assertEqualsResolver(this.rootResolver, root.getResource(null, null, "/rootel/sddsf/sdfsdf/html.js"));
+        assertEqualsResolver(this.rootResolver, root.getResource(null, null, "/rootel/html.js"));
+        assertEqualsResolver(secondResolver, root.getResource(null, null, "/rootel/child/html.js"));
 
         root.addResourceProvider(firstPath, new ResourceProviderHandler(first, firstProps));
 
-        assertEquals(rootProvider, root.getResource(null, null, "/"));
-        assertEquals(first, root.getResource(null, null, "/rootel/html.js"));
-        assertEquals(second, root.getResource(null, null, "/rootel/child/html.js"));
+        assertEqualsResolver(this.rootResolver, root.getResource(null, null, "/"));
+        assertEqualsResolver(firstResolver, root.getResource(null, null, "/rootel/html.js"));
+        assertEqualsResolver(secondResolver, root.getResource(null, null, "/rootel/child/html.js"));
     }
 
     @Test public void testRemoveTheOnlyProvider() {
@@ -187,14 +211,17 @@ public class ResourceProviderEntryTest {
         long counter = 1;
 
         for(String path : new String[] { "/foo", "/", "/foo/bar" }) {
-            final ResourceProvider p = new TestResourceProvider(path);
+            final ResourceResolver resolver = Mockito.mock(ResourceResolver.class);
+            final ResourceProvider p = Mockito.mock(ResourceProvider.class);
+            Mockito.when(p.getResource(Mockito.any(ResourceResolver.class), Mockito.startsWith(path))).thenReturn(new TestResource(resolver));
+
             final Map<String, Object> props = new HashMap<String, Object>();
             props.put(Constants.SERVICE_ID, ++counter);
 
             e.addResourceProvider(path, new ResourceProviderHandler(p, props));
             {
                 final Resource r = e.getResource(null, null, path);
-                assertEquals(p, r);
+                assertEqualsResolver(resolver, r);
                 assertFalse(r instanceof SyntheticResource);
             }
 
@@ -213,182 +240,20 @@ public class ResourceProviderEntryTest {
         }
     }
 
-    protected void assertEquals(ResourceProvider resProvider, Resource res) {
-        org.junit.Assert.assertEquals(resProvider, res.getResourceResolver());
-    }
-
-    protected void assertEquals(ResourceProviderEntry resProviderEntry,
-            Resource res) {
-        ProviderHandler[] resourceProviders = resProviderEntry.getResourceProviders();
-        for ( ProviderHandler rp : resourceProviders ) {
-            if ( rp.equals(res.getResourceResolver())) {
-                return;
-            }
-        }
-        fail();
-    }
-
-    // The test provider implements the ResourceResolver interface and sets
-    // itself on the returned resource. This way the assertEquals methods above
-    // may identify whether a resource has been returned from the expected
-    // ResourceProvider
-    private static class TestResourceProvider implements ResourceProvider, ResourceResolver {
-
-        private final String[] roots;
-
-        TestResourceProvider(String root) {
-            roots = new String[] { root };
-        }
-
-        public ResourceResolver clone(Map<String, Object> authenticationInfo) {
-            throw new UnsupportedOperationException("copy");
-        }
-
-        public Resource getResource(ResourceResolver resolver,
-                HttpServletRequest request, String path) {
-            return getResource(resolver, path);
-        }
-
-        public Resource getResource(ResourceResolver resolver, String path) {
-            return new TestResource(path, this);
-        }
-
-        public Iterator<Resource> listChildren(Resource parent) {
-            return null;
-        }
-
-        public Iterable<Resource> getChildren(Resource parent) {
-            return null;
-        }
-
-        // just dummy implementation to mark our resources for the tests
-        public Iterator<Resource> findResources(String query, String language) {
-            return null;
-        }
-
-        public Resource getResource(String path) {
-            return null;
-        }
-
-        public Resource getResource(Resource base, String path) {
-            return null;
-        }
-
-        public String[] getSearchPath() {
-            return null;
-        }
-
-        public String map(HttpServletRequest request, String resourcePath) {
-            return null;
-        }
-
-        public String map(String resourcePath) {
-            return null;
-        }
-
-        public Iterator<Map<String, Object>> queryResources(String query,
-                String language) {
-            return null;
-        }
-
-        public Resource resolve(HttpServletRequest request, String absPath) {
-            return null;
-        }
-
-        public Resource resolve(HttpServletRequest request) {
-            return null;
-        }
-
-        public Resource resolve(String absPath) {
-            return null;
-        }
-
-        public <AdapterType> AdapterType adaptTo(Class<AdapterType> type) {
-            return null;
-        }
-
-        /**
-         * {@inheritDoc}
-         * @see java.lang.Object#toString()
-         */
-        @Override
-        public String toString() {
-            return Arrays.toString(roots);
-        }
-
-        public boolean isLive() {
-            return true;
-        }
-
-        public void close() {
-            // nothing to do
-        }
-
-        public String getUserID() {
-            return null;
-        }
-
-        public Object getAttribute(String name) {
-            return null;
-        }
-
-        public Iterator<String> getAttributeNames() {
-            return Collections.<String> emptyList().iterator();
-        }
-
-        public void delete(Resource resource) {
-            // TODO Auto-generated method stub
-        }
-
-        public Resource create(Resource parent, String name, Map<String, Object> properties) {
-            // TODO Auto-generated method stub
-            return null;
-        }
-
-        public void revert() {
-            // TODO Auto-generated method stub
-
-        }
-
-        public void commit() {
-            // TODO Auto-generated method stub
-
-        }
-
-        public boolean hasChanges() {
-            // TODO Auto-generated method stub
-            return false;
-        }
-
-        public String getResourceSuperType(Resource resource) {
-            // TODO Auto-generated method stub
-            return null;
-        }
-
-        public String getResourceSuperType(String resourceType) {
-            // TODO Auto-generated method stub
-            return null;
-        }
-
-        public boolean isResourceType(Resource resource, String resourceType) {
-            // TODO Auto-generated method stub
-            return false;
-        }
+    private void assertEqualsResolver(final ResourceResolver resolver, final Resource res) {
+        assertEquals(resolver, res.getResourceResolver());
     }
 
     private static class TestResource extends AbstractResource {
 
-        private final String path;
-
         private final ResourceResolver resourceResolver;
 
-        public TestResource(String path, ResourceResolver resourceResolver) {
-            this.path = path;
+        public TestResource(ResourceResolver resourceResolver) {
             this.resourceResolver = resourceResolver;
         }
 
         public String getPath() {
-            return path;
+            return null;
         }
 
         public ResourceMetadata getResourceMetadata() {

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.