You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by br...@apache.org on 2005/10/13 10:48:39 UTC

svn commit: r320696 - in /incubator/jdo/trunk/tck20/test: conf/alltests.conf java/org/apache/jdo/tck/query/jdoql/operators/Instanceof.java java/org/apache/jdo/tck/query/jdoql/operators/Modulo.java

Author: brazil
Date: Thu Oct 13 01:48:32 2005
New Revision: 320696

URL: http://svn.apache.org/viewcvs?rev=320696&view=rev
Log:
JDO-158: Implement new JDO 2 query tests cases concerning new operators.

Added:
    incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/jdoql/operators/Instanceof.java
    incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/jdoql/operators/Modulo.java
Modified:
    incubator/jdo/trunk/tck20/test/conf/alltests.conf

Modified: incubator/jdo/trunk/tck20/test/conf/alltests.conf
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/conf/alltests.conf?rev=320696&r1=320695&r2=320696&view=diff
==============================================================================
--- incubator/jdo/trunk/tck20/test/conf/alltests.conf (original)
+++ incubator/jdo/trunk/tck20/test/conf/alltests.conf Thu Oct 13 01:48:32 2005
@@ -320,10 +320,12 @@
 org.apache.jdo.tck.query.jdoql.operators.EqualityAndComparisonsBetweenStringFieldsAndParameters \
 org.apache.jdo.tck.query.jdoql.operators.GreaterThan \
 org.apache.jdo.tck.query.jdoql.operators.GreaterThanOrEqual \
+org.apache.jdo.tck.query.jdoql.operators.Instanceof \
 org.apache.jdo.tck.query.jdoql.operators.LessThan \
 org.apache.jdo.tck.query.jdoql.operators.LessThanOrEqual \
 org.apache.jdo.tck.query.jdoql.operators.LogicalComplement \
 org.apache.jdo.tck.query.jdoql.operators.Multiplication \
+org.apache.jdo.tck.query.jdoql.operators.Modulo \
 org.apache.jdo.tck.query.jdoql.operators.NotEquals \
 org.apache.jdo.tck.query.jdoql.operators.PromotionOfNumericOperands \
 org.apache.jdo.tck.query.jdoql.operators.SignInversion \

Added: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/jdoql/operators/Instanceof.java
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/jdoql/operators/Instanceof.java?rev=320696&view=auto
==============================================================================
--- incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/jdoql/operators/Instanceof.java (added)
+++ incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/jdoql/operators/Instanceof.java Thu Oct 13 01:48:32 2005
@@ -0,0 +1,112 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ * 
+ * Licensed 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.jdo.tck.query.jdoql.operators;
+
+import org.apache.jdo.tck.JDO_Test;
+import org.apache.jdo.tck.pc.company.CompanyModelReader;
+import org.apache.jdo.tck.pc.company.Employee;
+import org.apache.jdo.tck.query.QueryElementHolder;
+import org.apache.jdo.tck.query.QueryTest;
+import org.apache.jdo.tck.util.BatchTestRunner;
+
+/**
+ *<B>Title:</B> Instanceof operator.
+ *<BR>
+ *<B>Keywords:</B> query
+ *<BR>
+ *<B>Assertion ID:</B> A14.6.2-41.
+ *<BR>
+ *<B>Assertion Description: </B>
+ * instanceof operator
+ */
+public class Instanceof extends QueryTest {
+
+    /** */
+    private static final String ASSERTION_FAILED = 
+        "Assertion A14.6.2-41 (Instanceof) failed: ";
+    
+    /** 
+     * The array of valid queries which may be executed as 
+     * single string queries and as API queries.
+     */
+    private static final QueryElementHolder[] VALID_QUERIES = {
+        new QueryElementHolder(
+        /*UNIQUE*/      null,
+        /*RESULT*/      null, 
+        /*INTO*/        null, 
+        /*FROM*/        Employee.class,
+        /*EXCLUDE*/     null,
+        /*WHERE*/       "mentor instanceof " +
+                        "org.apache.jdo.tck.pc.company.PartTimeEmployee",
+        /*VARIABLES*/   null,
+        /*PARAMETERS*/  null,
+        /*IMPORTS*/     null,
+        /*GROUP BY*/    null,
+        /*ORDER BY*/    null,
+        /*FROM*/        null,
+        /*TO*/          null),
+        new QueryElementHolder(
+        /*UNIQUE*/      null,
+        /*RESULT*/      null, 
+        /*INTO*/        null, 
+        /*FROM*/        Employee.class,
+        /*EXCLUDE*/     null,
+        /*WHERE*/       "mentor instanceof " +
+                        "PartTimeEmployee",
+        /*VARIABLES*/   null,
+        /*PARAMETERS*/  null,
+        /*IMPORTS*/     "IMPORT org.apache.jdo.tck.pc.company.PartTimeEmployee",
+        /*GROUP BY*/    null,
+        /*ORDER BY*/    null,
+        /*FROM*/        null,
+        /*TO*/          null)
+    };
+
+    /** The expected results of valid queries. */
+    private static String[][] expectedResult = {
+            {"emp2", "emp3"}
+    };
+            
+    /**
+     * The <code>main</code> is called when the class
+     * is directly executed from the command line.
+     * @param args The arguments passed to the program.
+     */
+    public static void main(String[] args) {
+        BatchTestRunner.run(Instanceof.class);
+    }
+    
+    /** */
+    public void testPositive() {
+        for (int i = 0; i < VALID_QUERIES.length; i++) {
+            Object[] expectedResultValues = 
+                getCompanyModelInstances(expectedResult[i]);
+            executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[i], 
+                    expectedResultValues);
+            executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[i], 
+                    expectedResultValues);
+        }
+    }
+
+    /**
+     * @see JDO_Test#localSetUp()
+     */
+    protected void localSetUp() {
+        loadCompanyModel(getPM(), COMPANY_TESTDATA);
+        addTearDownClass(CompanyModelReader.getTearDownClasses());
+    }
+}

Added: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/jdoql/operators/Modulo.java
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/jdoql/operators/Modulo.java?rev=320696&view=auto
==============================================================================
--- incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/jdoql/operators/Modulo.java (added)
+++ incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/jdoql/operators/Modulo.java Thu Oct 13 01:48:32 2005
@@ -0,0 +1,140 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ * 
+ * Licensed 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.jdo.tck.query.jdoql.operators;
+
+import java.util.Collection;
+
+import javax.jdo.PersistenceManager;
+import javax.jdo.Transaction;
+
+import org.apache.jdo.tck.JDO_Test;
+import org.apache.jdo.tck.pc.company.CompanyModelReader;
+import org.apache.jdo.tck.pc.company.Person;
+import org.apache.jdo.tck.pc.mylib.PrimitiveTypes;
+import org.apache.jdo.tck.query.QueryElementHolder;
+import org.apache.jdo.tck.query.QueryTest;
+import org.apache.jdo.tck.util.BatchTestRunner;
+
+/**
+ *<B>Title:</B> Modulo operator.
+ *<BR>
+ *<B>Keywords:</B> query
+ *<BR>
+ *<B>Assertion ID:</B> A14.6.2-40.
+ *<BR>
+ *<B>Assertion Description: </B>
+ * modulo operator
+ */
+public class Modulo extends QueryTest {
+
+    /** */
+    private static final String ASSERTION_FAILED = 
+        "Assertion A14.6.2-40 (Modulo) failed: ";
+    
+    /** 
+     * The array of valid queries which may be executed as 
+     * single string queries and as API queries.
+     */
+    private static final QueryElementHolder[] VALID_QUERIES = {
+        new QueryElementHolder(
+        /*UNIQUE*/      null,
+        /*RESULT*/      null, 
+        /*INTO*/        null, 
+        /*FROM*/        Person.class,
+        /*EXCLUDE*/     null,
+        /*WHERE*/       "personid % 2 == 0",
+        /*VARIABLES*/   null,
+        /*PARAMETERS*/  null,
+        /*IMPORTS*/     null,
+        /*GROUP BY*/    null,
+        /*ORDER BY*/    null,
+        /*FROM*/        null,
+        /*TO*/          null)
+    };
+
+    /** The expected results of valid queries. */
+    private static String[][] expectedResult = {
+            {"emp2", "emp4"}
+    };
+            
+    /**
+     * The <code>main</code> is called when the class
+     * is directly executed from the command line.
+     * @param args The arguments passed to the program.
+     */
+    public static void main(String[] args) {
+        BatchTestRunner.run(Modulo.class);
+    }
+    
+    /** */
+    public void testPositive() {
+        for (int i = 0; i < VALID_QUERIES.length; i++) {
+            Object[] expectedResultValues = 
+                getCompanyModelInstances(expectedResult[i]);
+            executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[i], 
+                    expectedResultValues);
+            executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[i], 
+                    expectedResultValues);
+        }
+        
+        runTestUsingPrimitiveTypes();
+    }
+
+    /** */
+    private void runTestUsingPrimitiveTypes() {
+        PersistenceManager pm = getPM();
+        Transaction tx = pm.currentTransaction();
+        tx.begin();
+        
+        Collection instance4 = (Collection)pm.newQuery(
+            PrimitiveTypes.class, "id == 10").execute();
+                
+        runSimplePrimitiveTypesQuery("id % 10 == 0", 
+                                     pm, instance4, ASSERTION_FAILED);
+        runSimplePrimitiveTypesQuery("byteNotNull % 10 == 0",
+                                     pm, instance4, ASSERTION_FAILED);
+        runSimplePrimitiveTypesQuery("shortNotNull % 10 == 0", 
+                                     pm, instance4, ASSERTION_FAILED);            
+        runSimplePrimitiveTypesQuery("intNotNull % 10 == 0", 
+                                     pm, instance4, ASSERTION_FAILED);            
+        runSimplePrimitiveTypesQuery("longNotNull % 10 == 0", 
+                                     pm, instance4, ASSERTION_FAILED);
+        runSimplePrimitiveTypesQuery("byteNull % 10 == 0", 
+                                     pm, instance4, ASSERTION_FAILED);
+        runSimplePrimitiveTypesQuery("shortNull % 10 == 0", 
+                                     pm, instance4, ASSERTION_FAILED);
+        runSimplePrimitiveTypesQuery("intNull % 10 == 0", 
+                                     pm, instance4, ASSERTION_FAILED);
+        runSimplePrimitiveTypesQuery("longNull % 10 == 0", 
+                                     pm, instance4, ASSERTION_FAILED);
+        runSimplePrimitiveTypesQuery("bigInteger % 10 == 0", 
+                                     pm, instance4, ASSERTION_FAILED);
+
+        tx.commit();
+    }
+
+    /**
+     * @see JDO_Test#localSetUp()
+     */
+    protected void localSetUp() {
+        PersistenceManager pm = getPM();
+        loadCompanyModel(pm, COMPANY_TESTDATA);
+        addTearDownClass(CompanyModelReader.getTearDownClasses());
+        loadPrimitiveTypes(pm);
+        addTearDownClass(PrimitiveTypes.class);
+    }
+}