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>.