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.0
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-resourceresolver-mock.git

commit 50f242e58f00ba92459527a0444e691a8e3e94ed
Author: Stefan Seifert <[email protected]>
AuthorDate: Tue Oct 28 10:17:59 2014 +0000

    SLING-4108 JCR/Sling/ResourceResolver Mock: Support providing 
authentication info
    
    git-svn-id: 
https://svn.apache.org/repos/asf/sling/trunk/testing/mocks/resourceresolver-mock@1634835
 13f79535-47bb-0310-9956-ffa450edef68
---
 .../resourceresolver/MockResourceResolver.java     | 15 +++-
 .../MockResourceResolverFactory.java               |  9 ++-
 .../ResourceResolverLoginTest.java                 | 92 ++++++++++++++++++++++
 3 files changed, 112 insertions(+), 4 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 9798b2f..fb09ba9 100644
--- 
a/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java
+++ 
b/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java
@@ -53,13 +53,23 @@ public class MockResourceResolver extends SlingAdaptable 
implements ResourceReso
     private final MockResourceResolverFactoryOptions options;
 
     private final MockResourceResolverFactory factory;
+    
+    private final Map<String,Object> attributes;
 
     public MockResourceResolver(final MockResourceResolverFactoryOptions 
options,
             final MockResourceResolverFactory factory,
             final Map<String, Map<String, Object>> resources) {
+        this(options, factory, resources, 
Collections.<String,Object>emptyMap());
+    }
+
+    public MockResourceResolver(final MockResourceResolverFactoryOptions 
options,
+            final MockResourceResolverFactory factory,
+            final Map<String, Map<String, Object>> resources,
+            final Map<String,Object> attributes) {
         this.factory = factory;
         this.options = options;
         this.resources = resources;
+        this.attributes = attributes;
     }
 
     @Override
@@ -268,13 +278,12 @@ public class MockResourceResolver extends SlingAdaptable 
implements ResourceReso
 
     @Override
     public Iterator<String> getAttributeNames() {
-        final List<String> emptyList = Collections.emptyList();
-        return emptyList.iterator();
+        return attributes.keySet().iterator();
     }
 
     @Override
     public Object getAttribute(final String name) {
-        return null;
+        return attributes.get(name);
     }
 
     @Override
diff --git 
a/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolverFactory.java
 
b/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolverFactory.java
index cd4b067..5fee285 100644
--- 
a/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolverFactory.java
+++ 
b/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolverFactory.java
@@ -64,7 +64,14 @@ public class MockResourceResolverFactory implements 
ResourceResolverFactory {
     @Override
     public ResourceResolver getResourceResolver(
             final Map<String, Object> authenticationInfo) throws 
LoginException {
-        final ResourceResolver result = new MockResourceResolver(options, 
this, resources);
+        
+        // put user name in resolver attributes
+        Map<String,Object> attributes = new HashMap<String, Object>();
+        if (authenticationInfo!=null) {
+            attributes.put(ResourceResolverFactory.USER, 
authenticationInfo.get(ResourceResolverFactory.USER));
+        }
+        
+        final ResourceResolver result = new MockResourceResolver(options, 
this, resources, attributes);
         Stack<ResourceResolver> resolverStack = resolverStackHolder.get();
         if ( resolverStack == null ) {
             resolverStack = new Stack<ResourceResolver>();
diff --git 
a/src/test/java/org/apache/sling/testing/resourceresolver/ResourceResolverLoginTest.java
 
b/src/test/java/org/apache/sling/testing/resourceresolver/ResourceResolverLoginTest.java
new file mode 100644
index 0000000..13adf0b
--- /dev/null
+++ 
b/src/test/java/org/apache/sling/testing/resourceresolver/ResourceResolverLoginTest.java
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.testing.resourceresolver;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import java.util.Map;
+
+import org.apache.sling.api.resource.LoginException;
+import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.api.resource.ResourceResolverFactory;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.google.common.collect.ImmutableMap;
+
+/**
+ * Test different variants of login for resource resolver.
+ */
+public class ResourceResolverLoginTest {
+
+    private static final Map<String,Object> AUTH_INFO = ImmutableMap.<String, 
Object>of(
+                ResourceResolverFactory.USER, "myUser");
+    
+    private MockResourceResolverFactory factory;
+    
+    @Before
+    public void setUp() {
+        factory = new MockResourceResolverFactory();
+    }
+
+    @Test
+    public void testGetResourceResolverWithoutAuthInfo() throws LoginException 
{
+        ResourceResolver resolver = factory.getResourceResolver(null);
+        assertNotNull(resolver);
+        assertNull(resolver.getAttribute(ResourceResolverFactory.USER));
+    }
+
+    @Test
+    public void testGetResourceResolverWithAuthInfo() throws LoginException {
+        ResourceResolver resolver = factory.getResourceResolver(AUTH_INFO);
+        assertNotNull(resolver);
+        assertEquals("myUser", 
resolver.getAttribute(ResourceResolverFactory.USER));
+    }
+
+    @Test
+    public void testGetAdministrativeResourceResolverWithoutAuthInfo() throws 
LoginException {
+        ResourceResolver resolver = 
factory.getAdministrativeResourceResolver(null);
+        assertNotNull(resolver);
+        assertNull(resolver.getAttribute(ResourceResolverFactory.USER));
+    }
+
+    @Test
+    public void testGetAdminstrativeResourceResolverWithAuthInfo() throws 
LoginException {
+        ResourceResolver resolver = 
factory.getAdministrativeResourceResolver(AUTH_INFO);
+        assertNotNull(resolver);
+        assertNull(resolver.getAttribute(ResourceResolverFactory.USER));
+    }
+
+    @Test
+    public void testGetServiceResourceResolverWithoutAuthInfo() throws 
LoginException {
+        ResourceResolver resolver = factory.getServiceResourceResolver(null);
+        assertNotNull(resolver);
+        assertNull(resolver.getAttribute(ResourceResolverFactory.USER));
+    }
+
+    @Test
+    public void testGetServiceResourceResolverWithAuthInfo() throws 
LoginException {
+        ResourceResolver resolver = 
factory.getServiceResourceResolver(AUTH_INFO);
+        assertNotNull(resolver);
+        assertNull(resolver.getAttribute(ResourceResolverFactory.USER));
+    }
+
+}

-- 
To stop receiving notification emails like this one, please contact
"[email protected]" <[email protected]>.

Reply via email to