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/11 10:16:36 UTC

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

Author: mreutegg
Date: Thu Jun 11 08:16:35 2009
New Revision: 783688

URL: http://svn.apache.org/viewvc?rev=783688&view=rev
Log:
JCR-2085: test case (TCK) maintenance for JCR 2.0
- more order by tests
- setLimit and setOffset covered
- spi2jcr now uses JCRTestSuite as is (with known issues in pom.xml)

Added:
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/OrderByDecimalTest.java   (with props)
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/OrderByURITest.java   (with props)
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/SetLimitTest.java   (with props)
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/SetOffsetTest.java   (with props)
Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/QueryImpl.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/QueryResultImpl.java
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/AbstractOrderByTest.java
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/AbstractQueryTest.java
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/TestAll.java
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/qom/AbstractQOMTest.java
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/qom/BindVariableValueTest.java
    jackrabbit/trunk/jackrabbit-spi2jcr/pom.xml
    jackrabbit/trunk/jackrabbit-spi2jcr/src/test/java/org/apache/jackrabbit/test/TestAll.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/QueryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/QueryImpl.java?rev=783688&r1=783687&r2=783688&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/QueryImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/QueryImpl.java Thu Jun 11 08:16:35 2009
@@ -89,7 +89,7 @@
     /**
      * The maximum result size
      */
-    private long limit;
+    private long limit = -1;
 
     /**
      * The offset in the total result set
@@ -256,6 +256,9 @@
      * @param limit new maximum size of the result set
      */
     public void setLimit(long limit) {
+        if (limit < 0) {
+            throw new IllegalArgumentException("limit must not be negativ");
+        }
         this.limit = limit;
     }
 
@@ -265,6 +268,9 @@
      * @param offset new start offset of the result set
      */
     public void setOffset(long offset) {
+        if (offset < 0) {
+            throw new IllegalArgumentException("offset must not be negativ");
+        }
         this.offset = offset;
     }
 

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/QueryResultImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/QueryResultImpl.java?rev=783688&r1=783687&r2=783688&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/QueryResultImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/QueryResultImpl.java Thu Jun 11 08:16:35 2009
@@ -124,7 +124,7 @@
     private final long offset;
 
     /**
-     * The maximum size of this result if limit > 0
+     * The maximum size of this result if limit >= 0
      */
     private final long limit;
 
@@ -265,7 +265,7 @@
         long maxResultSize = size;
 
         // is there any limit?
-        if (limit > 0) {
+        if (limit >= 0) {
             maxResultSize = limit;
         }
 
@@ -442,7 +442,7 @@
                 return -1;
             }
             long size = total - offset;
-            if (limit > 0 && size > limit) {
+            if (limit >= 0 && size > limit) {
                 return limit;
             } else {
                 return size;

Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/AbstractOrderByTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/AbstractOrderByTest.java?rev=783688&r1=783687&r2=783688&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/AbstractOrderByTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/AbstractOrderByTest.java Thu Jun 11 08:16:35 2009
@@ -20,6 +20,8 @@
 import javax.jcr.Node;
 import javax.jcr.NodeIterator;
 import javax.jcr.Repository;
+import javax.jcr.Value;
+import javax.jcr.ValueFactory;
 import javax.jcr.query.Query;
 import javax.jcr.query.QueryResult;
 import javax.jcr.query.qom.QueryObjectModel;
@@ -32,6 +34,7 @@
 import java.util.Arrays;
 import java.util.List;
 import java.util.ArrayList;
+import java.math.BigDecimal;
 
 /**
  * Abstract base class for all order by tests. Provides utility methods.
@@ -41,7 +44,7 @@
     /** If <code>true</code> this repository supports sql queries */
     protected boolean checkSQL;
 
-    protected QueryObjectModelFactory qf;
+    protected ValueFactory vf;
 
     private String[] nodeNames;
 
@@ -49,7 +52,7 @@
         super.setUp();
         checkSQL = isSupported(Repository.OPTION_QUERY_SQL_SUPPORTED);
         nodeNames = new String[]{nodeName1, nodeName2, nodeName3, nodeName4};
-        qf = superuser.getWorkspace().getQueryManager().getQOMFactory();
+        vf = superuser.getValueFactory();
     }
 
     /**
@@ -63,7 +66,24 @@
             Node node = testRootNode.addNode(nodeNames[i], testNodeType);
             node.setProperty(propertyName1, values[i]);
         }
-        testRootNode.save();
+        superuser.save();
+    }
+
+    /**
+     * Populates the workspace with child nodes under <code>testroot</code> with
+     * each node has a value set in property with name
+     * <code>propertyname1</code>. The actual value is created by using the
+     * sessions value factory and the given <code>type</code>.
+     *
+     * @param values the String values.
+     * @param type a JCR property type.
+     */
+    protected void populate(String[] values, int type) throws RepositoryException {
+        for (int i = 0; i < values.length; i++) {
+            Node node = testRootNode.addNode(nodeNames[i], testNodeType);
+            node.setProperty(propertyName1, vf.createValue(values[i], type));
+        }
+        superuser.save();
     }
 
     /**
@@ -77,7 +97,7 @@
             Node node = testRootNode.addNode(nodeNames[i], testNodeType);
             node.setProperty(propertyName1, values[i]);
         }
-        testRootNode.save();
+        superuser.save();
     }
 
     /**
@@ -91,7 +111,7 @@
             Node node = testRootNode.addNode(nodeNames[i], testNodeType);
             node.setProperty(propertyName1, values[i]);
         }
-        testRootNode.save();
+        superuser.save();
     }
 
     /**
@@ -105,7 +125,21 @@
             Node node = testRootNode.addNode(nodeNames[i], testNodeType);
             node.setProperty(propertyName1, values[i]);
         }
-        testRootNode.save();
+        superuser.save();
+    }
+
+    /**
+     * Populates the workspace with child nodes under <code>testroot</code> with
+     * each node has a decimal value set in property with name
+     * <code>propertyname1</code>.
+     * @param values the decimal values.
+     */
+    protected void populate(BigDecimal[] values) throws RepositoryException {
+        for (int i = 0; i < values.length; i++) {
+            Node node = testRootNode.addNode(nodeNames[i], testNodeType);
+            node.setProperty(propertyName1, values[i]);
+        }
+        superuser.save();
     }
 
     /**

Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/AbstractQueryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/AbstractQueryTest.java?rev=783688&r1=783687&r2=783688&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/AbstractQueryTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/AbstractQueryTest.java Thu Jun 11 08:16:35 2009
@@ -22,6 +22,8 @@
 import javax.jcr.query.QueryResult;
 import javax.jcr.query.RowIterator;
 import javax.jcr.query.Query;
+import javax.jcr.query.QueryManager;
+import javax.jcr.query.qom.QueryObjectModelFactory;
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 import javax.jcr.Node;
@@ -64,6 +66,11 @@
     protected String jcrDeref;
 
     /**
+     * The query object model factory for {@link #superuser}.
+     */
+    protected QueryObjectModelFactory qf;
+
+    /**
      * Set-up the configuration values used for the test. Per default retrieves
      * a session, configures testRoot, and nodetype and checks if the query
      * language for the current language is available.<br>
@@ -75,6 +82,8 @@
         jcrRoot = superuser.getNamespacePrefix(NS_JCR_URI) + ":root";
         jcrContains = superuser.getNamespacePrefix(NS_JCR_URI) + ":contains";
         jcrDeref = superuser.getNamespacePrefix(NS_JCR_URI) + ":deref";
+        QueryManager qm = superuser.getWorkspace().getQueryManager();
+        qf = qm.getQOMFactory();
     }
 
     /**

Added: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/OrderByDecimalTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/OrderByDecimalTest.java?rev=783688&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/OrderByDecimalTest.java (added)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/OrderByDecimalTest.java Thu Jun 11 08:16:35 2009
@@ -0,0 +1,32 @@
+/*
+ * 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.jackrabbit.test.api.query;
+
+import java.math.BigDecimal;
+
+import javax.jcr.RepositoryException;
+
+/**
+ * <code>OrderByDecimalTest</code> tests order by queries with decimal properties.
+ */
+public class OrderByDecimalTest extends AbstractOrderByTest {
+
+    public void testDecimal() throws RepositoryException {
+        populate(new BigDecimal[]{new BigDecimal(0), new BigDecimal(-1), new BigDecimal(1), new BigDecimal(5)});
+        checkOrder(new String[]{nodeName2, nodeName1, nodeName3, nodeName4});
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/OrderByDecimalTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/OrderByURITest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/OrderByURITest.java?rev=783688&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/OrderByURITest.java (added)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/OrderByURITest.java Thu Jun 11 08:16:35 2009
@@ -0,0 +1,33 @@
+/*
+ * 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.jackrabbit.test.api.query;
+
+import javax.jcr.RepositoryException;
+import javax.jcr.PropertyType;
+
+/**
+ * <code>OrderByURITest</code> tests order by queries with URI properties.
+ */
+public class OrderByURITest extends AbstractOrderByTest {
+
+    private static final String BASE_URI = "http://example.com/";
+
+    public void testURI() throws RepositoryException {
+        populate(new String[]{BASE_URI + "a", BASE_URI + "b", BASE_URI + "c", BASE_URI + "d"}, PropertyType.URI);
+        checkOrder(new String[]{nodeName1, nodeName2, nodeName3, nodeName4});
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/OrderByURITest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/SetLimitTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/SetLimitTest.java?rev=783688&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/SetLimitTest.java (added)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/SetLimitTest.java Thu Jun 11 08:16:35 2009
@@ -0,0 +1,45 @@
+/*
+ * 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.jackrabbit.test.api.query;
+
+import javax.jcr.RepositoryException;
+import javax.jcr.query.Query;
+
+/**
+ * <code>SetLimitTest</code> contains test cases for the method Query.setLimit().
+ */
+public class SetLimitTest extends AbstractQueryTest {
+
+    public void testSetLimit() throws RepositoryException {
+        testRootNode.addNode(nodeName1, testNodeType);
+        testRootNode.addNode(nodeName2, testNodeType);
+        testRootNode.addNode(nodeName3, testNodeType);
+        superuser.save();
+        for (int i = 0; i < 5; i++) {
+            Query query = qf.createQuery(
+                    qf.selector(testNodeType, "s"),
+                    qf.descendantNode("s", testRoot),
+                    null, 
+                    null
+            );
+            query.setLimit(i);
+            long expected = Math.min(i, 3);
+            assertEquals("Wrong numer of results", expected,
+                    getSize(query.execute().getNodes()));
+        }
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/SetLimitTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/SetOffsetTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/SetOffsetTest.java?rev=783688&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/SetOffsetTest.java (added)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/SetOffsetTest.java Thu Jun 11 08:16:35 2009
@@ -0,0 +1,45 @@
+/*
+ * 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.jackrabbit.test.api.query;
+
+import javax.jcr.query.Query;
+import javax.jcr.RepositoryException;
+
+/**
+ * <code>SetOffsetTest</code> contains test cases for the method Query.setOffset().
+ */
+public class SetOffsetTest extends AbstractQueryTest {
+
+    public void testSetOffset() throws RepositoryException {
+        testRootNode.addNode(nodeName1, testNodeType);
+        testRootNode.addNode(nodeName2, testNodeType);
+        testRootNode.addNode(nodeName3, testNodeType);
+        superuser.save();
+        for (int i = 0; i < 5; i++) {
+            Query query = qf.createQuery(
+                    qf.selector(testNodeType, "s"),
+                    qf.descendantNode("s", testRoot),
+                    null,
+                    null
+            );
+            query.setOffset(i);
+            long expected = Math.max(3 - i, 0);
+            assertEquals("Wrong numer of results", expected,
+                    getSize(query.execute().getNodes()));
+        }
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/SetOffsetTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/TestAll.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/TestAll.java?rev=783688&r1=783687&r2=783688&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/TestAll.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/TestAll.java Thu Jun 11 08:16:35 2009
@@ -73,6 +73,10 @@
         suite.addTestSuite(OrderByNameTest.class);
         suite.addTestSuite(OrderByLowerCaseTest.class);
         suite.addTestSuite(OrderByUpperCaseTest.class);
+        suite.addTestSuite(OrderByDecimalTest.class);
+        suite.addTestSuite(OrderByURITest.class);
+        suite.addTestSuite(SetLimitTest.class);
+        suite.addTestSuite(SetOffsetTest.class);
 
         return suite;
     }

Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/qom/AbstractQOMTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/qom/AbstractQOMTest.java?rev=783688&r1=783687&r2=783688&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/qom/AbstractQOMTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/qom/AbstractQOMTest.java Thu Jun 11 08:16:35 2009
@@ -24,11 +24,9 @@
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 import javax.jcr.query.Query;
-import javax.jcr.query.QueryManager;
 import javax.jcr.query.QueryResult;
 import javax.jcr.query.Row;
 import javax.jcr.query.RowIterator;
-import javax.jcr.query.qom.QueryObjectModelFactory;
 
 import org.apache.jackrabbit.test.api.query.AbstractQueryTest;
 
@@ -37,14 +35,6 @@
  */
 public class AbstractQOMTest extends AbstractQueryTest {
 
-    protected QueryObjectModelFactory qf;
-
-    protected void setUp() throws Exception {
-        super.setUp();
-        QueryManager qm = superuser.getWorkspace().getQueryManager();
-        qf = qm.getQOMFactory();
-    }
-
     /**
      * Binds the given <code>value</code> to the variable named
      * <code>var</code>.

Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/qom/BindVariableValueTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/qom/BindVariableValueTest.java?rev=783688&r1=783687&r2=783688&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/qom/BindVariableValueTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/qom/BindVariableValueTest.java Thu Jun 11 08:16:35 2009
@@ -17,11 +17,13 @@
 package org.apache.jackrabbit.test.api.query.qom;
 
 import java.util.Calendar;
+import java.math.BigDecimal;
 
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 import javax.jcr.ValueFactory;
+import javax.jcr.PropertyType;
 import javax.jcr.query.Query;
 import javax.jcr.query.qom.QueryObjectModelConstants;
 
@@ -40,6 +42,10 @@
 
     private static final Calendar DATE_VALUE = Calendar.getInstance();
 
+    private static final BigDecimal DECIMAL_VALUE = new BigDecimal(LONG_VALUE);
+
+    private static final String URI_VALUE = "http://example.com/";
+
     private Query query;
 
     private ValueFactory vf;
@@ -77,7 +83,7 @@
     public void testString() throws RepositoryException {
         Node n = testRootNode.addNode(nodeName1, testNodeType);
         n.setProperty(propertyName1, STRING_VALUE);
-        testRootNode.save();
+        superuser.save();
 
         bindVariableValue(query, "v", vf.createValue(STRING_VALUE));
         checkResult(query.execute(), new Node[]{n});
@@ -86,7 +92,7 @@
     public void testDate() throws RepositoryException {
         Node n = testRootNode.addNode(nodeName1, testNodeType);
         n.setProperty(propertyName1, DATE_VALUE);
-        testRootNode.save();
+        superuser.save();
 
         bindVariableValue(query, "v", vf.createValue(DATE_VALUE));
         checkResult(query.execute(), new Node[]{n});
@@ -95,7 +101,7 @@
     public void testLong() throws RepositoryException {
         Node n = testRootNode.addNode(nodeName1, testNodeType);
         n.setProperty(propertyName1, LONG_VALUE);
-        testRootNode.save();
+        superuser.save();
 
         bindVariableValue(query, "v", vf.createValue(LONG_VALUE));
         checkResult(query.execute(), new Node[]{n});
@@ -104,7 +110,7 @@
     public void testDouble() throws RepositoryException {
         Node n = testRootNode.addNode(nodeName1, testNodeType);
         n.setProperty(propertyName1, DOUBLE_VALUE);
-        testRootNode.save();
+        superuser.save();
 
         bindVariableValue(query, "v", vf.createValue(DOUBLE_VALUE));
         checkResult(query.execute(), new Node[]{n});
@@ -113,17 +119,17 @@
     public void testBoolean() throws RepositoryException {
         Node n = testRootNode.addNode(nodeName1, testNodeType);
         n.setProperty(propertyName1, BOOLEAN_VALUE);
-        testRootNode.save();
+        superuser.save();
 
         bindVariableValue(query, "v", vf.createValue(BOOLEAN_VALUE));
         checkResult(query.execute(), new Node[]{n});
     }
 
     public void testName() throws RepositoryException {
-        Value name = vf.createValue(STRING_VALUE);
+        Value name = vf.createValue(STRING_VALUE, PropertyType.NAME);
         Node n = testRootNode.addNode(nodeName1, testNodeType);
         n.setProperty(propertyName1, name);
-        testRootNode.save();
+        superuser.save();
 
         bindVariableValue(query, "v", name);
         checkResult(query.execute(), new Node[]{n});
@@ -131,9 +137,9 @@
 
     public void testPath() throws RepositoryException {
         Node n = testRootNode.addNode(nodeName1, testNodeType);
-        Value path = vf.createValue(n.getPath());
+        Value path = vf.createValue(n.getPath(), PropertyType.PATH);
         n.setProperty(propertyName1, path);
-        testRootNode.save();
+        superuser.save();
 
         bindVariableValue(query, "v", path);
         checkResult(query.execute(), new Node[]{n});
@@ -141,14 +147,14 @@
 
     public void testReference() throws RepositoryException {
         Node n = testRootNode.addNode(nodeName1, testNodeType);
-        testRootNode.save();
+        superuser.save();
 
         if (!n.isNodeType(mixReferenceable)) {
             n.addMixin(mixReferenceable);
-            n.save();
+            superuser.save();
         }
         n.setProperty(propertyName1, n);
-        n.save();
+        superuser.save();
 
 
         bindVariableValue(query, "v", vf.createValue(n));
@@ -156,14 +162,38 @@
     }
 
     public void testWeakReference() throws RepositoryException {
-        // TODO
+        Node n = testRootNode.addNode(nodeName1, testNodeType);
+        superuser.save();
+
+        if (!n.isNodeType(mixReferenceable)) {
+            n.addMixin(mixReferenceable);
+            superuser.save();
+        }
+        n.setProperty(propertyName1, vf.createValue(n, true));
+        superuser.save();
+
+
+        bindVariableValue(query, "v", vf.createValue(n, true));
+        checkResult(query.execute(), new Node[]{n});
     }
 
     public void testURI() throws RepositoryException {
-        // TODO
+        Value value = vf.createValue(URI_VALUE, PropertyType.URI);
+        Node n = testRootNode.addNode(nodeName1, testNodeType);
+        n.setProperty(propertyName1, value);
+        superuser.save();
+
+        bindVariableValue(query, "v", value);
+        checkResult(query.execute(), new Node[]{n});
     }
 
     public void testDecimal() throws RepositoryException {
-        // TODO
+        Value value = vf.createValue(DECIMAL_VALUE);
+        Node n = testRootNode.addNode(nodeName1, testNodeType);
+        n.setProperty(propertyName1, value);
+        superuser.save();
+
+        bindVariableValue(query, "v", value);
+        checkResult(query.execute(), new Node[]{n});
     }
 }

Modified: jackrabbit/trunk/jackrabbit-spi2jcr/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2jcr/pom.xml?rev=783688&r1=783687&r2=783688&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2jcr/pom.xml (original)
+++ jackrabbit/trunk/jackrabbit-spi2jcr/pom.xml Thu Jun 11 08:16:35 2009
@@ -79,6 +79,12 @@
                 org.apache.jackrabbit.test.api.query.OrderByLowerCaseTest
                 org.apache.jackrabbit.test.api.query.OrderByNameTest
                 org.apache.jackrabbit.test.api.query.OrderByUpperCaseTest
+                org.apache.jackrabbit.test.api.query.OrderByDecimalTest
+                org.apache.jackrabbit.test.api.query.OrderByURITest
+                org.apache.jackrabbit.test.api.query.SetLimitTest
+                org.apache.jackrabbit.test.api.query.SetOffsetTest
+                org.apache.jackrabbit.test.api.query.qom
+                org.apache.jackrabbit.test.api.version.simple
               </value>
             </property>
           </systemProperties>

Modified: jackrabbit/trunk/jackrabbit-spi2jcr/src/test/java/org/apache/jackrabbit/test/TestAll.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2jcr/src/test/java/org/apache/jackrabbit/test/TestAll.java?rev=783688&r1=783687&r2=783688&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2jcr/src/test/java/org/apache/jackrabbit/test/TestAll.java (original)
+++ jackrabbit/trunk/jackrabbit-spi2jcr/src/test/java/org/apache/jackrabbit/test/TestAll.java Thu Jun 11 08:16:35 2009
@@ -18,25 +18,11 @@
 
 import junit.framework.TestCase;
 import junit.framework.Test;
-import junit.framework.TestSuite;
+import org.apache.jackrabbit.test.JCRTestSuite;
 
 public class TestAll extends TestCase {
 
     public static Test suite() {
         return new JCRTestSuite();
     }
-
-    private static class JCRTestSuite extends TestSuite {
-
-        private JCRTestSuite() {
-            super("JCR API tests");
-            addTest(org.apache.jackrabbit.test.api.TestAll.suite());
-            addTest(org.apache.jackrabbit.test.api.query.TestAll.suite());
-            addTest(org.apache.jackrabbit.test.api.nodetype.TestAll.suite());
-            addTest(org.apache.jackrabbit.test.api.util.TestAll.suite());
-            addTest(org.apache.jackrabbit.test.api.lock.TestAll.suite());
-            addTest(org.apache.jackrabbit.test.api.version.TestAll.suite());
-            addTest(org.apache.jackrabbit.test.api.observation.TestAll.suite());
-        }
-    }
 }