You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by mr...@apache.org on 2009/06/15 10:06:18 UTC

svn commit: r784680 - in /jackrabbit/trunk: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/constraint/ jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/ jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/a...

Author: mreutegg
Date: Mon Jun 15 08:06:17 2009
New Revision: 784680

URL: http://svn.apache.org/viewvc?rev=784680&view=rev
Log:
JCR-2076: JSR 283: QOM and SQL2
- test case

Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/constraint/ConstraintBuilder.java
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/AbstractJCRTest.java
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/qom/UpperLowerCaseTest.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/constraint/ConstraintBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/constraint/ConstraintBuilder.java?rev=784680&r1=784679&r2=784680&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/constraint/ConstraintBuilder.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/constraint/ConstraintBuilder.java Mon Jun 15 08:06:17 2009
@@ -237,7 +237,7 @@
 
         public Object visit(LowerCaseImpl node, Object data) throws Exception {
             DynamicOperandImpl operand = (DynamicOperandImpl) node.getOperand();
-            return new LowerCaseOperand((DynamicOperand) operand.accept(this, null));
+            return new LowerCaseOperand((DynamicOperand) operand.accept(this, data));
         }
 
         public Object visit(NodeLocalNameImpl node, Object data) throws Exception {
@@ -334,7 +334,7 @@
 
         public Object visit(UpperCaseImpl node, Object data) throws Exception {
             DynamicOperandImpl operand = (DynamicOperandImpl) node.getOperand();
-            return new UpperCaseOperand((DynamicOperand) operand.accept(this, null));
+            return new UpperCaseOperand((DynamicOperand) operand.accept(this, data));
         }
 
         private SelectorImpl getSelector(Name name) {

Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/AbstractJCRTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/AbstractJCRTest.java?rev=784680&r1=784679&r2=784680&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/AbstractJCRTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/AbstractJCRTest.java Mon Jun 15 08:06:17 2009
@@ -554,6 +554,21 @@
     }
 
     /**
+     * Returns the local name for the given <code>name</code>.
+     *
+     * @param name the name.
+     * @return the local name part.
+     */
+    protected static String getLocalName(String name) {
+        int idx = name.indexOf(':');
+        if (idx != -1) {
+            return name.substring(idx + 1);
+        } else {
+            return name;
+        }
+    }
+
+    /**
      * Returns the name of a workspace that is not accessible from
      * <code>session</code>.
      * @param session the session.

Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/qom/UpperLowerCaseTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/qom/UpperLowerCaseTest.java?rev=784680&r1=784679&r2=784680&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/qom/UpperLowerCaseTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/qom/UpperLowerCaseTest.java Mon Jun 15 08:06:17 2009
@@ -41,7 +41,7 @@
         node = testRootNode.addNode(nodeName1, testNodeType);
         node.setProperty(propertyName1, "abc");
         node.setProperty(propertyName2, "ABC");
-        testRootNode.save();
+        superuser.save();
     }
 
     protected void tearDown() throws Exception {
@@ -50,48 +50,54 @@
         super.tearDown();
     }
 
-    public void testFullTextSearchScore() throws RepositoryException {
-        // TODO
-    }
-
     public void testLength() throws RepositoryException {
-        // TODO
+        String lenStr = String.valueOf(node.getProperty(propertyName1).getLength());
+        // upper case
+        checkQueries(qf.length(qf.propertyValue("s", propertyName1)),
+                true, QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO,
+                new String[]{lenStr.toUpperCase()},
+                PropertyType.STRING,
+                new boolean[]{true});
+
+        // lower case
+        checkQueries(qf.length(qf.propertyValue("s", propertyName1)),
+                false, QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO,
+                new String[]{lenStr.toLowerCase()},
+                PropertyType.STRING,
+                new boolean[]{true});
     }
 
     public void testNodeLocalName() throws RepositoryException {
-        // TODO
+        String localName = getLocalName(node.getName());
+        // upper case
+        checkQueries(qf.nodeLocalName("s"),
+                true, QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO,
+                new String[]{localName.toLowerCase(), localName.toUpperCase()},
+                PropertyType.STRING,
+                new boolean[]{false, true});
+
+        // lower case
+        checkQueries(qf.nodeLocalName("s"),
+                false, QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO,
+                new String[]{localName.toLowerCase(), localName.toUpperCase()},
+                PropertyType.STRING,
+                new boolean[]{true, false});
     }
 
     public void testNodeName() throws RepositoryException {
-        node.setProperty(propertyName1, "abc", PropertyType.NAME);
-        node.setProperty(propertyName2, "ABC", PropertyType.NAME);
-        node.save();
-
         // upper case
-        checkQueries(qf.propertyValue("s", propertyName1),
+        checkQueries(qf.nodeName("s"),
                 true, QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO,
-                new String[]{"abc", "Abc", "aBc", "abC", "ABC"},
+                new String[]{node.getName().toLowerCase(), node.getName().toUpperCase()},
                 PropertyType.NAME,
-                new boolean[]{false, false, false, false, true});
-
-        checkQueries(qf.propertyValue("s", propertyName2),
-                true, QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO,
-                new String[]{"abc", "Abc", "aBc", "abC", "ABC"},
-                PropertyType.NAME,
-                new boolean[]{false, false, false, false, true});
+                new boolean[]{false, true});
 
         // lower case
-        checkQueries(qf.propertyValue("s", propertyName1),
+        checkQueries(qf.nodeName("s"),
                 false, QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO,
-                new String[]{"abc", "Abc", "aBc", "abC", "ABC"},
-                PropertyType.NAME,
-                new boolean[]{true, false, false, false, false});
-
-        checkQueries(qf.propertyValue("s", propertyName2),
-                false, QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO,
-                new String[]{"abc", "Abc", "aBc", "abC", "ABC"},
+                new String[]{node.getName().toLowerCase(), node.getName().toUpperCase()},
                 PropertyType.NAME,
-                new boolean[]{true, false, false, false, false});
+                new boolean[]{true, false});
     }
 
     public void testPropertyValue() throws RepositoryException {