You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by an...@apache.org on 2017/05/11 16:07:59 UTC

svn commit: r1794851 - in /jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak: security/user/action/ spi/security/user/action/

Author: angela
Date: Thu May 11 16:07:58 2017
New Revision: 1794851

URL: http://svn.apache.org/viewvc?rev=1794851&view=rev
Log:
OAK-6038 : Drop dependency of spi.security.* tests from AbstractSecurityTest (wip

Added:
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/ClearMembershipActionTest.java
      - copied, changed from r1794697, jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/ClearMembershipActionTest.java
Modified:
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AccessControlActionTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/ClearMembershipActionTest.java

Copied: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/ClearMembershipActionTest.java (from r1794697, jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/ClearMembershipActionTest.java)
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/ClearMembershipActionTest.java?p2=jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/ClearMembershipActionTest.java&p1=jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/ClearMembershipActionTest.java&r1=1794697&r2=1794851&rev=1794851&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/ClearMembershipActionTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/ClearMembershipActionTest.java Thu May 11 16:07:58 2017
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.jackrabbit.oak.spi.security.user.action;
+package org.apache.jackrabbit.oak.security.user.action;
 
 import java.util.UUID;
 
@@ -23,11 +23,18 @@ import org.apache.jackrabbit.api.securit
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
 import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
+import org.apache.jackrabbit.oak.spi.security.user.action.ClearMembershipAction;
 import org.junit.Test;
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+/**
+ * Integration tests for {@link ClearMembershipAction} including a complete
+ * security setup.
+ *
+ * @see {@link org.apache.jackrabbit.oak.spi.security.user.action.ClearMembershipActionTest}
+ */
 public class ClearMembershipActionTest extends AbstractSecurityTest {
 
     private ClearMembershipAction action;

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AccessControlActionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AccessControlActionTest.java?rev=1794851&r1=1794850&r2=1794851&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AccessControlActionTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AccessControlActionTest.java Thu May 11 16:07:58 2017
@@ -106,11 +106,6 @@ public class AccessControlActionTest imp
         return gr;
     }
 
-    @Test
-    public void testInit() {
-        // TODO
-    }
-
     @Test(expected = IllegalStateException.class)
     public void testOnCreateUserMissingSecurityProvider() throws Exception {
         new AccessControlAction().onCreate(Mockito.mock(User.class), null, root, NamePathMapper.DEFAULT);

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/ClearMembershipActionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/ClearMembershipActionTest.java?rev=1794851&r1=1794850&r2=1794851&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/ClearMembershipActionTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/ClearMembershipActionTest.java Thu May 11 16:07:58 2017
@@ -16,85 +16,190 @@
  */
 package org.apache.jackrabbit.oak.spi.security.user.action;
 
-import java.util.UUID;
+import java.security.Principal;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+import javax.jcr.RepositoryException;
+import javax.jcr.UnsupportedRepositoryOperationException;
+import javax.jcr.Value;
 
+import com.google.common.collect.Iterators;
+import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.api.security.user.Group;
 import org.apache.jackrabbit.api.security.user.User;
-import org.apache.jackrabbit.oak.AbstractSecurityTest;
+import org.apache.jackrabbit.api.security.user.UserManager;
+import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
+import org.apache.jackrabbit.oak.spi.security.SecurityProvider;
+import org.apache.jackrabbit.oak.spi.security.user.UserConfiguration;
+import org.junit.Before;
 import org.junit.Test;
+import org.mockito.Mockito;
 
-import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.when;
 
-public class ClearMembershipActionTest extends AbstractSecurityTest {
+public class ClearMembershipActionTest {
 
-    private ClearMembershipAction action;
+    private final ClearMembershipAction action = new ClearMembershipAction();
 
-    private Group gr;
+    private final Root root = Mockito.mock(Root.class);
+    private final SecurityProvider securityProvider = Mockito.mock(SecurityProvider.class);
 
-    @Override
-    public void before() throws Exception {
-        super.before();
-
-        gr = getUserManager(root).createGroup("gr" + UUID.randomUUID().toString());
-        root.commit();
+    private final UserManager userManager = Mockito.mock(UserManager.class);
+    private final UserConfiguration userConfiguration = Mockito.mock(UserConfiguration.class);
 
-        action = new ClearMembershipAction();
-        action.init(getSecurityProvider(), ConfigurationParameters.EMPTY);
-    }
+    private final User user = Mockito.mock(User.class);
+    private final TestGroup gr = new TestGroup();
 
-    @Override
-    public void after() throws Exception {
-        try {
-            if (gr != null) {
-                gr.remove();
-                root.commit();
-            }
-        } finally {
-            super.after();
-        }
+    @Before
+    public void before() throws Exception {
+        action.init(securityProvider, ConfigurationParameters.EMPTY);
     }
 
     @Test
-    public void testOnCreateUser() throws Exception {
-        action.onCreate(getTestUser(), "pw", root, NamePathMapper.DEFAULT);
-        assertFalse(root.hasPendingChanges());
+    public void testOnRemoveUserNoMembership() throws Exception {
+        when(user.declaredMemberOf()).thenReturn(Iterators.emptyIterator());
+        action.onRemove(user, root, NamePathMapper.DEFAULT);
     }
 
     @Test
-    public void testOnCreateGroup() throws Exception {
-        action.onCreate(gr, root, NamePathMapper.DEFAULT);
-        assertFalse(root.hasPendingChanges());
+    public void testOnRemoveGroupNoMembership() throws Exception {
+        action.onRemove(gr, root, NamePathMapper.DEFAULT);
     }
 
     @Test
-    public void testOnPwChange() throws Exception {
-        action.onPasswordChange(getTestUser(), "newPw", root, NamePathMapper.DEFAULT);
-        assertFalse(root.hasPendingChanges());
-    }
+    public void testOnRemoveUserWithMembership() throws Exception {
+        when(user.declaredMemberOf()).thenReturn(Iterators.singletonIterator(gr));
 
-    @Test
-    public void testOnRemoveUserNoMembership() throws Exception {
-        action.onRemove(getTestUser(), root, NamePathMapper.DEFAULT);
-        assertFalse(root.hasPendingChanges());
+        action.onRemove(user, root, NamePathMapper.DEFAULT);
+        assertTrue(gr.removed.contains(user));
     }
 
     @Test
-    public void testOnRemoveGroupNoMembership() throws Exception {
-        action.onRemove(gr, root, NamePathMapper.DEFAULT);
-        assertFalse(root.hasPendingChanges());
+    public void testOnRemoveGroupWithMembership() throws Exception {
+        Group memberGroup = Mockito.mock(Group.class);
+        when(memberGroup.declaredMemberOf()).thenReturn(Iterators.singletonIterator(gr));
+
+        action.onRemove(memberGroup, root, NamePathMapper.DEFAULT);
+        assertTrue(gr.removed.contains(memberGroup));
     }
 
-    @Test
-    public void testOnRemoveUserWithMembership() throws Exception {
-        User u = getTestUser();
-        gr.addMember(u);
-        root.commit();
-
-        action.onRemove(u, root, NamePathMapper.DEFAULT);
-        assertTrue(root.hasPendingChanges());
-        assertFalse(gr.isDeclaredMember(u));
+
+    private static final class TestGroup implements Group {
+
+        Set<Authorizable> removed = new HashSet<>();
+
+        @Override
+        public Iterator<Authorizable> getDeclaredMembers() throws RepositoryException {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public Iterator<Authorizable> getMembers() throws RepositoryException {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public boolean isDeclaredMember(Authorizable authorizable) throws RepositoryException {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public boolean isMember(Authorizable authorizable) throws RepositoryException {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public boolean addMember(Authorizable authorizable) throws RepositoryException {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public Set<String> addMembers(String... strings) throws RepositoryException {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public boolean removeMember(Authorizable authorizable) throws RepositoryException {
+            return removed.add(authorizable);
+        }
+
+        @Override
+        public Set<String> removeMembers(String... strings) throws RepositoryException {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public String getID() throws RepositoryException {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public boolean isGroup() {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public Principal getPrincipal() throws RepositoryException {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public Iterator<Group> declaredMemberOf() throws RepositoryException {
+            return Iterators.emptyIterator();
+        }
+
+        @Override
+        public Iterator<Group> memberOf() throws RepositoryException {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void remove() throws RepositoryException {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public Iterator<String> getPropertyNames() throws RepositoryException {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public Iterator<String> getPropertyNames(String s) throws RepositoryException {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public boolean hasProperty(String s) throws RepositoryException {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void setProperty(String s, Value value) throws RepositoryException {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void setProperty(String s, Value[] values) throws RepositoryException {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public Value[] getProperty(String s) throws RepositoryException {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public boolean removeProperty(String s) throws RepositoryException {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public String getPath() throws UnsupportedRepositoryOperationException, RepositoryException {
+            throw new UnsupportedOperationException();
+        }
     }
 }
\ No newline at end of file