You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by st...@apache.org on 2006/03/10 12:28:51 UTC

svn commit: r384767 - in /incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/nodetype: PredefinedNodeTypeTest.java spec/nt-unstructured.txt

Author: stefan
Date: Fri Mar 10 03:28:45 2006
New Revision: 384767

URL: http://svn.apache.org/viewcvs?rev=384767&view=rev
Log:
JCR-333: Fixed a test case that depended on random ordering of equally-named property definitions.

Modified:
    incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/nodetype/PredefinedNodeTypeTest.java
    incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/nodetype/spec/nt-unstructured.txt

Modified: incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/nodetype/PredefinedNodeTypeTest.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/nodetype/PredefinedNodeTypeTest.java?rev=384767&r1=384766&r2=384767&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/nodetype/PredefinedNodeTypeTest.java (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/nodetype/PredefinedNodeTypeTest.java Fri Mar 10 03:28:45 2006
@@ -273,12 +273,12 @@
         writer.println("PrimaryItemName");
         writer.println("  " + type.getPrimaryItemName());
         NodeDefinition[] nodes = type.getDeclaredChildNodeDefinitions();
-        Arrays.sort(nodes, ITEM_DEF_COMPARATOR);
+        Arrays.sort(nodes, NODE_DEF_COMPARATOR);
         for (int i = 0; i < nodes.length; i++) {
             writer.print(getChildNodeDefSpec(nodes[i]));
         }
         PropertyDefinition[] properties = type.getDeclaredPropertyDefinitions();
-        Arrays.sort(properties, ITEM_DEF_COMPARATOR);
+        Arrays.sort(properties, PROPERTY_DEF_COMPARATOR);
         for (int i = 0; i < properties.length; i++) {
             writer.print(getPropertyDefSpec(properties[i]));
         }
@@ -386,20 +386,47 @@
     }
 
     /**
-     * Comparator for ordering property and node definition arrays. Item
-     * definitions are ordered by name, with the wildcard item definition
-     * ("*") ordered last.
+     * Comparator for ordering node definition arrays. Node definitions are
+     * ordered by name, with the wildcard item definition ("*") ordered last.
      */
-    private static final Comparator ITEM_DEF_COMPARATOR = new Comparator() {
+    private static final Comparator NODE_DEF_COMPARATOR = new Comparator() {
         public int compare(Object a, Object b) {
-            ItemDefinition ida = (ItemDefinition) a;
-            ItemDefinition idb = (ItemDefinition) b;
-            if (ida.getName().equals("*") && !idb.getName().equals("*")) {
+            NodeDefinition nda = (NodeDefinition) a;
+            NodeDefinition ndb = (NodeDefinition) b;
+            if (nda.getName().equals("*") && !ndb.getName().equals("*")) {
                 return 1;
-            } else if (!ida.getName().equals("*") && idb.getName().equals("*")) {
+            } else if (!nda.getName().equals("*") && ndb.getName().equals("*")) {
                 return -1;
             } else {
-                return ida.getName().compareTo(idb.getName());
+                return nda.getName().compareTo(ndb.getName());
+            }
+        }
+    };
+
+    /**
+     * Comparator for ordering property definition arrays. Property definitions
+     * are ordered by name, with the wildcard item definition ("*") ordered
+     * last, and isMultiple flag, with <code>isMultiple==true</code> ordered last.
+     */
+    private static final Comparator PROPERTY_DEF_COMPARATOR = new Comparator() {
+        public int compare(Object a, Object b) {
+            PropertyDefinition pda = (PropertyDefinition) a;
+            PropertyDefinition pdb = (PropertyDefinition) b;
+            if (pda.getName().equals("*") && !pdb.getName().equals("*")) {
+                return 1;
+            } else if (!pda.getName().equals("*") && pdb.getName().equals("*")) {
+                return -1;
+            }
+            int result = pda.getName().compareTo(pdb.getName());
+            if (result != 0) {
+                return result;
+            }
+            if (pda.isMultiple() && !pdb.isMultiple()) {
+                return 1;
+            } else if (!pda.isMultiple() && pdb.isMultiple()) {
+                return -1;
+            } else {
+                return 0;
             }
         }
     };

Modified: incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/nodetype/spec/nt-unstructured.txt
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/nodetype/spec/nt-unstructured.txt?rev=384767&r1=384766&r2=384767&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/nodetype/spec/nt-unstructured.txt (original)
+++ incubator/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/nodetype/spec/nt-unstructured.txt Fri Mar 10 03:28:45 2006
@@ -26,7 +26,7 @@
   Mandatory false
   OnParentVersion COPY
   Protected false
-  Multiple true
+  Multiple false
 PropertyDefinition
   Name "*"
   RequiredType UNDEFINED
@@ -36,4 +36,4 @@
   Mandatory false
   OnParentVersion COPY
   Protected false
-  Multiple false
+  Multiple true