You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:48:47 UTC

[sling-org-apache-sling-jcr-repoinit] 04/43: SLING-5355 - factor our TestUtil

This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.jcr.repoinit-1.0.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-repoinit.git

commit d20da334eadeb0bf6b7e7f20b2e76921bbb240d3
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Mon Dec 21 15:06:28 2015 +0000

    SLING-5355 - factor our TestUtil
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/acldef/oak-jcr@1721183 13f79535-47bb-0310-9956-ffa450edef68
---
 .../sling/acldef/jcr/CreateServiceUsersTest.java   | 71 ++++----------------
 .../java/org/apache/sling/acldef/jcr/TestUtil.java | 78 ++++++++++++++++++++++
 2 files changed, 90 insertions(+), 59 deletions(-)

diff --git a/src/test/java/org/apache/sling/acldef/jcr/CreateServiceUsersTest.java b/src/test/java/org/apache/sling/acldef/jcr/CreateServiceUsersTest.java
index 0d42c47..0f09972 100644
--- a/src/test/java/org/apache/sling/acldef/jcr/CreateServiceUsersTest.java
+++ b/src/test/java/org/apache/sling/acldef/jcr/CreateServiceUsersTest.java
@@ -16,27 +16,12 @@
  */
 package org.apache.sling.acldef.jcr;
 
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-
-import java.io.Reader;
-import java.io.StringReader;
-import java.util.List;
 import java.util.Random;
 
 import javax.jcr.RepositoryException;
-import javax.jcr.Session;
 
-import org.apache.commons.io.IOUtils;
-import org.apache.jackrabbit.api.security.user.Authorizable;
-import org.apache.jackrabbit.api.security.user.User;
-import org.apache.jackrabbit.api.security.user.UserManager;
-import org.apache.sling.acldef.parser.ACLDefinitions;
-import org.apache.sling.acldef.parser.ParseException;
-import org.apache.sling.acldef.parser.operations.Operation;
 import org.apache.sling.testing.mock.sling.ResourceResolverType;
 import org.apache.sling.testing.mock.sling.junit.SlingContext;
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -47,56 +32,24 @@ public class CreateServiceUsersTest {
     @Rule
     public final SlingContext context = new SlingContext(ResourceResolverType.JCR_OAK);
     
-    private Session session;
-    private UserManager userManager;
     private static final Random random = new Random(42);
     private String namePrefix;
+    private TestUtil U;
     
-    private List<Operation> parse(String input) throws ParseException {
-        final Reader r = new StringReader(input);
-        try {
-            return new ACLDefinitions(r).parse();
-        } finally {
-            IOUtils.closeQuietly(r);
-        }
-    }
-
     @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);
+        U = new TestUtil(context);
         namePrefix = "user_" + random.nextInt();
     }
 
-    private void assertServiceUser(String info, String id, boolean expectToExist) throws RepositoryException {
-        final Authorizable a = userManager.getAuthorizable(id);
-        if(!expectToExist) {
-            assertNull(info + ", expecting Principal to be absent:" + id, a);
-        } else {
-            assertNotNull(info + ", expecting Principal to exist:" + id, a);
-            final User u = (User)a;
-            assertNotNull(info + ", expecting Principal to be a System user:" + id, u.isSystemUser());
-        }
-    }
-    
-    private void exec(String input) throws ParseException {
-        final AclOperationVisitor v = new AclOperationVisitor(session);
-        for(Operation o : parse(input)) {
-            o.accept(v);
-        }
-    }
-
     @Test
     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);
+        U.assertServiceUser("at start of test", userId, false);
+        U.parseAndExecute("create service user " + userId);
+        U.assertServiceUser("after creating user", userId, true);
+        U.parseAndExecute("delete service user " + userId);
+        U.assertServiceUser("after deleting user", userId, false);
     }
     
     private String user(int index) {
@@ -110,24 +63,24 @@ public class CreateServiceUsersTest {
         {
             final StringBuilder input = new StringBuilder();
             for(int i=0; i < n; i++) {
-                assertServiceUser("at start of test", user(i), false);
+                U.assertServiceUser("at start of test", user(i), false);
                 input.append("create service user ").append(user(i)).append("\n");
             }
-            exec(input.toString());
+            U.parseAndExecute(input.toString());
         }
         
         {
             final StringBuilder input = new StringBuilder();
             for(int i=0; i < n; i++) {
-                assertServiceUser("before deleting user", user(i), true);
+                U.assertServiceUser("before deleting user", user(i), true);
                 input.append("delete service user ").append(user(i)).append("\n");
             }
-            exec(input.toString());
+            U.parseAndExecute(input.toString());
         }
         
 
         for(int i=0; i < n; i++) {
-            assertServiceUser("after deleting users", user(i), false);
+            U.assertServiceUser("after deleting users", user(i), false);
         }
     }
 }
diff --git a/src/test/java/org/apache/sling/acldef/jcr/TestUtil.java b/src/test/java/org/apache/sling/acldef/jcr/TestUtil.java
new file mode 100644
index 0000000..c07dd21
--- /dev/null
+++ b/src/test/java/org/apache/sling/acldef/jcr/TestUtil.java
@@ -0,0 +1,78 @@
+/*
+ * 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.acldef.jcr;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import java.io.Reader;
+import java.io.StringReader;
+import java.util.List;
+
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.jcr.SimpleCredentials;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.jackrabbit.api.security.user.Authorizable;
+import org.apache.jackrabbit.api.security.user.User;
+import org.apache.sling.acldef.parser.ACLDefinitions;
+import org.apache.sling.acldef.parser.ParseException;
+import org.apache.sling.acldef.parser.operations.Operation;
+import org.apache.sling.testing.mock.sling.junit.SlingContext;
+
+/** Test utilities */
+class TestUtil {
+    
+    final Session adminSession;
+    
+    TestUtil(SlingContext ctx) {
+        adminSession = ctx.resourceResolver().adaptTo(Session.class); 
+    }
+    
+    List<Operation> parse(String input) throws ParseException {
+        final Reader r = new StringReader(input);
+        try {
+            return new ACLDefinitions(r).parse();
+        } finally {
+            IOUtils.closeQuietly(r);
+        }
+    }
+
+    void assertServiceUser(String info, String id, boolean expectToExist) throws RepositoryException {
+        final Authorizable a = ServiceUserUtil.getUserManager(adminSession).getAuthorizable(id);
+        if(!expectToExist) {
+            assertNull(info + ", expecting Principal to be absent:" + id, a);
+        } else {
+            assertNotNull(info + ", expecting Principal to exist:" + id, a);
+            final User u = (User)a;
+            assertNotNull(info + ", expecting Principal to be a System user:" + id, u.isSystemUser());
+        }
+    }
+    
+    void parseAndExecute(String input) throws ParseException {
+        final AclOperationVisitor v = new AclOperationVisitor(adminSession);
+        for(Operation o : parse(input)) {
+            o.accept(v);
+        }
+    }
+    
+    Session getServiceSession(String serviceUsername) throws RepositoryException {
+        final SimpleCredentials cred = new SimpleCredentials(serviceUsername, new char[0]);
+        return adminSession.impersonate(cred);
+    }
+}

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.