Author: angela
Date: Tue Apr  4 08:37:32 2017
New Revision: 1790079

URL: http://svn.apache.org/viewvc?rev=1790079&view=rev
Log:
OAK-6029 : UserImporter.startChildInfo: rather check state than for 
currentMembership being null
OAK-5882 : Improve coverage for oak.security code in oak-core (wip)

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java
    
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterBaseTest.java
    
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterTest.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java?rev=1790079&r1=1790078&r2=1790079&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java
 Tue Apr  4 08:37:32 2017
@@ -72,6 +72,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkState;
 import static org.apache.jackrabbit.oak.api.Type.STRINGS;
 
 /**
@@ -413,7 +414,7 @@ class UserImporter implements ProtectedP
 
     @Override
     public void startChildInfo(@Nonnull NodeInfo childInfo, @Nonnull 
List<PropInfo> propInfos) throws RepositoryException {
-        checkNotNull(currentMembership);
+        checkState(currentMembership != null);
 
         String ntName = childInfo.getPrimaryTypeName();
         //noinspection deprecation

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterBaseTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterBaseTest.java?rev=1790079&r1=1790078&r2=1790079&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterBaseTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterBaseTest.java
 Tue Apr  4 08:37:32 2017
@@ -48,6 +48,7 @@ import org.apache.jackrabbit.oak.spi.sec
 import 
org.apache.jackrabbit.oak.spi.security.user.action.AuthorizableActionProvider;
 import org.apache.jackrabbit.oak.spi.security.user.action.GroupAction;
 import org.apache.jackrabbit.oak.spi.xml.ImportBehavior;
+import org.apache.jackrabbit.oak.spi.xml.NodeInfo;
 import org.apache.jackrabbit.oak.spi.xml.PropInfo;
 import org.apache.jackrabbit.oak.spi.xml.ProtectedItemImporter;
 import org.apache.jackrabbit.oak.spi.xml.ReferenceChangeTracker;
@@ -189,6 +190,9 @@ public abstract class UserImporterBaseTe
         return def;
     }
 
+    NodeInfo createNodeInfo(@Nonnull String name, @Nonnull String 
primaryTypeName) {
+        return new NodeInfo(name, primaryTypeName, ImmutableList.<String>of(), 
null);
+    }
 
     
//--------------------------------------------------------------------------
 

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterTest.java?rev=1790079&r1=1790078&r2=1790079&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterTest.java
 Tue Apr  4 08:37:32 2017
@@ -512,4 +512,65 @@ public class UserImporterTest extends Us
 
         assertFalse(importer.start(repMembers));
     }
+
+    //-----------------------------------------------------< startChildInfo 
>---
+
+    @Test(expected = IllegalStateException.class)
+    public void testStartChildInfoIllegalState() throws Exception {
+        importer.startChildInfo(createNodeInfo("memberRef", 
NT_REP_MEMBER_REFERENCES), ImmutableList.of(createPropInfo(REP_MEMBERS, 
"member1")));
+    }
+
+    @Test(expected = IllegalStateException.class)
+    public void testStartChildInfoWithoutValidStart() throws Exception {
+        init(true);
+        Tree memberRefList = 
root.getTree(PathUtils.ROOT_PATH).addChild(REP_MEMBERS_LIST);
+        memberRefList.setProperty(JcrConstants.JCR_PRIMARYTYPE, 
NT_REP_MEMBER_REFERENCES_LIST);
+        importer.start(memberRefList);
+
+        importer.startChildInfo(createNodeInfo("memberRef", 
NT_REP_MEMBER_REFERENCES), ImmutableList.of(createPropInfo(REP_MEMBERS, 
"member1")));
+    }
+
+    @Test
+    public void testStartChildInfoWithoutRepMembersProperty() throws Exception 
{
+        init(true);
+        Tree groupTree = createGroupTree();
+        Tree memberRefList = groupTree.addChild(REP_MEMBERS_LIST);
+        memberRefList.setProperty(JcrConstants.JCR_PRIMARYTYPE, 
NT_REP_MEMBER_REFERENCES_LIST);
+
+        importer.start(memberRefList);
+        importer.startChildInfo(createNodeInfo("memberRef", 
NT_REP_MEMBER_REFERENCES), ImmutableList.<PropInfo>of());
+    }
+
+    @Test
+    public void testStartChildInfoWithRepMembersProperty() throws Exception {
+        init(true);
+        Tree groupTree = createGroupTree();
+        Tree memberRefList = groupTree.addChild(REP_MEMBERS_LIST);
+        memberRefList.setProperty(JcrConstants.JCR_PRIMARYTYPE, 
NT_REP_MEMBER_REFERENCES_LIST);
+
+        importer.start(memberRefList);
+        importer.startChildInfo(createNodeInfo("memberRef", 
NT_REP_MEMBER_REFERENCES), ImmutableList.of(createPropInfo(REP_MEMBERS, 
"member1")));
+    }
+
+    @Test
+    public void testStartRepMembersChildInfo() throws Exception {
+        init(true);
+        Tree groupTree = createGroupTree();
+
+        Tree repMembers = groupTree.addChild("memberTree");
+        repMembers.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_MEMBERS);
+        importer.start(repMembers);
+        importer.startChildInfo(createNodeInfo("memberTree", NT_REP_MEMBERS), 
ImmutableList.<PropInfo>of(createPropInfo("anyProp", "memberValue")));
+    }
+
+    @Test
+    public void testStartOtherChildInfo() throws Exception {
+        init(true);
+        Tree groupTree = createGroupTree();
+        Tree memberRefList = groupTree.addChild(REP_MEMBERS_LIST);
+        memberRefList.setProperty(JcrConstants.JCR_PRIMARYTYPE, 
NT_REP_MEMBER_REFERENCES_LIST);
+
+        importer.start(memberRefList);
+        importer.startChildInfo(createNodeInfo("memberRef", 
NodeTypeConstants.NT_OAK_UNSTRUCTURED), 
ImmutableList.of(createPropInfo(REP_MEMBERS, "member1")));
+    }
 }
\ No newline at end of file


Reply via email to