You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by re...@apache.org on 2009/05/07 14:26:37 UTC

svn commit: r772634 - /jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/nodetype/NodeDefTest.java

Author: reschke
Date: Thu May  7 12:26:36 2009
New Revision: 772634

URL: http://svn.apache.org/viewvc?rev=772634&view=rev
Log:
JCR-2085: add tests covering new methods of NodeDefinition (getRequiredPrimaryTypeNames and getDefaultRequiredTypeName)

Modified:
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/nodetype/NodeDefTest.java

Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/nodetype/NodeDefTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/nodetype/NodeDefTest.java?rev=772634&r1=772633&r2=772634&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/nodetype/NodeDefTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/nodetype/NodeDefTest.java Thu May  7 12:26:36 2009
@@ -16,6 +16,10 @@
  */
 package org.apache.jackrabbit.test.api.nodetype;
 
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
 import org.apache.jackrabbit.test.AbstractJCRTest;
 import org.apache.jackrabbit.test.NotExecutableException;
 
@@ -162,12 +166,11 @@
     public void testGetRequiredPrimaryTypes()
             throws RepositoryException {
 
-        NodeTypeIterator types = manager.getAllNodeTypes();
         // loop all node types
-        while (types.hasNext()) {
+        for (NodeTypeIterator types = manager.getAllNodeTypes(); types.hasNext(); ) {
             NodeType type = types.nextNodeType();
             NodeDefinition defs[] = type.getChildNodeDefinitions();
-
+            
             for (int i = 0; i < defs.length; i++) {
                 assertTrue("getRequiredPrimaryTypes() must never return an " +
                         "empty array.",
@@ -176,17 +179,45 @@
         }
     }
 
+    /**
+     * Tests that the information from getRequiredPrimaryTypeNames()
+     * matches getRequiredPrimaryTypes().
+     * 
+     * @since JCR 2.0
+     */
+    public void testGetRequiredPrimaryTypeNames()
+            throws RepositoryException {
+
+        // loop all node types
+        for (NodeTypeIterator types = manager.getAllNodeTypes(); types.hasNext(); ) {
+            NodeType type = types.nextNodeType();
+            NodeDefinition defs[] = type.getChildNodeDefinitions();
+            
+            for (int i = 0; i < defs.length; i++) {
+                NodeType requiredPrimaryTypes[] = defs[i].getRequiredPrimaryTypes();
+                Set rptnames = new HashSet();
+                for (int j = 0; j < requiredPrimaryTypes.length; j++) {
+                    rptnames.add(requiredPrimaryTypes[j].getName());
+                }
+                
+                Set rptnames2 = new HashSet(Arrays.asList(defs[i].getRequiredPrimaryTypeNames()));
+                assertEquals("names returned from getRequiredPrimaryTypeNames should match types returned from getRequiredPrimaryTypes", rptnames, rptnames2);
+            }
+        }
+    }
 
     /**
      * Tests if the default primary type is of the same or a sub node type as the
-     * the required primary types. Test runs for all existing node types.
+     * the required primary types. Test runs for all existing node types. Also
+     * tests the string based access ({@link NodeDefinition#getDefaultPrimaryTypeName()}.
+     * 
+     * @since JCR 2.0
      */
     public void testGetDefaultPrimaryTypes()
             throws RepositoryException {
 
-        NodeTypeIterator types = manager.getAllNodeTypes();
         // loop all node types
-        while (types.hasNext()) {
+        for (NodeTypeIterator types = manager.getAllNodeTypes(); types.hasNext(); ) {
             NodeType type = types.nextNodeType();
             NodeDefinition defs[] = type.getChildNodeDefinitions();
 
@@ -194,6 +225,7 @@
 
                 NodeDefinition def = defs[i];
                 NodeType defaultType = def.getDefaultPrimaryType();
+                String defaultTypeName = def.getDefaultPrimaryTypeName();
                 if (defaultType != null) {
 
                     NodeType requiredTypes[] =
@@ -211,6 +243,13 @@
                                 "returned by getRequiredPrimaryTypes()",
                                 isSubType);
                     }
+
+                    assertEquals("type names obtained from getDefaultPrimaryType and getDefaultPrimaryTypeName should match", defaultType.getName(), defaultTypeName);
+                    NodeType tmpType = manager.getNodeType(defaultTypeName);
+                    assertEquals(tmpType.getName(), defaultTypeName);
+                }
+                else {
+                    assertNull("getDefaultPrimaryTypeName should return null when getDefaultPrimaryType does", defaultTypeName);
                 }
             }
         }