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 2020/11/24 12:08:06 UTC

svn commit: r1883784 [2/2] - in /jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak: plugins/tree/ spi/security/ spi/security/authentication/ spi/security/authentication/credentials/ spi/security/authentication/token/ spi/sec...

Modified: jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/privilege/ImmutablePrivilegeDefinitionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/privilege/ImmutablePrivilegeDefinitionTest.java?rev=1883784&r1=1883783&r2=1883784&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/privilege/ImmutablePrivilegeDefinitionTest.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/privilege/ImmutablePrivilegeDefinitionTest.java Tue Nov 24 12:08:05 2020
@@ -28,7 +28,7 @@ import static org.mockito.Mockito.when;
 
 public class ImmutablePrivilegeDefinitionTest {
 
-    private ImmutablePrivilegeDefinition def = new ImmutablePrivilegeDefinition("name", true, ImmutableList.of("aggrName"));
+    private final ImmutablePrivilegeDefinition def = new ImmutablePrivilegeDefinition("name", true, ImmutableList.of("aggrName"));
 
     @Test
     public void testGetName() {
@@ -82,6 +82,6 @@ public class ImmutablePrivilegeDefinitio
     public void testToString() {
         assertEquals(def.toString(), def.toString());
         assertEquals(def.toString(), new ImmutablePrivilegeDefinition(def.getName(), def.isAbstract(), def.getDeclaredAggregateNames()).toString());
-        assertNotEquals(def.toString(), new ImmutablePrivilegeDefinition(def.getName(), def.isAbstract(), ImmutableList.of()));
+        assertEquals(def.toString(), new ImmutablePrivilegeDefinition(def.getName(), def.isAbstract(), ImmutableList.of()).toString());
     }
 }
\ No newline at end of file

Modified: jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/privilege/PrivilegeUtilTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/privilege/PrivilegeUtilTest.java?rev=1883784&r1=1883783&r2=1883784&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/privilege/PrivilegeUtilTest.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/privilege/PrivilegeUtilTest.java Tue Nov 24 12:08:05 2020
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.privilege;
 
-import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
 import org.apache.jackrabbit.oak.api.Root;

Modified: jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AbstractAuthorizableActionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AbstractAuthorizableActionTest.java?rev=1883784&r1=1883783&r2=1883784&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AbstractAuthorizableActionTest.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AbstractAuthorizableActionTest.java Tue Nov 24 12:08:05 2020
@@ -16,30 +16,52 @@
  */
 package org.apache.jackrabbit.oak.spi.security.user.action;
 
+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.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.junit.Test;
 
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verifyNoInteractions;
+
 public class AbstractAuthorizableActionTest {
 
-    private AuthorizableAction action = new AbstractAuthorizableAction() {};
+    private final AuthorizableAction action = new AbstractAuthorizableAction() {};
+
+    private final Root root = mock(Root.class);
+    private final NamePathMapper namePathMapper = mock(NamePathMapper.class);
 
     @Test
     public void testInit() {
-        action.init(null, null);
+        SecurityProvider securityProvider = mock(SecurityProvider.class);
+        action.init(securityProvider, ConfigurationParameters.EMPTY);
+        verifyNoInteractions(securityProvider);
     }
 
     @Test
     public void testOnCreate() throws Exception {
-        action.onCreate(null, null, null);
-        action.onCreate(null, null, null, null);
+        Group gr = mock(Group.class);
+        action.onCreate(gr, root, namePathMapper);
+        User user = mock(User.class);
+        action.onCreate(user, null, root, namePathMapper);
+        verifyNoInteractions(user, gr, root, namePathMapper);
     }
 
     @Test
     public void testOnRemove() throws Exception {
-        action.onRemove(null, null, null);
+        Authorizable authorizable = mock(Authorizable.class);
+        action.onRemove(authorizable, root, namePathMapper);
+        verifyNoInteractions(authorizable, root, namePathMapper);
     }
 
     @Test
     public void testOnPasswordChange() throws Exception {
-        action.onPasswordChange(null, null, null, null);
+        User user = mock(User.class);
+        action.onPasswordChange(user, null, root, namePathMapper);
+        verifyNoInteractions(user, root, namePathMapper);
     }
 }
\ No newline at end of file

Modified: jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AbstractGroupActionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AbstractGroupActionTest.java?rev=1883784&r1=1883783&r2=1883784&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AbstractGroupActionTest.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AbstractGroupActionTest.java Tue Nov 24 12:08:05 2020
@@ -24,6 +24,8 @@ import org.apache.jackrabbit.oak.namepat
 import org.junit.Test;
 import org.mockito.Mockito;
 
+import static org.mockito.Mockito.verifyNoInteractions;
+
 public class AbstractGroupActionTest {
 
     private final GroupAction groupAction = new AbstractGroupAction() {};
@@ -37,25 +39,30 @@ public class AbstractGroupActionTest {
     @Test
     public void testMemberAdded() throws Exception {
         groupAction.onMemberAdded(group, user, root, namePathMapper);
+        verifyNoInteractions(group, user, root, namePathMapper);
     }
 
     @Test
     public void testMemberRemoved() throws Exception {
         groupAction.onMemberRemoved(group, user, root, namePathMapper);
+        verifyNoInteractions(group, user, root, namePathMapper);
     }
 
     @Test
     public void testMembersAdded() throws Exception {
         groupAction.onMembersAdded(group, ImmutableSet.of("user1", "user2"), ImmutableSet.<String>of(), root, namePathMapper);
+        verifyNoInteractions(group, user, root, namePathMapper);
     }
 
     @Test
     public void testMembersAddedContentId() throws Exception {
         groupAction.onMembersAddedContentId(group, ImmutableSet.of("user1", "user2"), ImmutableSet.<String>of(), root, namePathMapper);
+        verifyNoInteractions(group, user, root, namePathMapper);
     }
 
     @Test
     public void testMembersRemoved() throws Exception {
         groupAction.onMembersRemoved(group, ImmutableSet.of("user1", "user2"), ImmutableSet.<String>of(), root, namePathMapper);
+        verifyNoInteractions(group, user, root, namePathMapper);
     }
 }

Modified: jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AccessControlActionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AccessControlActionTest.java?rev=1883784&r1=1883783&r2=1883784&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AccessControlActionTest.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/AccessControlActionTest.java Tue Nov 24 12:08:05 2020
@@ -16,12 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.user.action;
 
-import javax.jcr.RepositoryException;
-import javax.jcr.security.AccessControlManager;
-import javax.jcr.security.AccessControlPolicy;
-import javax.jcr.security.AccessControlPolicyIterator;
-import javax.jcr.security.Privilege;
-
 import com.google.common.collect.ImmutableList;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
 import org.apache.jackrabbit.api.security.user.Authorizable;
@@ -41,13 +35,19 @@ import org.apache.jackrabbit.oak.spi.sec
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 import org.junit.Test;
-import org.mockito.Mockito;
 
+import javax.jcr.RepositoryException;
+import javax.jcr.security.AccessControlManager;
+import javax.jcr.security.AccessControlPolicy;
+import javax.jcr.security.Privilege;
 import java.security.Principal;
 
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.when;
 
 /**
@@ -158,6 +158,9 @@ public class AccessControlActionTest imp
             // throw upon getPrincipal as onCreate for builtin users must not reach that statement
             User user = mockUser(id, null, null);
             action.onCreate(user, null, root, NamePathMapper.DEFAULT);
+            verify(user, times(2)).getID();
+            verify(user, never()).getPrincipal();
+            verify(user, never()).getPath();
         }
     }
 
@@ -169,6 +172,9 @@ public class AccessControlActionTest imp
         // the check for built-in user must ignore groups
         Group gr = mockGroup("adminIdIsUsedByGroup", null, null);
         action.onCreate(gr, root, NamePathMapper.DEFAULT);
+        verify(gr).getID();
+        verify(gr, never()).getPrincipal();
+        verify(gr, never()).getPath();
     }
 
     @Test
@@ -179,7 +185,8 @@ public class AccessControlActionTest imp
         // throw upon getPrincipal as onCreate without configured privileges call must not reach that statement
         User user = mockUser("id", null, null);
         action.onCreate(user, null, root, NamePathMapper.DEFAULT);
-    }
+        verify(user).isGroup();
+        verifyNoMoreInteractions(user);    }
 
     @Test
     public void testOnCreateGroupEmptyPrivs() throws Exception {
@@ -189,6 +196,8 @@ public class AccessControlActionTest imp
         // throw upon getPrincipal as onCreate without configured privileges call must not reach that statement
         Group gr = mockGroup("id", null, null);
         action.onCreate(gr, root, NamePathMapper.DEFAULT);
+        verify(gr).isGroup();
+        verifyNoMoreInteractions(gr);
     }
 
     @Test
@@ -199,6 +208,9 @@ public class AccessControlActionTest imp
         // throw upon getPath as onCreate for administrative principal call must not reach that statement
         User user = mockUser("id", "administrativePrincipal", null);
         action.onCreate(user, null, root, NamePathMapper.DEFAULT);
+        verify(user).getID();
+        verify(user).getPrincipal();
+        verify(user, never()).getPath();
     }
 
     @Test
@@ -209,6 +221,10 @@ public class AccessControlActionTest imp
         // throw upon getPath as onCreate for administrative principal call must not reach that statement
         Group gr = mockGroup("id", "administrativePrincipal", null);
         action.onCreate(gr, root, NamePathMapper.DEFAULT);
+        verify(gr).isGroup();
+        verify(gr).getPrincipal();
+        verify(gr, never()).getID();
+        verify(gr, never()).getPath();
     }
 
 
@@ -237,7 +253,9 @@ public class AccessControlActionTest imp
         initSecurityProvider(mockAccessControlManager(false), DEFAULT_ADMIN_ID, DEFAULT_ANONYMOUS_ID);
         AccessControlAction action = createAction(PrivilegeConstants.JCR_READ);
 
-        action.onCreate(mockUser("userId", "pName", "/none"), "pw", root, NamePathMapper.DEFAULT);
+        User user = mockUser("userId", "pName", "/none");
+        action.onCreate(user, "pw", root, NamePathMapper.DEFAULT);
+        verifyInvokations(user, false);
     }
 
     @Test
@@ -245,7 +263,9 @@ public class AccessControlActionTest imp
         initSecurityProvider(mockAccessControlManager(false), DEFAULT_ADMIN_ID, DEFAULT_ANONYMOUS_ID);
         AccessControlAction action = createAction(PrivilegeConstants.JCR_READ);
 
-        action.onCreate(mockGroup("grId", "pName", "/nonACL"), root, NamePathMapper.DEFAULT);
+        Group gr = mockGroup("grId", "pName", "/nonACL");
+        action.onCreate(gr, root, NamePathMapper.DEFAULT);
+        verifyInvokations(gr, false);
     }
 
     @Test
@@ -253,7 +273,9 @@ public class AccessControlActionTest imp
         initSecurityProvider(mockAccessControlManager(false), DEFAULT_ADMIN_ID, DEFAULT_ANONYMOUS_ID);
         AccessControlAction action = createAction(PrivilegeConstants.JCR_READ);
 
-        action.onCreate(mockGroup("grId", "pName", "/acl"), root, NamePathMapper.DEFAULT);
+        Group gr = mockGroup("grId", "pName", "/acl");
+        action.onCreate(gr, root, NamePathMapper.DEFAULT);
+        verifyInvokations(gr, true);
     }
 
     @Test
@@ -261,6 +283,14 @@ public class AccessControlActionTest imp
         initSecurityProvider(mockAccessControlManager(true), DEFAULT_ADMIN_ID, DEFAULT_ANONYMOUS_ID);
         AccessControlAction action = createAction(PrivilegeConstants.JCR_READ);
 
-        action.onCreate(mockUser("userId", "pName", "/acl"), "pw", root, NamePathMapper.DEFAULT);
+        User user = mockUser("userId", "pName", "/acl");
+        action.onCreate(user, "pw", root, NamePathMapper.DEFAULT);
+        verifyInvokations(user, true);
+    }
+
+    private static void verifyInvokations(@NotNull Authorizable a, boolean hasApplicable) throws RepositoryException {
+        verify(a).getPath();
+        int cnt = (hasApplicable) ? 2 : 1;
+        verify(a, times(cnt)).getPrincipal();
     }
 }

Modified: jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/ClearMembershipActionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/ClearMembershipActionTest.java?rev=1883784&r1=1883783&r2=1883784&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/ClearMembershipActionTest.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/ClearMembershipActionTest.java Tue Nov 24 12:08:05 2020
@@ -39,6 +39,7 @@ import org.junit.Test;
 import org.mockito.Mockito;
 
 import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.verifyNoInteractions;
 import static org.mockito.Mockito.when;
 
 public class ClearMembershipActionTest {
@@ -63,11 +64,13 @@ public class ClearMembershipActionTest {
     public void testOnRemoveUserNoMembership() throws Exception {
         when(user.declaredMemberOf()).thenReturn(Collections.emptyIterator());
         action.onRemove(user, root, NamePathMapper.DEFAULT);
+        verifyNoInteractions(root);
     }
 
     @Test
     public void testOnRemoveGroupNoMembership() throws Exception {
         action.onRemove(gr, root, NamePathMapper.DEFAULT);
+        verifyNoInteractions(root);
     }
 
     @Test

Modified: jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/CompositeActionProviderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/CompositeActionProviderTest.java?rev=1883784&r1=1883783&r2=1883784&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/CompositeActionProviderTest.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/CompositeActionProviderTest.java Tue Nov 24 12:08:05 2020
@@ -59,7 +59,7 @@ public class CompositeActionProviderTest
     }
 
 
-    private final class TestAuthorizableActionProvider implements AuthorizableActionProvider {
+    private static final class TestAuthorizableActionProvider implements AuthorizableActionProvider {
 
         @NotNull
         @Override
@@ -69,7 +69,6 @@ public class CompositeActionProviderTest
     }
 
     private static final class TestAction extends AbstractAuthorizableAction {
-
         private static final AuthorizableAction INSTANCE = new TestAction();
     }
 }

Modified: jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/PasswordChangeActionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/PasswordChangeActionTest.java?rev=1883784&r1=1883783&r2=1883784&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/PasswordChangeActionTest.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/PasswordChangeActionTest.java Tue Nov 24 12:08:05 2020
@@ -16,8 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.user.action;
 
-import javax.jcr.nodetype.ConstraintViolationException;
-
 import org.apache.jackrabbit.api.security.user.User;
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.api.Tree;
@@ -32,6 +30,10 @@ import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
 
+import javax.jcr.nodetype.ConstraintViolationException;
+
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.when;
 
 public class PasswordChangeActionTest {
@@ -77,14 +79,14 @@ public class PasswordChangeActionTest {
     @Test
     public void testPasswordChange() throws Exception {
         pwChangeAction.onPasswordChange(user, "changedPassword", createRoot("pw"), namePathMapper);
+        verify(user).getPath();
+        verifyNoMoreInteractions(user);
     }
 
     @Test
     public void testUserWithoutPassword() throws Exception {
-        try {
-            pwChangeAction.onPasswordChange(user, "changedPassword", createRoot(null), namePathMapper);
-        } finally {
-            user.remove();
-        }
+        pwChangeAction.onPasswordChange(user, "changedPassword", createRoot(null), namePathMapper);
+        verify(user).getPath();
+        verifyNoMoreInteractions(user);
     }
 }

Modified: jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/PasswordValidationActionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/PasswordValidationActionTest.java?rev=1883784&r1=1883783&r2=1883784&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/PasswordValidationActionTest.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/PasswordValidationActionTest.java Tue Nov 24 12:08:05 2020
@@ -29,11 +29,11 @@ import org.apache.jackrabbit.oak.spi.sec
 import org.apache.jackrabbit.oak.spi.security.user.util.PasswordUtil;
 import org.junit.Before;
 import org.junit.Test;
-import org.mockito.Mockito;
 
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.fail;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verifyNoInteractions;
 
 public class PasswordValidationActionTest {
 
@@ -55,26 +55,31 @@ public class PasswordValidationActionTes
     @Test
     public void testOnCreateNullPw() throws Exception {
         pwAction.onCreate(user, null, root, namePathMapper);
+        verifyNoInteractions(user, root, namePathMapper);
     }
 
     @Test(expected = ConstraintViolationException.class)
     public void testOnCreateInvalidPw() throws Exception {
         pwAction.onCreate(user, "pw", root, namePathMapper);
+        verifyNoInteractions(user, root, namePathMapper);
     }
 
     @Test(expected = ConstraintViolationException.class)
     public void testOnCreateEmptyPw() throws Exception {
         pwAction.onCreate(user, "", root, namePathMapper);
+        verifyNoInteractions(user, root, namePathMapper);
     }
 
     @Test
     public void testOnCreateValidPw() throws Exception {
         pwAction.onCreate(user, "abCDefGH", root, namePathMapper);
+        verifyNoInteractions(user, root, namePathMapper);
     }
 
     @Test
     public void testOnCreateHashedInvalidPw() throws Exception {
         pwAction.onCreate(user, PasswordUtil.buildPasswordHash("pw1"), root, namePathMapper);
+        verifyNoInteractions(user, root, namePathMapper);
     }
 
     @Test
@@ -108,6 +113,7 @@ public class PasswordValidationActionTes
         for (String pw : valid) {
             pwAction.onPasswordChange(user, pw, root, namePathMapper);
         }
+        verifyNoInteractions(user, root, namePathMapper);
     }
 
     @Test(expected = ConstraintViolationException.class)
@@ -122,6 +128,7 @@ public class PasswordValidationActionTes
     public void testOnPasswordChangeNullPw() throws Exception {
         pwAction.init(securityProvider, ConfigurationParameters.of(PasswordValidationAction.CONSTRAINT, "abc"));
         pwAction.onPasswordChange(user, null, root, namePathMapper);
+        verifyNoInteractions(user, root, namePathMapper);
     }
 
     @Test
@@ -138,5 +145,6 @@ public class PasswordValidationActionTes
         // no pattern gets evaluated
         action.onCreate(user, null, root, namePathMapper);
         action.onPasswordChange(user, "]", root, namePathMapper);
+        verifyNoInteractions(user, root, namePathMapper);
     }
 }

Modified: jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/util/PasswordUtilTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/util/PasswordUtilTest.java?rev=1883784&r1=1883783&r2=1883784&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/util/PasswordUtilTest.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/util/PasswordUtilTest.java Tue Nov 24 12:08:05 2020
@@ -32,6 +32,7 @@ import org.junit.Test;
 import static org.apache.jackrabbit.oak.spi.security.user.util.PasswordUtil.DEFAULT_ALGORITHM;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 import static org.junit.Assume.assumeFalse;
@@ -65,7 +66,7 @@ public class PasswordUtilTest {
     public void testBuildPasswordHash() throws Exception {
         for (String pw : plainPasswords) {
             String pwHash = PasswordUtil.buildPasswordHash(pw);
-            assertFalse(pw.equals(pwHash));
+            assertNotEquals(pw, pwHash);
         }
 
         List<Integer[]> l = new ArrayList<>();
@@ -80,7 +81,7 @@ public class PasswordUtilTest {
                 int iterations = params[1];
 
                 String pwHash = PasswordUtil.buildPasswordHash(pw, DEFAULT_ALGORITHM, saltsize, iterations);
-                assertFalse(pw.equals(pwHash));
+                assertNotEquals(pw, pwHash);
             }
         }
     }
@@ -161,10 +162,7 @@ public class PasswordUtilTest {
 
     @Test
     public void testIsSame() throws Exception {
-        for (String pw : hashedPasswords.keySet()) {
-            String pwHash = hashedPasswords.get(pw);
-            assertTrue("Not the same " + pw + ", " + pwHash, PasswordUtil.isSame(pwHash, pw));
-        }
+        hashedPasswords.forEach((pw, pwHash) -> assertTrue("Not the same " + pw + ", " + pwHash, PasswordUtil.isSame(pwHash, pw)));
 
         String pw = "password";
         String pwHash = PasswordUtil.buildPasswordHash(pw, "SHA-1", 4, 50);

Modified: jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/util/UserUtilTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/util/UserUtilTest.java?rev=1883784&r1=1883783&r2=1883784&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/util/UserUtilTest.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/util/UserUtilTest.java Tue Nov 24 12:08:05 2020
@@ -16,8 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.user.util;
 
-import java.util.List;
-import java.util.Map;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import org.apache.jackrabbit.JcrConstants;
@@ -36,16 +34,23 @@ import org.apache.jackrabbit.oak.spi.xml
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 import org.junit.Test;
-import org.mockito.Mockito;
+
+import java.util.List;
+import java.util.Map;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verifyNoInteractions;
 import static org.mockito.Mockito.when;
 
 public class UserUtilTest {
 
+    private final User u = mock(User.class);
+    private final Group g = mock(Group.class);
+
     @NotNull
     private static Tree createTree(@Nullable String ntName) {
         return createTree(ntName, null, null);
@@ -58,7 +63,7 @@ public class UserUtilTest {
 
     @NotNull
     private static Tree createTree(@Nullable String ntName, @Nullable String id, @Nullable String nodeName) {
-        Tree t = Mockito.mock(Tree.class);
+        Tree t = mock(Tree.class);
         if (ntName != null) {
             when(t.getProperty(JcrConstants.JCR_PRIMARYTYPE)).thenReturn(PropertyStates.createProperty(JcrConstants.JCR_PRIMARYTYPE, ntName, Type.NAME));
         }
@@ -118,9 +123,7 @@ public class UserUtilTest {
                 JcrConstants.NT_FILE, false
         );
 
-        for (String key : test.keySet()) {
-            assertEquals(test.get(key), UserUtil.isType(createTree(key), AuthorizableType.GROUP));
-        }
+        test.forEach((key, value) -> assertEquals(value, UserUtil.isType(createTree(key), AuthorizableType.GROUP)));
     }
 
     @Test
@@ -133,10 +136,10 @@ public class UserUtilTest {
                 JcrConstants.NT_FILE, false
         );
 
-        for (String ntName : test.keySet()) {
-            boolean expected = test.get(ntName);
+        test.forEach((ntName, value) -> {
+            boolean expected = value;
             assertEquals(ntName, expected, UserUtil.isType(createTree(ntName), AuthorizableType.USER));
-        }
+        });
     }
 
     @Test
@@ -149,10 +152,10 @@ public class UserUtilTest {
                 JcrConstants.NT_FILE, false
         );
 
-        for (String ntName : test.keySet()) {
-            boolean expected = test.get(ntName);
+        test.forEach((ntName, value) -> {
+            boolean expected = value;
             assertEquals(ntName, expected, UserUtil.isType(createTree(ntName), AuthorizableType.AUTHORIZABLE));
-        }
+        });
     }
 
     @Test
@@ -163,10 +166,7 @@ public class UserUtilTest {
                 UserConstants.NT_REP_SYSTEM_USER, AuthorizableType.USER
         );
 
-        for (String ntName : test.keySet()) {
-            AuthorizableType expected = test.get(ntName);
-            assertEquals(ntName, expected, UserUtil.getType(createTree(ntName)));
-        }
+        test.forEach((ntName, expected) -> assertEquals(ntName, expected, UserUtil.getType(createTree(ntName))));
     }
 
     @Test
@@ -216,10 +216,10 @@ public class UserUtilTest {
                 JcrConstants.NT_FILE, false
         );
 
-        for (String ntName : test.keySet()) {
-            boolean expected = test.get(ntName);
+        test.forEach((ntName, value) -> {
+            boolean expected = value;
             assertEquals(ntName, expected, UserUtil.isSystemUser(createTree(ntName)));
-        }
+        });
     }
 
     @Test
@@ -282,11 +282,11 @@ public class UserUtilTest {
                 put(AuthorizableType.AUTHORIZABLE, new String[] {UserConstants.NT_REP_USER, UserConstants.NT_REP_SYSTEM_USER, UserConstants.NT_REP_GROUP}).
                 put(AuthorizableType.GROUP, new String[] {UserConstants.NT_REP_GROUP}).build();
 
-        for (AuthorizableType type : test.keySet()) {
-            for (String ntName : test.get(type)) {
-                assertEquals("id", UserUtil.getAuthorizableId(createTree(ntName, "id"), type));
+        test.forEach((key, value) -> {
+            for (String ntName : value) {
+                assertEquals("id", UserUtil.getAuthorizableId(createTree(ntName, "id"), key));
             }
-        }
+        });
     }
 
     @Test
@@ -296,11 +296,11 @@ public class UserUtilTest {
                 put(AuthorizableType.AUTHORIZABLE, new String[]{UserConstants.NT_REP_USER, UserConstants.NT_REP_SYSTEM_USER, UserConstants.NT_REP_GROUP}).
                 put(AuthorizableType.GROUP, new String[]{UserConstants.NT_REP_GROUP}).build();
 
-        for (AuthorizableType type : test.keySet()) {
-            for (String ntName : test.get(type)) {
-                assertEquals("nodeName", UserUtil.getAuthorizableId(createTree(ntName, null, "nodeName"), type));
+        test.forEach((key, value) -> {
+            for (String ntName : value) {
+                assertEquals("nodeName", UserUtil.getAuthorizableId(createTree(ntName, null, "nodeName"), key));
             }
-        }
+        });
     }
 
     @Test(expected=IllegalArgumentException.class)
@@ -332,47 +332,51 @@ public class UserUtilTest {
 
     @Test(expected = AuthorizableTypeException.class)
     public void testCastNullClass() throws Exception {
-        UserUtil.castAuthorizable(Mockito.mock(User.class), null);
+        UserUtil.castAuthorizable(u, null);
     }
 
     @Test(expected = AuthorizableTypeException.class)
     public void testCastUserToGroup() throws Exception {
-        UserUtil.castAuthorizable(Mockito.mock(User.class), Group.class);
+        UserUtil.castAuthorizable(u, Group.class);
     }
 
     @Test(expected = AuthorizableTypeException.class)
     public void testCastGroupToUser() throws Exception {
-        UserUtil.castAuthorizable(Mockito.mock(Group.class), User.class);
+        UserUtil.castAuthorizable(g, User.class);
     }
 
     @Test(expected = AuthorizableTypeException.class)
     public void testCastAuthorizableToUser() throws Exception {
-        UserUtil.castAuthorizable(Mockito.mock(Authorizable.class), User.class);
+        UserUtil.castAuthorizable(mock(Authorizable.class), User.class);
     }
 
     @Test(expected = AuthorizableTypeException.class)
     public void testCastAuthorizableToGroup() throws Exception {
-        UserUtil.castAuthorizable(Mockito.mock(Authorizable.class), Group.class);
+        UserUtil.castAuthorizable(mock(Authorizable.class), Group.class);
     }
 
     @Test
     public void testCastUserToUser() throws Exception {
-        UserUtil.castAuthorizable(Mockito.mock(User.class), User.class);
+        UserUtil.castAuthorizable(u, User.class);
+        verifyNoInteractions(u);
     }
 
     @Test
     public void testCastUserToAuthorizable() throws Exception {
-        UserUtil.castAuthorizable(Mockito.mock(User.class), Authorizable.class);
+        UserUtil.castAuthorizable(u, Authorizable.class);
+        verifyNoInteractions(u);
     }
 
     @Test
     public void testCastGroupToGroup() throws Exception {
-        UserUtil.castAuthorizable(Mockito.mock(Group.class), Group.class);
+        UserUtil.castAuthorizable(g, Group.class);
+        verifyNoInteractions(g);
     }
 
     @Test
     public void testCastGroupToAuthorizable() throws Exception {
-        UserUtil.castAuthorizable(Mockito.mock(Group.class), Authorizable.class);
+        UserUtil.castAuthorizable(g, Authorizable.class);
+        verifyNoInteractions(g);
     }
 
     @Test
@@ -384,8 +388,6 @@ public class UserUtilTest {
                 ConfigurationParameters.of(ProtectedItemImporter.PARAM_IMPORT_BEHAVIOR, ImportBehavior.NAME_BESTEFFORT), ImportBehavior.BESTEFFORT
         );
 
-        for (Map.Entry<ConfigurationParameters, Integer> entry : testMap.entrySet()) {
-            assertEquals(entry.getValue().intValue(), UserUtil.getImportBehavior(entry.getKey()));
-        }
+        testMap.forEach((key, value) -> assertEquals(value.intValue(), UserUtil.getImportBehavior(key)));
     }
 }

Modified: jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/NodeInfoTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/NodeInfoTest.java?rev=1883784&r1=1883783&r2=1883784&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/NodeInfoTest.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/NodeInfoTest.java Tue Nov 24 12:08:05 2020
@@ -24,7 +24,7 @@ import static org.junit.Assert.assertFal
 
 public class NodeInfoTest {
 
-    private NodeInfo nodeInfo = new NodeInfo("name", "primaryType", ImmutableList.of("mixin1", "mixin2"), "uuid");
+    private final NodeInfo nodeInfo = new NodeInfo("name", "primaryType", ImmutableList.of("mixin1", "mixin2"), "uuid");
 
     @Test
     public void testGetName() {

Modified: jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/PropInfoTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/PropInfoTest.java?rev=1883784&r1=1883783&r2=1883784&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/PropInfoTest.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/PropInfoTest.java Tue Nov 24 12:08:05 2020
@@ -16,26 +16,27 @@
  */
 package org.apache.jackrabbit.oak.spi.xml;
 
-import java.util.List;
-import javax.jcr.PropertyType;
-import javax.jcr.RepositoryException;
-import javax.jcr.Value;
-import javax.jcr.nodetype.PropertyDefinition;
-
-import com.google.common.base.Function;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Type;
 import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
 import org.junit.Test;
 import org.mockito.Mockito;
 
+import javax.jcr.PropertyType;
+import javax.jcr.RepositoryException;
+import javax.jcr.Value;
+import javax.jcr.nodetype.PropertyDefinition;
+import java.util.List;
+
+import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 public class PropInfoTest {
@@ -81,8 +82,10 @@ public class PropInfoTest {
 
     @Test
     public void testDisposeMultiple() throws Exception {
-        PropInfo propInfo = new PropInfo("string", PropertyType.STRING, ImmutableList.of(mockTextValue("value", PropertyType.STRING, false)));
+        TextValue tv = mockTextValue("value", PropertyType.STRING, false);
+        PropInfo propInfo = new PropInfo("string", PropertyType.STRING, ImmutableList.of(tv));
         propInfo.dispose();
+        verify(tv, times(1)).dispose();
     }
 
     @Test
@@ -289,9 +292,9 @@ public class PropInfoTest {
     public void testMultipleStatus() {
         assertEquals(PropInfo.MultipleStatus.UNKNOWN, PropInfo.MultipleStatus.valueOf("UNKNOWN"));
         assertEquals(PropInfo.MultipleStatus.MULTIPLE, PropInfo.MultipleStatus.valueOf("MULTIPLE"));
-        assertEquals(new PropInfo.MultipleStatus[]{
+        assertArrayEquals(new PropInfo.MultipleStatus[]{
                 PropInfo.MultipleStatus.UNKNOWN, PropInfo.MultipleStatus.MULTIPLE}, PropInfo.MultipleStatus.values());
     }
 
-    private class DisposeException extends RuntimeException {}
+    private static class DisposeException extends RuntimeException {}
 }

Modified: jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/ReferenceChangeTrackerTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/ReferenceChangeTrackerTest.java?rev=1883784&r1=1883783&r2=1883784&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/ReferenceChangeTrackerTest.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/xml/ReferenceChangeTrackerTest.java Tue Nov 24 12:08:05 2020
@@ -27,7 +27,7 @@ import static org.junit.Assert.assertTru
 
 public class ReferenceChangeTrackerTest {
 
-    private ReferenceChangeTracker rct = new ReferenceChangeTracker();
+    private final ReferenceChangeTracker rct = new ReferenceChangeTracker();
 
     @Test
     public void testGet() {