Index: test/java/org/apache/jdo/tck/query/jdoql/methods/SupportedCollectionMethods.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/methods/SupportedCollectionMethods.java (Revision 348914) +++ test/java/org/apache/jdo/tck/query/jdoql/methods/SupportedCollectionMethods.java (Arbeitskopie) @@ -16,16 +16,15 @@ package org.apache.jdo.tck.query.jdoql.methods; -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.JDO_Test; import org.apache.jdo.tck.pc.company.CompanyModelReader; import org.apache.jdo.tck.pc.company.Department; 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; @@ -41,6 +40,7 @@ *
main is called when the class
* is directly executed from the command line.
@@ -60,67 +159,72 @@
}
/** */
- public void test() {
- pm = getPM();
+ public void testContains() {
+ int index = 0;
+ executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[index],
+ expectedResult[index]);
+ executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[index],
+ expectedResult[index]);
- try {
- // read test data
- CompanyModelReader reader = loadCompanyModel(pm, COMPANY_TESTDATA);
- runTestIsEmpty(pm, reader);
- runTestContains(pm, reader);
+ index++;
+ Object[] parameters = new Object[]{
+ getParameter(Employee.class, "personid == 1", true)};
+ executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[index],
+ parameters, expectedResult[index]);
+ executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[index],
+ parameters, expectedResult[index]);
+ }
+
+ /** */
+ public void testIsEmpty() {
+ for (int index = 2; index < 4; index++) {
+ executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[index],
+ expectedResult[index]);
+ executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[index],
+ expectedResult[index]);
}
- finally {
- cleanupCompanyModel(pm);
- pm.close();
- pm = null;
- }
}
-
+
/** */
- void runTestIsEmpty(PersistenceManager pm, CompanyModelReader reader) {
- Query q;
- Object result;
- Collection expected;
+ public void testSize() {
+ int index = 4;
+ executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[index],
+ expectedResult[index]);
+ executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[index],
+ expectedResult[index]);
+ }
- Transaction tx = pm.currentTransaction();
- tx.begin();
-
- q = pm.newQuery(Department.class, "!employees.isEmpty()");
- result = q.execute();
- expected = new HashSet();
- expected.add(reader.getDepartment("dept1"));
- expected.add(reader.getDepartment("dept2"));
- checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected);
-
- q = pm.newQuery(Employee.class, "team.isEmpty()");
- result = q.execute();
- expected = new HashSet();
- expected.add(reader.getFullTimeEmployee("emp1"));
- expected.add(reader.getPartTimeEmployee("emp3"));
- expected.add(reader.getPartTimeEmployee("emp4"));
- expected.add(reader.getFullTimeEmployee("emp5"));
- checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected);
-
- tx.commit();
+ /**
+ * @see JDO_Test#localSetUp()
+ */
+ protected void localSetUp() {
+ loadCompanyModel(getPM(), COMPANY_TESTDATA);
+ addTearDownClass(CompanyModelReader.getTearDownClasses());
}
-
+
/** */
- void runTestContains(PersistenceManager pm, CompanyModelReader reader) {
- Query q;
+ private Object getParameter(
+ Class candidateClass, String filter, boolean unique) {
Object result;
- Collection expected;
-
- Transaction tx = pm.currentTransaction();
- tx.begin();
-
- q = pm.newQuery(Department.class);
- q.setFilter("employees.contains(e) && e.personid == 1");
- q.declareVariables("Employee e");
- result = q.execute();
- expected = new HashSet();
- expected.add(reader.getDepartment("dept1"));
- checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected);
-
- tx.commit();
+ PersistenceManager pm = getPM();
+ Transaction transaction = pm.currentTransaction();
+ transaction.begin();
+ try {
+ Query query = filter == null ? pm.newQuery(candidateClass) :
+ pm.newQuery(candidateClass, filter);
+ if (unique) {
+ query.setUnique(unique);
+ }
+ try {
+ result = query.execute();
+ } finally {
+ query.closeAll();
+ }
+ } finally {
+ if (transaction.isActive()) {
+ transaction.rollback();
+ }
+ }
+ return result;
}
}
Index: test/java/org/apache/jdo/tck/query/jdoql/methods/SupportedMapMethods.java
===================================================================
--- test/java/org/apache/jdo/tck/query/jdoql/methods/SupportedMapMethods.java (Revision 348914)
+++ test/java/org/apache/jdo/tck/query/jdoql/methods/SupportedMapMethods.java (Arbeitskopie)
@@ -16,6 +16,8 @@
package org.apache.jdo.tck.query.jdoql.methods;
+import java.util.ArrayList;
+
import org.apache.jdo.tck.JDO_Test;
import org.apache.jdo.tck.pc.company.CompanyModelReader;
import org.apache.jdo.tck.pc.company.Person;
@@ -36,6 +38,8 @@
*