Propchange: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/operators/EqualityAndComparisonsBetweenDateFieldsAndParameters.java ------------------------------------------------------------------------------ svn:executable = *
Added: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/operators/EqualityAndComparisonsBetweenPrimitivesAndWrapperInstances.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/operators/EqualityAndComparisonsBetweenPrimitivesAndWrapperInstances.java?view=auto&rev=160090 ============================================================================== --- incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/operators/EqualityAndComparisonsBetweenPrimitivesAndWrapperInstances.java (added) +++ incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/operators/EqualityAndComparisonsBetweenPrimitivesAndWrapperInstances.java Mon Apr 4 12:41:23 2005 @@ -0,0 +1,111 @@ +/* + * 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.operators; + +import java.util.Collection; +import java.util.HashSet; + +import javax.jdo.PersistenceManager; +import javax.jdo.Transaction; + +import org.apache.jdo.tck.query.QueryTest; +import org.apache.jdo.tck.pc.mylib.PrimitiveTypes; +import org.apache.jdo.tck.util.BatchTestRunner; + +/** + *<B>Title:</B> Equality and Comparisons Between Primitives and Wrapper + Instances + *<BR> + *<B>Keywords:</B> query + *<BR> + *<B>Assertion ID:</B> A14.6.2-3. + *<BR> + *<B>Assertion Description: </B> Equality and ordering comparisons between + * primitives and instances of wrapper classes are valid in a <code>Query</code> + * filter. + */ + +public class EqualityAndComparisonsBetweenPrimitivesAndWrapperInstances + extends QueryTest { + + /** */ + private static final String ASSERTION_FAILED = + "Assertion A14.6.2-3 (EqualityAndComparisonsBetweenPrimitivesAndWrapperInstances) failed: "; + + /** + * 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(EqualityAndComparisonsBetweenPrimitivesAndWrapperInstances.class); + } + + /** */ + public void test() { + pm = getPM(); + + try { + loadPrimitiveTypes(pm); + runTest(pm); + } + finally { + cleanupDatabase(pm, PrimitiveTypes.class); + pm.close(); + pm = null; + } + } + + /** */ + void runTest(PersistenceManager pm) { + Transaction tx = pm.currentTransaction(); + tx.begin(); + + Collection instance9 = (Collection)pm.newQuery( + PrimitiveTypes.class, "id == 9").execute(); + Collection instancesLess3 = (Collection)pm.newQuery( + PrimitiveTypes.class, "id < 3").execute(); + Collection allOddInstances = (Collection)pm.newQuery( + PrimitiveTypes.class, "booleanNull").execute(); + Collection allInstances = (Collection)pm.newQuery( + PrimitiveTypes.class, "true").execute(); + Collection empty = new HashSet(); + + // case Integer == int + runSimplePrimitiveTypesQuery("intNull == 9", + pm, instance9, ASSERTION_FAILED); + + // case Integer == long + runSimplePrimitiveTypesQuery("intNull == 9L", + pm, instance9, ASSERTION_FAILED); + + // case char == Character + runSimplePrimitiveTypesQuery("'O' == charNull", + pm, allOddInstances, ASSERTION_FAILED); + + // case int <= Integer + runParameterPrimitiveTypesQuery( + "intNotNull <= param", "java.lang.Integer param", new Integer(2), + pm, instancesLess3, ASSERTION_FAILED); + + // case Double > double + runSimplePrimitiveTypesQuery("doubleNull > 0.0", + pm, allInstances, ASSERTION_FAILED); + + tx.commit(); + } +} Propchange: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/operators/EqualityAndComparisonsBetweenPrimitivesAndWrapperInstances.java ------------------------------------------------------------------------------ svn:executable = * Added: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/operators/EqualityAndComparisonsBetweenStringFieldsAndParameters.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/operators/EqualityAndComparisonsBetweenStringFieldsAndParameters.java?view=auto&rev=160090 ============================================================================== --- incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/operators/EqualityAndComparisonsBetweenStringFieldsAndParameters.java (added) +++ incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/operators/EqualityAndComparisonsBetweenStringFieldsAndParameters.java Mon Apr 4 12:41:23 2005 @@ -0,0 +1,114 @@ +/* + * 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.operators; + +import java.util.Collection; +import java.util.HashSet; + +import javax.jdo.PersistenceManager; +import javax.jdo.Query; +import javax.jdo.Transaction; + +import org.apache.jdo.tck.query.QueryTest; +import org.apache.jdo.tck.pc.company.Employee; +import org.apache.jdo.tck.pc.company.CompanyModelReader; +import org.apache.jdo.tck.util.BatchTestRunner; + +/** + *<B>Title:</B> Equality and Comparisons Between String Fields and Parameters + *<BR> + *<B>Keywords:</B> query + *<BR> + *<B>Assertion ID:</B> A14.6.2-5. + *<BR> + *<B>Assertion Description: </B> +Equality and ordering comparisons of <code>String</code> fields and +<code>String</code> parameters are valid. +The comparison is done lexicographically. + */ + +public class EqualityAndComparisonsBetweenStringFieldsAndParameters + extends QueryTest { + + /** */ + private static final String ASSERTION_FAILED = + "Assertion A14.6.2-5 (EqualityAndComparisonsBetweenStringFieldsAndParameters) failed: "; + + /** + * 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(EqualityAndComparisonsBetweenStringFieldsAndParameters.class); + } + + /** */ + public void test() { + pm = getPM(); + + try { + // read test data + CompanyModelReader reader = + loadCompanyModel(pm, "org/apache/jdo/tck/query/company.xml"); + runTest(pm, reader); + } + finally { + cleanupCompanyModel(pm); + pm.close(); + pm = null; + } + } + + /** */ + void runTest(PersistenceManager pm, CompanyModelReader reader) { + Query q; + Object result; + Collection expected; + + Transaction tx = pm.currentTransaction(); + tx.begin(); + + // string field == string parameter + q = pm.newQuery(Employee.class, "firstname == param"); + q.declareParameters("java.lang.String param"); + result = q.execute("emp1First"); + expected = new HashSet(); + expected.add(reader.getFullTimeEmployee("emp1")); + checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); + + // string field >= string parameter + q = pm.newQuery(Employee.class, "firstname >= param"); + q.declareParameters("java.lang.String param"); + result = q.execute("emp1First"); + expected = new HashSet(); + expected.add(reader.getFullTimeEmployee("emp1")); + expected.add(reader.getFullTimeEmployee("emp2")); + expected.add(reader.getPartTimeEmployee("emp3")); + checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); + + // string parameter < stringe field + q = pm.newQuery(Employee.class, "param < firstname"); + q.declareParameters("java.lang.String param"); + result = q.execute("emp2First"); + expected = new HashSet(); + expected.add(reader.getPartTimeEmployee("emp3")); + checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); + + tx.commit(); + } +} \ No newline at end of file Propchange: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/operators/EqualityAndComparisonsBetweenStringFieldsAndParameters.java ------------------------------------------------------------------------------ svn:executable = *