Author: angela
Date: Mon Apr 25 13:09:25 2016
New Revision: 1740837

URL: http://svn.apache.org/viewvc?rev=1740837&view=rev
Log:
OAK-4226 : Improve testing of DefaultSyncContext

Modified:
    
jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContextTest.java

Modified: 
jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContextTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContextTest.java?rev=1740837&r1=1740836&r2=1740837&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContextTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/DefaultSyncContextTest.java
 Mon Apr 25 13:09:25 2016
@@ -34,6 +34,7 @@ import javax.jcr.Binary;
 import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
+import javax.jcr.ValueFactory;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
@@ -68,6 +69,8 @@ import static org.junit.Assert.assertTru
 
 public class DefaultSyncContextTest extends AbstractExternalAuthTest {
 
+    private UserManager userManager;
+    private ValueFactory valueFactory;
     private DefaultSyncContext syncCtx;
 
     private List<String> authorizableIds = new ArrayList<String>();
@@ -75,7 +78,9 @@ public class DefaultSyncContextTest exte
     @Before
     public void before() throws Exception {
         super.before();
-        syncCtx = new DefaultSyncContext(syncConfig, idp, 
getUserManager(root), getValueFactory());
+        userManager = getUserManager(root);
+        valueFactory = getValueFactory();
+        syncCtx = new DefaultSyncContext(syncConfig, idp, userManager, 
valueFactory);
     }
 
     @After
@@ -83,9 +88,8 @@ public class DefaultSyncContextTest exte
         try {
             syncCtx.close();
             root.refresh();
-            UserManager umgr = getUserManager(root);
             for (String id : authorizableIds) {
-                Authorizable a = umgr.getAuthorizable(id);
+                Authorizable a = userManager.getAuthorizable(id);
                 if (a != null) {
                     a.remove();
                 }
@@ -102,7 +106,7 @@ public class DefaultSyncContextTest exte
     }
 
     private Group createTestGroup() throws Exception {
-        Group gr = getUserManager(root).createGroup("group" + 
UUID.randomUUID());
+        Group gr = userManager.createGroup("group" + UUID.randomUUID());
         authorizableIds.add(gr.getID());
         return gr;
     }
@@ -122,7 +126,7 @@ public class DefaultSyncContextTest exte
     }
 
     private void setExternalID(@Nonnull Authorizable authorizable, @Nullable 
String idpName) throws RepositoryException {
-        authorizable.setProperty(DefaultSyncContext.REP_EXTERNAL_ID, 
getValueFactory().createValue(authorizable.getID() + ';' + idpName));
+        authorizable.setProperty(DefaultSyncContext.REP_EXTERNAL_ID, 
valueFactory.createValue(authorizable.getID() + ';' + idpName));
     }
 
     @Test
@@ -159,7 +163,7 @@ public class DefaultSyncContextTest exte
         ExternalIdentity externalGroup = idp.listGroups().next();
         sync(externalGroup);
 
-        Authorizable a = 
getUserManager(root).getAuthorizable(externalGroup.getId());
+        Authorizable a = userManager.getAuthorizable(externalGroup.getId());
         SyncedIdentity si = DefaultSyncContext.createSyncedIdentity(a);
 
         assertNotNull(si);
@@ -174,7 +178,7 @@ public class DefaultSyncContextTest exte
         ExternalIdentity externalUser = idp.listUsers().next();
         sync(externalUser);
 
-        Authorizable a = 
getUserManager(root).getAuthorizable(externalUser.getId());
+        Authorizable a = userManager.getAuthorizable(externalUser.getId());
         SyncedIdentity si = DefaultSyncContext.createSyncedIdentity(a);
 
         assertNotNull(si);
@@ -214,7 +218,7 @@ public class DefaultSyncContextTest exte
         ExternalIdentity externalGroup = idp.listGroups().next();
         sync(externalGroup);
 
-        ExternalIdentityRef ref = 
DefaultSyncContext.getIdentityRef(getUserManager(root).getAuthorizable(externalGroup.getId()));
+        ExternalIdentityRef ref = 
DefaultSyncContext.getIdentityRef(userManager.getAuthorizable(externalGroup.getId()));
         assertNotNull(ref);
         assertEquals(externalGroup.getExternalId(), ref);
     }
@@ -224,7 +228,7 @@ public class DefaultSyncContextTest exte
         ExternalIdentity externalUser = idp.listUsers().next();
         sync(externalUser);
 
-        ExternalIdentityRef ref = 
DefaultSyncContext.getIdentityRef(getUserManager(root).getAuthorizable(externalUser.getId()));
+        ExternalIdentityRef ref = 
DefaultSyncContext.getIdentityRef(userManager.getAuthorizable(externalUser.getId()));
         assertNotNull(ref);
         assertEquals(externalUser.getExternalId(), ref);
     }
@@ -376,7 +380,7 @@ public class DefaultSyncContextTest exte
     @Test
     public void testSyncRemovedUserById() throws Exception {
         // mark a regular repo user as external user from the test IDP
-        User u = getUserManager(root).createUser("test" + UUID.randomUUID(), 
null);
+        User u = userManager.createUser("test" + UUID.randomUUID(), null);
         String userId = u.getID();
         authorizableIds.add(userId);
 
@@ -386,14 +390,14 @@ public class DefaultSyncContextTest exte
         syncCtx.setKeepMissing(true);
         SyncResult result = syncCtx.sync(userId);
         assertEquals(SyncResult.Status.MISSING, result.getStatus());
-        assertNotNull(getUserManager(root).getAuthorizable(userId));
+        assertNotNull(userManager.getAuthorizable(userId));
 
         // test sync with 'keepmissing' = false
         syncCtx.setKeepMissing(false);
         result = syncCtx.sync(userId);
         assertEquals(SyncResult.Status.DELETE, result.getStatus());
 
-        assertNull(getUserManager(root).getAuthorizable(userId));
+        assertNull(userManager.getAuthorizable(userId));
     }
 
     @Test
@@ -425,14 +429,14 @@ public class DefaultSyncContextTest exte
         syncCtx.setKeepMissing(true);
         SyncResult result = syncCtx.sync(groupId);
         assertEquals(SyncResult.Status.MISSING, result.getStatus());
-        assertNotNull(getUserManager(root).getAuthorizable(groupId));
+        assertNotNull(userManager.getAuthorizable(groupId));
 
         // test sync with 'keepmissing' = false
         syncCtx.setKeepMissing(false);
         result = syncCtx.sync(groupId);
         assertEquals(SyncResult.Status.DELETE, result.getStatus());
 
-        assertNull(getUserManager(root).getAuthorizable(groupId));
+        assertNull(userManager.getAuthorizable(groupId));
     }
 
     @Test
@@ -448,14 +452,14 @@ public class DefaultSyncContextTest exte
         syncCtx.setKeepMissing(true);
         SyncResult result = syncCtx.sync(groupId);
         assertEquals(SyncResult.Status.NOP, result.getStatus());
-        assertNotNull(getUserManager(root).getAuthorizable(groupId));
+        assertNotNull(userManager.getAuthorizable(groupId));
 
         // test sync with 'keepmissing' = false
         syncCtx.setKeepMissing(false);
         result = syncCtx.sync(groupId);
         assertEquals(SyncResult.Status.NOP, result.getStatus());
 
-        assertNotNull(getUserManager(root).getAuthorizable(groupId));
+        assertNotNull(userManager.getAuthorizable(groupId));
     }
 
     @Test
@@ -494,7 +498,7 @@ public class DefaultSyncContextTest exte
 
     @Test(expected = SyncException.class)
     public void testSyncByIdUsingExceptionId() throws Exception {
-        Group gr = 
getUserManager(root).createGroup(TestIdentityProvider.ID_EXCEPTION);
+        Group gr = userManager.createGroup(TestIdentityProvider.ID_EXCEPTION);
         setExternalID(gr, idp.getName());
 
         syncCtx.sync(TestIdentityProvider.ID_EXCEPTION);
@@ -509,7 +513,7 @@ public class DefaultSyncContextTest exte
         SyncResult result = syncCtx.sync(idp.listUsers().next());
         assertEquals(SyncResult.Status.ADD, result.getStatus());
 
-        Authorizable a = 
getUserManager(root).getAuthorizable(result.getIdentity().getId());
+        Authorizable a = 
userManager.getAuthorizable(result.getIdentity().getId());
         assertTrue(gr.isDeclaredMember(a));
     }
 
@@ -539,7 +543,7 @@ public class DefaultSyncContextTest exte
         // sync an external user from the IDP into the repo and make it member
         // of the test group
         SyncResult result = syncCtx.sync(idp.listUsers().next());
-        User user = 
getUserManager(root).getAuthorizable(result.getIdentity().getId(), User.class);
+        User user = userManager.getAuthorizable(result.getIdentity().getId(), 
User.class);
         gr.addMember(user);
         root.commit();
 
@@ -569,7 +573,7 @@ public class DefaultSyncContextTest exte
         // sync an external user from the IDP into the repo and make it member
         // of the test group
         SyncResult result = syncCtx.sync(idp.listUsers().next());
-        User user = 
getUserManager(root).getAuthorizable(result.getIdentity().getId(), User.class);
+        User user = userManager.getAuthorizable(result.getIdentity().getId(), 
User.class);
         gr.addMember(user);
         root.commit();
 
@@ -646,9 +650,8 @@ public class DefaultSyncContextTest exte
         syncCtx.syncMembership(externalUser, a, 1);
         assertTrue(root.hasPendingChanges());
 
-        UserManager uMgr = getUserManager(root);
         for (ExternalIdentityRef ref : externalUser.getDeclaredGroups()) {
-            Group g = uMgr.getAuthorizable(ref.getId(), Group.class);
+            Group g = userManager.getAuthorizable(ref.getId(), Group.class);
             assertNotNull(g);
             assertTrue(g.isDeclaredMember(a));
         }
@@ -663,13 +666,12 @@ public class DefaultSyncContextTest exte
         assertTrue(root.hasPendingChanges());
         root.commit();
 
-        UserManager uMgr = getUserManager(root);
         for (ExternalIdentityRef ref : externalUser.getDeclaredGroups()) {
             ExternalIdentity extGr = idp.getIdentity(ref);
             assertNotNull(extGr);
 
             for (ExternalIdentityRef inheritedGrRef : 
extGr.getDeclaredGroups()) {
-                Group g = uMgr.getAuthorizable(inheritedGrRef.getId(), 
Group.class);
+                Group g = userManager.getAuthorizable(inheritedGrRef.getId(), 
Group.class);
                 assertNotNull(g);
                 if (Iterables.contains(externalUser.getDeclaredGroups(), 
inheritedGrRef)) {
                     assertTrue(g.isDeclaredMember(a));
@@ -697,7 +699,7 @@ public class DefaultSyncContextTest exte
             syncCtx.syncMembership(withWrongDeclaredGroup, a, 1);
             assertFalse(root.hasPendingChanges());
         } finally {
-            Authorizable a = 
getUserManager(root).getAuthorizable(withWrongDeclaredGroup.getId());
+            Authorizable a = 
userManager.getAuthorizable(withWrongDeclaredGroup.getId());
             if (a != null) {
                 a.remove();
                 root.commit();
@@ -731,7 +733,7 @@ public class DefaultSyncContextTest exte
     public void testApplyMembershipNonExistingGroup() throws Exception {
         User u = getTestUser();
 
-        assertNull(getUserManager(root).getAuthorizable("anyGroup", 
Group.class));
+        assertNull(userManager.getAuthorizable("anyGroup", Group.class));
         syncCtx.applyMembership(u, ImmutableSet.of("anyGroup"));
         assertFalse(root.hasPendingChanges());
     }
@@ -742,7 +744,7 @@ public class DefaultSyncContextTest exte
         sync(externalUser);
         User u = getTestUser();
 
-        
syncCtx.applyMembership(getUserManager(root).getAuthorizable(externalUser.getId()),
 ImmutableSet.of(u.getID()));
+        
syncCtx.applyMembership(userManager.getAuthorizable(externalUser.getId()), 
ImmutableSet.of(u.getID()));
         assertFalse(root.hasPendingChanges());
     }
 
@@ -773,7 +775,7 @@ public class DefaultSyncContextTest exte
         ExternalUser externalUser = 
idp.getUser(TestIdentityProvider.ID_SECOND_USER);
         Authorizable a = syncCtx.createUser(externalUser);
 
-        Value anyValue = getValueFactory().createValue("any");
+        Value anyValue = valueFactory.createValue("any");
 
         Map<String, ?> extProps = externalUser.getProperties();
         for (String propName : extProps.keySet()) {
@@ -792,7 +794,7 @@ public class DefaultSyncContextTest exte
         ExternalUser externalUser = 
idp.getUser(TestIdentityProvider.ID_SECOND_USER);
         sync(externalUser);
 
-        Authorizable a = 
getUserManager(root).getAuthorizable(externalUser.getId());
+        Authorizable a = userManager.getAuthorizable(externalUser.getId());
 
         // create mapping that doesn't match to names in the 
external-properties
         // -> previously synced properties must be removed
@@ -813,7 +815,7 @@ public class DefaultSyncContextTest exte
         ExternalUser externalUser = 
idp.getUser(TestIdentityProvider.ID_SECOND_USER);
         sync(externalUser);
 
-        Authorizable a = 
getUserManager(root).getAuthorizable(externalUser.getId());
+        Authorizable a = userManager.getAuthorizable(externalUser.getId());
 
         // create mapping that doesn't match to names in the 
external-properties
         // -> previously synced properties must be removed
@@ -824,7 +826,7 @@ public class DefaultSyncContextTest exte
         }
 
         syncCtx.syncProperties(externalUser, a, mapping);
-        Value anyValue = getValueFactory().createValue("any");
+        Value anyValue = valueFactory.createValue("any");
         for (String propName : extProps.keySet()) {
             assertTrue(a.hasProperty(propName));
             assertEquals(anyValue, a.getProperty(propName)[0]);
@@ -836,7 +838,7 @@ public class DefaultSyncContextTest exte
         ExternalUser externalUser = 
idp.getUser(TestIdentityProvider.ID_SECOND_USER);
         sync(externalUser);
 
-        Authorizable a = 
getUserManager(root).getAuthorizable(externalUser.getId());
+        Authorizable a = userManager.getAuthorizable(externalUser.getId());
 
         // mapping to '"' (i.e. name size = 1) which doesn't qualify as 
constant
         // -> same behavior expected as with 
'testSyncPropertiesMappingRemovesExisting'
@@ -857,7 +859,7 @@ public class DefaultSyncContextTest exte
         ExternalUser externalUser = 
idp.getUser(TestIdentityProvider.ID_SECOND_USER);
         sync(externalUser);
 
-        Authorizable a = 
getUserManager(root).getAuthorizable(externalUser.getId());
+        Authorizable a = userManager.getAuthorizable(externalUser.getId());
 
         // mapping to '"any', which doesn't qualify as constant
         // -> same behavior expected as with 
'testSyncPropertiesMappingRemovesExisting'
@@ -952,13 +954,14 @@ public class DefaultSyncContextTest exte
         ExternalIdentity externalUser = idp.listUsers().next();
         sync(externalUser);
 
-        Authorizable a = 
getUserManager(root).getAuthorizable(externalUser.getId());
+        Authorizable a = userManager.getAuthorizable(externalUser.getId());
         assertFalse(syncCtx.isExpired(a, 
syncConfig.user().getExpirationTime(), "any"));
         assertTrue(syncCtx.isExpired(a, -1, "any"));
 
         // create a ctx with a newer 'now'
-        DefaultSyncContext ctx = new DefaultSyncContext(syncConfig, idp, 
getUserManager(root), getValueFactory());
-        assertTrue(ctx.isExpired(a, 1, "any"));
+        DefaultSyncContext ctx = new DefaultSyncContext(syncConfig, idp, 
userManager, valueFactory);
+        long expTime = ctx.now - syncCtx.now - 1;
+        assertTrue(ctx.isExpired(a, expTime, "any"));
 
         // remove last-sync property
         a.removeProperty(DefaultSyncContext.REP_LAST_SYNCED);
@@ -970,13 +973,14 @@ public class DefaultSyncContextTest exte
         ExternalIdentity externalGroup = idp.listGroups().next();
         sync(externalGroup);
 
-        Authorizable a = 
getUserManager(root).getAuthorizable(externalGroup.getId());
+        Authorizable a = userManager.getAuthorizable(externalGroup.getId());
         assertFalse(syncCtx.isExpired(a, 
syncConfig.group().getExpirationTime(), "any"));
         assertTrue(syncCtx.isExpired(a, -1, "any"));
 
         // create a ctx with a newer 'now'
-        DefaultSyncContext ctx = new DefaultSyncContext(syncConfig, idp, 
getUserManager(root), getValueFactory());
-        assertTrue(ctx.isExpired(a, 1, "any"));
+        DefaultSyncContext ctx = new DefaultSyncContext(syncConfig, idp, 
userManager, valueFactory);
+        long expTime = ctx.now - syncCtx.now - 1;
+        assertTrue(ctx.isExpired(a, expTime, "any"));
 
         // remove last-sync property
         a.removeProperty(DefaultSyncContext.REP_LAST_SYNCED);
@@ -1081,7 +1085,7 @@ public class DefaultSyncContextTest exte
     public void testCreateValueFromBytesArray() throws Exception {
         byte[] bytes = new byte[]{'a', 'b'};
         ByteArrayInputStream is = new ByteArrayInputStream(bytes);
-        Binary binary = getValueFactory().createBinary(is);
+        Binary binary = valueFactory.createBinary(is);
 
         Value v = syncCtx.createValue(bytes);
         assertNotNull(v);
@@ -1096,7 +1100,7 @@ public class DefaultSyncContextTest exte
     public void testCreateValueFromBinary() throws Exception {
         byte[] bytes = new byte[]{'a', 'b'};
         ByteArrayInputStream is = new ByteArrayInputStream(bytes);
-        Binary binary = getValueFactory().createBinary(is);
+        Binary binary = valueFactory.createBinary(is);
 
         Value v = syncCtx.createValue(binary);
         assertNotNull(v);
@@ -1111,7 +1115,7 @@ public class DefaultSyncContextTest exte
     public void testCreateValueFromInputStream() throws Exception {
         byte[] bytes = new byte[]{'a', 'b'};
         ByteArrayInputStream is = new ByteArrayInputStream(bytes);
-        Binary binary = getValueFactory().createBinary(is);
+        Binary binary = valueFactory.createBinary(is);
 
         Value v = syncCtx.createValue(is);
         assertNotNull(v);
@@ -1154,7 +1158,7 @@ public class DefaultSyncContextTest exte
         ExternalIdentity externalGroup = idp.listGroups().next();
         sync(externalGroup);
 
-        
assertTrue(syncCtx.isSameIDP(getUserManager(root).getAuthorizable(externalGroup.getId())));
+        
assertTrue(syncCtx.isSameIDP(userManager.getAuthorizable(externalGroup.getId())));
     }
 
     @Test
@@ -1162,7 +1166,7 @@ public class DefaultSyncContextTest exte
         ExternalIdentity externalUser = idp.listUsers().next();
         sync(externalUser);
 
-        
assertTrue(syncCtx.isSameIDP(getUserManager(root).getAuthorizable(externalUser.getId())));
+        
assertTrue(syncCtx.isSameIDP(userManager.getAuthorizable(externalUser.getId())));
     }
 
     @Test
@@ -1170,7 +1174,7 @@ public class DefaultSyncContextTest exte
         ExternalIdentity externalUser = idp.listUsers().next();
         sync(externalUser);
 
-        Authorizable a = 
getUserManager(root).getAuthorizable(externalUser.getId());
+        Authorizable a = userManager.getAuthorizable(externalUser.getId());
         a.removeProperty(DefaultSyncContext.REP_EXTERNAL_ID);
 
         assertFalse(syncCtx.isSameIDP(a));


Reply via email to