Author: bdelacretaz
Date: Mon Dec 21 14:12:47 2015
New Revision: 1721162

URL: http://svn.apache.org/viewvc?rev=1721162&view=rev
Log:
SLING-5355 - test with multiple users

Modified:
    
sling/trunk/contrib/extensions/acldef/oak-jcr/src/test/java/org/apache/sling/acldef/jcr/CreateServiceUsersTest.java

Modified: 
sling/trunk/contrib/extensions/acldef/oak-jcr/src/test/java/org/apache/sling/acldef/jcr/CreateServiceUsersTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/acldef/oak-jcr/src/test/java/org/apache/sling/acldef/jcr/CreateServiceUsersTest.java?rev=1721162&r1=1721161&r2=1721162&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/acldef/oak-jcr/src/test/java/org/apache/sling/acldef/jcr/CreateServiceUsersTest.java
 (original)
+++ 
sling/trunk/contrib/extensions/acldef/oak-jcr/src/test/java/org/apache/sling/acldef/jcr/CreateServiceUsersTest.java
 Mon Dec 21 14:12:47 2015
@@ -22,7 +22,7 @@ import static org.junit.Assert.assertNul
 import java.io.Reader;
 import java.io.StringReader;
 import java.util.List;
-import java.util.concurrent.atomic.AtomicLong;
+import java.util.Random;
 
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
@@ -49,8 +49,8 @@ public class CreateServiceUsersTest {
     
     private Session session;
     private UserManager userManager;
-    private AtomicLong counter = new AtomicLong(System.currentTimeMillis());
-    private long id; 
+    private static final Random random = new Random(42);
+    private String namePrefix;
     
     private List<Operation> parse(String input) throws ParseException {
         final Reader r = new StringReader(input);
@@ -63,16 +63,14 @@ public class CreateServiceUsersTest {
 
     @Before
     public void setup() throws RepositoryException {
+        // We don't need to logout this session, the Sling Mocks library
+        // takes care of that
         session = context.resourceResolver().adaptTo(Session.class);
+        
         userManager = ServiceUserUtil.getUserManager(session);
-        id = counter.incrementAndGet();
+        namePrefix = "user_" + random.nextInt();
     }
 
-    @After
-    public void cleanup() {
-        session.logout();
-    }
-    
     private void assertServiceUser(String info, String id, boolean 
expectToExist) throws RepositoryException {
         final Authorizable a = userManager.getAuthorizable(id);
         if(!expectToExist) {
@@ -92,12 +90,44 @@ public class CreateServiceUsersTest {
     }
 
     @Test
-    public void createDeleteTest() throws Exception {
-        final String userId = "bob_" + id;
+    public void createDeleteSingleTest() throws Exception {
+        final String userId = namePrefix + "_cdst";
         assertServiceUser("at start of test", userId, false);
         exec("create service user " + userId);
         assertServiceUser("affter creating user", userId, true);
         exec("delete service user " + userId);
         assertServiceUser("after deleting user", userId, false);
     }
+    
+    private String user(int index) {
+        return namePrefix + "_" + index;
+    }
+    
+    @Test
+    public void createDeleteMultipleTest() throws Exception {
+        final int n = 50;
+        
+        {
+            final StringBuilder input = new StringBuilder();
+            for(int i=0; i < n; i++) {
+                assertServiceUser("at start of test", user(i), false);
+                input.append("create service user 
").append(user(i)).append("\n");
+            }
+            exec(input.toString());
+        }
+        
+        {
+            final StringBuilder input = new StringBuilder();
+            for(int i=0; i < n; i++) {
+                assertServiceUser("before deleting user", user(i), true);
+                input.append("delete service user 
").append(user(i)).append("\n");
+            }
+            exec(input.toString());
+        }
+        
+
+        for(int i=0; i < n; i++) {
+            assertServiceUser("after deleting users", user(i), false);
+        }
+    }
 }


Reply via email to