Index: test/java/org/apache/jdo/tck/query/sql/NewQuery.java =================================================================== --- test/java/org/apache/jdo/tck/query/sql/NewQuery.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/sql/NewQuery.java (Arbeitskopie) @@ -83,7 +83,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/sql/NoCandidateClass.java =================================================================== --- test/java/org/apache/jdo/tck/query/sql/NoCandidateClass.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/sql/NoCandidateClass.java (Arbeitskopie) @@ -93,7 +93,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/sql/ShapeOfResult.java =================================================================== --- test/java/org/apache/jdo/tck/query/sql/ShapeOfResult.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/sql/ShapeOfResult.java (Arbeitskopie) @@ -79,11 +79,11 @@ */ private Object[] expectedResult = { // candidate class - getMylibInstancesAsList(new String[]{ + getTransientMylibInstancesAsList(new String[]{ "primitiveTypesPositive", "primitiveTypesNegative", "primitiveTypesCharacterStringLiterals"}), // candidate class, unique - getMylibInstance("primitiveTypesPositive"), + getTransientMylibInstance("primitiveTypesPositive"), // single column Arrays.asList(new Object[]{"emp1First", "emp2First", "emp3First", "emp4First", "emp5First"}), @@ -176,9 +176,9 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); - loadMylib(getPM(), MYLIB_TESTDATA); + loadAndPersistMylib(getPM()); addTearDownClass(MylibReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/sql/AllowedAPIMethods.java =================================================================== --- test/java/org/apache/jdo/tck/query/sql/AllowedAPIMethods.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/sql/AllowedAPIMethods.java (Arbeitskopie) @@ -73,12 +73,12 @@ * The expected results of valid SQL queries. */ private Object[] expectedResult = { - getMylibInstancesAsList(new String[]{ + getTransientMylibInstancesAsList(new String[]{ "primitiveTypesPositive", "primitiveTypesNegative", "primitiveTypesCharacterStringLiterals"}), - getCompanyModelInstancesAsList(new String[]{"dept1", "dept2"}), - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{"dept1", "dept2"}), + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4", "emp5"}), new Object[]{"emp1First", "emp1Last"}, Arrays.asList(new Object[]{ @@ -217,9 +217,9 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); - loadMylib(getPM(), MYLIB_TESTDATA); + loadAndPersistMylib(getPM()); addTearDownClass(MylibReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/QueryTest.java =================================================================== --- test/java/org/apache/jdo/tck/query/QueryTest.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/QueryTest.java (Arbeitskopie) @@ -27,8 +27,6 @@ import java.util.List; import java.util.Map; -import javax.jdo.Extent; -import javax.jdo.JDOFatalInternalException; import javax.jdo.JDOUserException; import javax.jdo.PersistenceManager; import javax.jdo.Query; @@ -37,12 +35,7 @@ import junit.framework.AssertionFailedError; import org.apache.jdo.tck.JDO_Test; -import org.apache.jdo.tck.pc.company.Company; import org.apache.jdo.tck.pc.company.CompanyModelReader; -import org.apache.jdo.tck.pc.company.Department; -import org.apache.jdo.tck.pc.company.Insurance; -import org.apache.jdo.tck.pc.company.Person; -import org.apache.jdo.tck.pc.company.Project; import org.apache.jdo.tck.pc.mylib.MylibReader; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.pc.mylib.PrimitiveTypes; @@ -71,32 +64,36 @@ /** * The company model reader is used * to read company model instances from an XML file. + * Instances refered by this reader are made persistent by + * {@link QueryTest#loadAndPersistCompanyModel(PersistenceManager)}. */ - private CompanyModelReader companyModelReader = - new CompanyModelReader(COMPANY_TESTDATA); + private CompanyModelReader companyModelReaderForPersistentInstances; /** + * The company model reader is used + * to read company model instances from an XML file. + * Instances refered by this reader remain transient. + */ + private CompanyModelReader companyModelReaderForTransientInstances; + + /** * The mylib reader is used to read mylib instances from an XML file. + * Instances refered by this reader are made persistent by + * {@link QueryTest#loadAndPersistMylib(PersistenceManager)}. */ - private MylibReader mylibReader = new MylibReader(MYLIB_TESTDATA); + private MylibReader mylibReaderForPersistentInstances; - // Helper methods to create persistent PCPoint instances - /** - * @see JDO_Test#localSetUp() + * The mylib reader is used to read mylib instances from an XML file. + * Instances refered by this reader are made persistent by */ - protected void localSetUp() { - addTearDownClass(PCPoint.class); - } + private MylibReader mylibReaderForTransientInstances; + + // Helper methods to create persistent PCPoint instances /** */ - public void initDatabase(PersistenceManager pm, Class cls){ - cleanupDatabase(pm, cls); - if (cls == PCPoint.class) - insertPCPoints(pm, 5); - else - throw new JDOFatalInternalException( - "Unsupported pc class for initDatabase " + cls); + public void loadAndPersistPCPoints(PersistenceManager pm) { + insertPCPoints(pm, 5); } /** */ @@ -138,139 +135,247 @@ return result; } - // Company model helper methods + // Company model and mylib helper methods + /** + * Initializes and returns the company model reader + * for persistent instances. + * @return the company model reader for persistent instances. + */ + private CompanyModelReader + getCompanyModelReaderForPersistentInstances() { + if (companyModelReaderForPersistentInstances == null) { + companyModelReaderForPersistentInstances = + new CompanyModelReader(COMPANY_TESTDATA); + } + return companyModelReaderForPersistentInstances; + } + + /** + * Initializes and returns the company model reader + * for transient instances. + * @return the company model reader for transient instances. + */ + private CompanyModelReader + getCompanyModelReaderForTransientInstances() { + if (companyModelReaderForTransientInstances == null) { + companyModelReaderForTransientInstances = + new CompanyModelReader(COMPANY_TESTDATA); + } + return companyModelReaderForTransientInstances; + } + + /** + * Initializes and returns the mylib reader + * for persistent instances. + * @return the mylib reader for persistent instances. + */ + private MylibReader getMylibReaderForPersistentInstances() { + if (mylibReaderForPersistentInstances == null) { + mylibReaderForPersistentInstances = + new MylibReader(MYLIB_TESTDATA); + } + return mylibReaderForPersistentInstances; + } + + /** + * Initializes and returns the mylib reader + * for transient instances. + * @return the mylib reader for transient instances. + */ + private MylibReader getMylibReaderForTransientInstances() { + if (mylibReaderForTransientInstances == null) { + mylibReaderForTransientInstances = + new MylibReader(MYLIB_TESTDATA); + } + return mylibReaderForTransientInstances; + } + /** - * Reads a graph of company model objects from the specified xml file. This + * Reads a graph of company model objects from the internal reader. This * methods explictly calls makePersistent for all named instances using the * specified PersistenceManager. The method returns the CompanyModelReader * instance allowing to access a compay model instance by name. */ - public CompanyModelReader loadCompanyModel(PersistenceManager pm, - String filename) { - CompanyModelReader reader = new CompanyModelReader(filename); - Transaction tx = pm.currentTransaction(); - tx.begin(); - List rootList = (List)reader.getRootList(); - pm.makePersistentAll(rootList); - if (debug) logger.debug("inserted " + rootList); - tx.commit(); - tx = null; - return reader; + public CompanyModelReader loadAndPersistCompanyModel(PersistenceManager pm) { + makePersistentAll( + getCompanyModelReaderForPersistentInstances().getRootList()); + return getCompanyModelReaderForPersistentInstances(); } /** - * Reads a graph of company model objects from the specified xml file. This + * Reads a graph of mylib objects from the internal reader. This * methods explictly calls makePersistent for all named instances using the * specified PersistenceManager. The method returns the CompanyModelReader * instance allowing to access a compay model instance by name. */ - public MylibReader loadMylib(PersistenceManager pm, String filename) { - MylibReader reader = new MylibReader(filename); + public MylibReader loadAndPersistMylib(PersistenceManager pm) { + makePersistentAll(getMylibReaderForPersistentInstances().getRootList()); + return getMylibReaderForPersistentInstances(); + } + + /** + * Persists the given pc instances. + * @param pcInstances the pc instances to persist + */ + private void makePersistentAll(List pcInstances) { Transaction tx = pm.currentTransaction(); tx.begin(); - List rootList = (List)reader.getRootList(); - pm.makePersistentAll(rootList); - if (debug) logger.debug("inserted " + rootList); - tx.commit(); - tx = null; - return reader; - } - - /** */ - public void cleanupCompanyModel(PersistenceManager pm) { - Transaction tx = pm.currentTransaction(); - if (tx.isActive()) tx.rollback(); try { - tx.begin(); - cleanupDatabaseInternal(pm, Company.class); - cleanupDatabaseInternal(pm, Department.class); - cleanupDatabaseInternal(pm, Person.class); - cleanupDatabaseInternal(pm, Insurance.class); - cleanupDatabaseInternal(pm, Project.class); + pm.makePersistentAll(pcInstances); + if (debug) logger.debug("inserted " + pcInstances); tx.commit(); - tx = null; - } - finally { - if ((tx != null) && tx.isActive()) + } finally { + if (tx.isActive()) { tx.rollback(); + } } } /** - * Returns a company model instance for the given bean name. + * Returns a persistent company model instance for the given bean name. * @param beanName the bean name. - * @return the company model instance. + * @return the persistent company model instance. */ - protected Object getCompanyModelInstance(String beanName) { - return beanName == null ? - null : companyModelReader.getBean(beanName); + protected Object getPersistentCompanyModelInstance(String beanName) { + return beanName == null ? null : + getCompanyModelReaderForPersistentInstances().getBean(beanName); } /** - * Returns an array of company model instances for bean names + * Returns a transient company model instance for the given bean name. + * @param beanName the bean name. + * @return the transient company model instance. + */ + protected Object getTransientCompanyModelInstance(String beanName) { + return beanName == null ? null : + getCompanyModelReaderForTransientInstances().getBean(beanName); + } + + /** + * Returns an array of persistent company model instances for bean names * in the given argument. * @param beanNames the bean names of company mode instances. - * @return the array of company model instances. + * @return the array of persistent company model instances. */ - protected Object[] getCompanyModelInstances(String[] beanNames) { + protected Object[] getPersistentCompanyModelInstances(String[] beanNames) { Object[] result = new Object[beanNames.length]; for (int i = 0; i < beanNames.length; i++) { - result[i] = getCompanyModelInstance(beanNames[i]); + result[i] = getPersistentCompanyModelInstance(beanNames[i]); } return result; } /** - * Returns a list of company model instances instances for beans names + * Returns an array of transient company model instances for bean names * in the given argument. + * @param beanNames the bean names of company mode instances. + * @return the array of transient company model instances. + */ + protected Object[] getTransientCompanyModelInstances(String[] beanNames) { + Object[] result = new Object[beanNames.length]; + for (int i = 0; i < beanNames.length; i++) { + result[i] = getTransientCompanyModelInstance(beanNames[i]); + } + return result; + } + + /** + * Returns a list of persistent company model instances instances + * for beans names in the given argument. * @param beanNames the bean names of company model instances. - * @return the list of company model instances. + * @return the list of persistent company model instances. */ - protected List getCompanyModelInstancesAsList(String[] beanNames) { + protected List getPersistentCompanyModelInstancesAsList( + String[] beanNames) { return new ArrayList( - Arrays.asList(getCompanyModelInstances(beanNames))); + Arrays.asList(getPersistentCompanyModelInstances(beanNames))); } /** - * Returns a mylib instance for the given bean name. + * Returns a list of transient company model instances instances + * for beans names in the given argument. + * @param beanNames the bean names of company model instances. + * @return the list of transient company model instances. + */ + protected List getTransientCompanyModelInstancesAsList( + String[] beanNames) { + return new ArrayList( + Arrays.asList(getTransientCompanyModelInstances(beanNames))); + } + + /** + * Returns a persistent mylib instance for the given bean name. * @param beanName the bean name. - * @return the mylib instance. + * @return the persistent mylib instance. */ - protected Object getMylibInstance(String beanName) { + protected Object getPersistentMylibInstance(String beanName) { return beanName == null ? - null : mylibReader.getBean(beanName); + null : getMylibReaderForPersistentInstances().getBean(beanName); } /** - * Returns an array of mylib instances for beans names + * Returns a transient mylib instance for the given bean name. + * @param beanName the bean name. + * @return the transient mylib instance. + */ + protected Object getTransientMylibInstance(String beanName) { + return beanName == null ? + null : getMylibReaderForTransientInstances().getBean(beanName); + } + + /** + * Returns an array of persistent mylib instances for beans names * in the given argument. * @param beanNames the bean names of mylib instances. - * @return the array of mylib instances. + * @return the array of persistent mylib instances. */ - protected Object[] getMylibInstances(String[] beanNames) { + protected Object[] getPersistentMylibInstances(String[] beanNames) { Object[] result = new Object[beanNames.length]; for (int i = 0; i < beanNames.length; i++) { - result[i] = getMylibInstance(beanNames[i]); + result[i] = getPersistentMylibInstance(beanNames[i]); } return result; } /** - * Returns a list of mylib instances for beans names + * Returns an array of transient mylib instances for beans names * in the given argument. * @param beanNames the bean names of mylib instances. - * @return the list of mylib instances. + * @return the array of transient mylib instances. */ - protected List getMylibInstancesAsList(String[] beanNames) { - return Arrays.asList(getMylibInstances(beanNames)); + protected Object[] getTransientMylibInstances(String[] beanNames) { + Object[] result = new Object[beanNames.length]; + for (int i = 0; i < beanNames.length; i++) { + result[i] = getTransientMylibInstance(beanNames[i]); + } + return result; } + /** + * Returns a list of persistent mylib instances for beans names + * in the given argument. + * @param beanNames the bean names of mylib instances. + * @return the list of persistent mylib instances. + */ + protected List getPersistentMylibInstancesAsList(String[] beanNames) { + return Arrays.asList(getPersistentMylibInstances(beanNames)); + } + + /** + * Returns a list of transient mylib instances for beans names + * in the given argument. + * @param beanNames the bean names of mylib instances. + * @return the list of transient mylib instances. + */ + protected List getTransientMylibInstancesAsList(String[] beanNames) { + return Arrays.asList(getTransientMylibInstances(beanNames)); + } + // PrimitiveTypes helper methods (creation and query) /** */ - public void loadPrimitiveTypes(PersistenceManager pm) { - cleanupDatabase(pm, PrimitiveTypes.class); + public void loadAndPersistPrimitiveTypes(PersistenceManager pm) { insertPrimitiveTypes(pm); } @@ -356,36 +461,6 @@ checkQueryResultWithoutOrder(assertion, results, expected); } - // Helper methods to cleanup the datastore - - /** */ - public void cleanupDatabase(PersistenceManager pm, Class cls) { - Transaction tx = pm.currentTransaction(); - if (tx.isActive()) tx.rollback(); - try { - tx.begin(); - cleanupDatabaseInternal(pm, cls); - tx.commit(); - tx = null; - } - finally { - if ((tx != null) && tx.isActive()) - tx.rollback(); - } - } - - /** */ - protected void cleanupDatabaseInternal(PersistenceManager pm, Class cls) { - Extent e = pm.getExtent(cls, true); - for (Iterator i = e.iterator(); i.hasNext();) { - Object pc = i.next(); - if (debug) - logger.debug("Deleted the existing " + cls.getName() + - " object " + pc); - pm.deletePersistent(pc); - } - } - // Helper methods to check query result /** */ @@ -461,7 +536,7 @@ result = closeEnough(((Double)o1).floatValue(), ((Double)o2).floatValue()); } else if ((o1 instanceof BigDecimal) && (o2 instanceof BigDecimal)) { - result = ((BigDecimal)o1).compareTo(o2) == 0; + result = ((BigDecimal)o1).compareTo((BigDecimal)o2) == 0; } else if (o1 != null) { result = o1.equals(o2); } else { Index: test/java/org/apache/jdo/tck/query/api/GetFetchPlan.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/GetFetchPlan.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/GetFetchPlan.java (Arbeitskopie) @@ -158,7 +158,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadMylib(getPM(), MYLIB_TESTDATA); + loadAndPersistMylib(getPM()); addTearDownClass(MylibReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/api/NewQueryWithSpecifiedLanguageAndQuery.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/NewQueryWithSpecifiedLanguageAndQuery.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/NewQueryWithSpecifiedLanguageAndQuery.java (Arbeitskopie) @@ -24,6 +24,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -54,19 +55,8 @@ } /** */ - public void test() { - pm = getPM(); - - initDatabase(pm, PCPoint.class); - runTestNewQueryWithSpecifiedLanguageAndQuery(pm); - //runTestNewQueryWithSpecifiedLanguageAndQuery(pm); - - pm.close(); - pm = null; - } - - /** */ - void runTestNewQueryWithSpecifiedLanguageAndQuery(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); if (debug) logger.debug("\nExecuting test NewQueryWithSpecifiedLanguageAndQuery()..."); @@ -109,4 +99,12 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/api/SetCandidateCollection.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/SetCandidateCollection.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/SetCandidateCollection.java (Arbeitskopie) @@ -24,6 +24,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -56,18 +57,8 @@ } /** */ - public void test() { - pm = getPM(); - - initDatabase(pm, PCPoint.class); - runTestSetCandidateCollection(pm); - - pm.close(); - pm = null; - } - - /** */ - void runTestSetCandidateCollection(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); if (debug) logger.debug("\nExecuting test SetCandidateCollection()..."); Transaction tx = pm.currentTransaction(); @@ -104,5 +95,13 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/api/SetGrouping.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/SetGrouping.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/SetGrouping.java (Arbeitskopie) @@ -75,7 +75,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/api/NewQuerySingleString.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/NewQuerySingleString.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/NewQuerySingleString.java (Arbeitskopie) @@ -65,7 +65,7 @@ * The expected results of valid queries. */ private Object[] expectedResult = { - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4", "emp5"}) }; @@ -90,7 +90,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/api/SetResultClass.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/SetResultClass.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/SetResultClass.java (Arbeitskopie) @@ -81,7 +81,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/api/ExecuteQueryWithMap.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/ExecuteQueryWithMap.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/ExecuteQueryWithMap.java (Arbeitskopie) @@ -25,6 +25,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -60,15 +61,11 @@ } /** */ - public void test() { - pm = getPM(); + public void testPositive() { + PersistenceManager pm = getPM(); - initDatabase(pm, PCPoint.class); runTestExecuteQueryWithMap01(pm); runTestExecuteQueryWithMap02(pm); - - pm.close(); - pm = null; } /** */ @@ -137,5 +134,13 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/api/SetUnique.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/SetUnique.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/SetUnique.java (Arbeitskopie) @@ -45,8 +45,8 @@ * The expected results of valid queries. */ private Object[] expectedResult = { - getCompanyModelInstance("emp1"), - getCompanyModelInstancesAsList( + getTransientCompanyModelInstance("emp1"), + getTransientCompanyModelInstancesAsList( new String[]{"emp1", "emp2", "emp3", "emp4", "emp5"}) }; @@ -82,7 +82,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/api/ExecuteQueryWithArray.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/ExecuteQueryWithArray.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/ExecuteQueryWithArray.java (Arbeitskopie) @@ -24,6 +24,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -59,15 +60,11 @@ } /** */ - public void test() { - pm = getPM(); + public void testPositive() { + PersistenceManager pm = getPM(); - initDatabase(pm, PCPoint.class); runTestExecuteQueryWithArray01(pm); runTestExecuteQueryWithArray02(pm); - - pm.close(); - pm = null; } /** */ @@ -135,5 +132,13 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/api/DeclareParameters.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/DeclareParameters.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/DeclareParameters.java (Arbeitskopie) @@ -24,6 +24,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -54,16 +55,12 @@ } /** */ - public void test() { - pm = getPM(); + public void testPositive() { + PersistenceManager pm = getPM(); - initDatabase(pm, PCPoint.class); runTestDeclareParameters01(pm); runTestDeclareParameters02(pm); runTestDeclareParameters03(pm); - - pm.close(); - pm = null; } /** */ @@ -153,5 +150,13 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/api/QueryExtentions.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/QueryExtentions.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/QueryExtentions.java (Arbeitskopie) @@ -51,7 +51,7 @@ * The expected results of valid queries. */ private Object[] expectedResult = { - getCompanyModelInstancesAsList( + getTransientCompanyModelInstancesAsList( new String[]{"emp1", "emp2", "emp3", "emp4", "emp5"}) }; @@ -80,7 +80,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/api/NewQueryWithCandidateClassAndFilter.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/NewQueryWithCandidateClassAndFilter.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/NewQueryWithCandidateClassAndFilter.java (Arbeitskopie) @@ -24,6 +24,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -54,18 +55,8 @@ } /** */ - public void test() { - pm = getPM(); - - initDatabase(pm, PCPoint.class); - runTestNewQuery(pm); - - pm.close(); - pm = null; - } - - /** */ - void runTestNewQuery(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); Transaction tx = pm.currentTransaction(); try { tx.begin(); @@ -91,5 +82,13 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/api/SetResult.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/SetResult.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/SetResult.java (Arbeitskopie) @@ -88,7 +88,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/api/NewQueryWithExtentAndFilter.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/NewQueryWithExtentAndFilter.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/NewQueryWithExtentAndFilter.java (Arbeitskopie) @@ -24,6 +24,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -56,18 +57,8 @@ } /** */ - public void test() { - pm = getPM(); - - initDatabase(pm, PCPoint.class); - runTestNewQuery(pm); - - pm.close(); - pm = null; - } - - /** */ - void runTestNewQuery(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); Transaction tx = pm.currentTransaction(); tx.begin(); try { @@ -90,5 +81,13 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/api/CloseAll.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/CloseAll.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/CloseAll.java (Arbeitskopie) @@ -25,6 +25,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -55,18 +56,9 @@ } /** */ - public void test() { - pm = getPM(); + public void testPositive() { + PersistenceManager pm = getPM(); - initDatabase(pm, PCPoint.class); - runTestCloseAll(pm); - - pm.close(); - pm = null; - } - - /** */ - void runTestCloseAll(PersistenceManager pm) { if (debug) logger.debug("\nExecuting test CloseAll()..."); Transaction tx = pm.currentTransaction(); try { @@ -101,5 +93,13 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/api/SingleStringQuery.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/SingleStringQuery.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/SingleStringQuery.java (Arbeitskopie) @@ -71,7 +71,7 @@ */ private Object[] expectedResult = { new FullName("emp1First", "emp1Last"), - getCompanyModelInstancesAsList(new String[]{"emp1", "emp2", "emp5"}) + getTransientCompanyModelInstancesAsList(new String[]{"emp1", "emp2", "emp5"}) }; /** Parameters of valid queries. */ @@ -116,7 +116,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/api/SetFilter.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/SetFilter.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/SetFilter.java (Arbeitskopie) @@ -25,6 +25,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -58,17 +59,8 @@ } /** */ - public void test() { - pm = getPM(); - - initDatabase(pm, PCPoint.class); - runTestNewQuery(pm); - pm.close(); - pm = null; - } - - /** */ - void runTestNewQuery(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); Transaction tx = pm.currentTransaction(); Class clazz = PCPoint.class; try { @@ -95,5 +87,13 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/api/MetadataSearchOrder.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/MetadataSearchOrder.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/MetadataSearchOrder.java (Arbeitskopie) @@ -50,15 +50,15 @@ * The expected results of valid queries. */ private Object[] expectedResult = { - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4", "emp5"}), - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp2", "emp3", "emp4", "emp5"}), - getMylibInstancesAsList(new String[]{ + getTransientMylibInstancesAsList(new String[]{ "pcClass1", "pcClass2"}), - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp3", "emp4", "emp5"}), - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp4", "emp5"}) }; @@ -117,9 +117,9 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); - loadMylib(getPM(), MYLIB_TESTDATA); + loadAndPersistMylib(getPM()); addTearDownClass(MylibReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/api/NewQueryWithExtent.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/NewQueryWithExtent.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/NewQueryWithExtent.java (Arbeitskopie) @@ -21,6 +21,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -53,18 +54,8 @@ } /** */ - public void test() { - pm = getPM(); - - initDatabase(pm, PCPoint.class); - runTestNewQuery(pm); - - pm.close(); - pm = null; - } - - /** */ - void runTestNewQuery(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); Transaction tx = pm.currentTransaction(); try { tx.begin(); @@ -85,4 +76,12 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/api/NewQueryFromExistingQueryBoundToPMFromSameVendor.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/NewQueryFromExistingQueryBoundToPMFromSameVendor.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/NewQueryFromExistingQueryBoundToPMFromSameVendor.java (Arbeitskopie) @@ -23,6 +23,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -56,15 +57,11 @@ /** */ - public void test() { - pm = getPM(); + public void testPositive() { + PersistenceManager pm = getPM(); - initDatabase(pm, PCPoint.class); runTestNewQueryFromExistingQueryBoundToPMFromSameVendor01(pm); runTestNewQueryFromExistingQueryBoundToPMFromSameVendor02(pm); - - pm.close(); - pm = null; } /** */ @@ -154,5 +151,13 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/api/Close.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/Close.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/Close.java (Arbeitskopie) @@ -26,6 +26,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -63,19 +64,9 @@ } /** */ - public void test() { - pm = getPM(); - - initDatabase(pm, PCPoint.class); - runTestClose(pm); + public void testPositive() { + PersistenceManager pm = getPM(); - pm.close(); - pm = null; - } - - /** */ - void runTestClose(PersistenceManager pm) { - if (debug) logger.debug("\nExecuting test Close()..."); Transaction tx = pm.currentTransaction(); try { @@ -132,5 +123,13 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/api/SetRange.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/SetRange.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/SetRange.java (Arbeitskopie) @@ -46,7 +46,7 @@ * The expected results of valid queries. */ private Object[] expectedResult = { - getCompanyModelInstancesAsList( + getTransientCompanyModelInstancesAsList( new String[]{"emp1", "emp2", "emp3", "emp4", "emp5"}) }; @@ -74,7 +74,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/api/NewQueryWithCandidateClassAndExtent.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/NewQueryWithCandidateClassAndExtent.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/NewQueryWithCandidateClassAndExtent.java (Arbeitskopie) @@ -22,6 +22,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -56,17 +57,8 @@ } /** */ - public void test() { - pm = getPM(); - - initDatabase(pm, PCPoint.class); - runTestNewQuery(pm); - pm.close(); - pm = null; - } - - /** */ - void runTestNewQuery(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); Transaction tx = pm.currentTransaction(); Class clazz = PCPoint.class; try { @@ -90,4 +82,12 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/api/ChangeQuery.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/ChangeQuery.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/ChangeQuery.java (Arbeitskopie) @@ -98,7 +98,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/api/NewQueryFromRestoredSerializedQuery.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/NewQueryFromRestoredSerializedQuery.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/NewQueryFromRestoredSerializedQuery.java (Arbeitskopie) @@ -28,6 +28,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -58,18 +59,8 @@ } /** */ - public void test() throws Exception { - pm = getPM(); - - initDatabase(pm, PCPoint.class); - runTestNewQueryFromRestoredSerializedQuery01(pm); - - pm.close(); - pm = null; - } - - /** */ - void runTestNewQueryFromRestoredSerializedQuery01(PersistenceManager pm) throws Exception { + public void testPositive() throws Exception { + PersistenceManager pm = getPM(); if (debug) logger.debug("\nExecuting test NewQueryFromRestoredSerializedQuery01() ..."); @@ -125,5 +116,13 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/api/CompileQuery.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/CompileQuery.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/CompileQuery.java (Arbeitskopie) @@ -24,6 +24,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -54,18 +55,9 @@ } /** */ - public void test() { - pm = getPM(); + public void testPositive() { + PersistenceManager pm = getPM(); - initDatabase(pm, PCPoint.class); - runTestCompileQuery(pm); - - pm.close(); - pm = null; - } - - /** */ - private void runTestCompileQuery(PersistenceManager pm) { Transaction tx = pm.currentTransaction(); try { tx.begin(); @@ -95,4 +87,12 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/api/SetterReplacePreviousValues.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/SetterReplacePreviousValues.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/SetterReplacePreviousValues.java (Arbeitskopie) @@ -16,16 +16,13 @@ package org.apache.jdo.tck.query.api; -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; @@ -47,6 +44,70 @@ private static final String ASSERTION_FAILED = "Assertion A14.6.15 (SetterReplacePreviousValues) failed: "; + /** + * The array of valid queries which may be executed as + * single string queries and as API queries. + */ + private static final QueryElementHolder[] VALID_QUERIES = { + // replace parameter declaration + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Department.class, + /*EXCLUDE*/ null, + /*WHERE*/ "deptid == param", + /*VARIABLES*/ null, + /*PARAMETERS*/ "String x", + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null), + // replace filter setting + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Employee.class, + /*EXCLUDE*/ null, + /*WHERE*/ "personid == 1L", + /*VARIABLES*/ null, + /*PARAMETERS*/ "String x", + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null), + // replace variable declaration + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Department.class, + /*EXCLUDE*/ null, + /*WHERE*/ "employees.contains(e) && e.personid == 1", + /*VARIABLES*/ "Employee e1; Employee e2", + /*PARAMETERS*/ null, + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null) + }; + + /** + * The expected results of valid queries. + */ + private Object[] expectedResult = { + // replace parameter declaration + getTransientCompanyModelInstancesAsList(new String[]{"dept1"}), + // replace filter setting + getTransientCompanyModelInstancesAsList(new String[]{"emp2"}), + // replace variable declaration + getTransientCompanyModelInstancesAsList(new String[]{"dept1"}) + }; + /** * The main is called when the class * is directly executed from the command line. @@ -57,57 +118,47 @@ } /** */ - public void test() { - pm = getPM(); - - try { - // read test data - CompanyModelReader reader = loadCompanyModel(pm, COMPANY_TESTDATA); - runTest(pm, reader); - } - finally { - cleanupCompanyModel(pm); - pm.close(); - pm = null; - } - } - - /** */ - void runTest(PersistenceManager pm, CompanyModelReader reader) { - Query q; - Collection result; - Collection expected; + public void testPositive() { + // replace parameter declaration + int index = 0; + Query query = VALID_QUERIES[index].getAPIQuery(getPM()); + query.declareParameters("long param"); + Object[] parameters = new Object[] {new Long(1)}; + executeJDOQuery(ASSERTION_FAILED, query, VALID_QUERIES[index].toString(), false, + parameters, expectedResult[index], true); + query = VALID_QUERIES[index].getSingleStringQuery(getPM()); + query.declareParameters("long param"); + executeJDOQuery(ASSERTION_FAILED, query, VALID_QUERIES[index].toString(), false, + parameters, expectedResult[index], true); - Transaction tx = pm.currentTransaction(); - tx.begin(); - - // replace parameter declaration - q = pm.newQuery(Department.class, "deptid == param"); - q.declareParameters("String x"); - q.declareParameters("long param"); - result = (Collection)q.execute(new Long(1)); - expected = new HashSet(); - expected.add(reader.getDepartment("dept1")); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - // replace filter setting - q = pm.newQuery(Employee.class, "personid == 1L"); - q.setFilter("personid == 2L"); - result = (Collection)q.execute(); - expected = new HashSet(); - expected.add(reader.getFullTimeEmployee("emp2")); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); + index++; + query = VALID_QUERIES[index].getAPIQuery(getPM()); + query.setFilter("personid == 2L"); + executeJDOQuery(ASSERTION_FAILED, query, VALID_QUERIES[index].toString(), false, + parameters, expectedResult[index], true); + query = VALID_QUERIES[index].getSingleStringQuery(getPM()); + query.setFilter("personid == 2L"); + executeJDOQuery(ASSERTION_FAILED, query, VALID_QUERIES[index].toString(), false, + parameters, expectedResult[index], true); - // repalce variable declaration - q = pm.newQuery(Department.class); - q.declareVariables("Employee e1; Employee e2"); - q.declareVariables("Employee e"); - q.setFilter("employees.contains(e) && e.personid == 1"); - result = (Collection)q.execute(); - expected = new HashSet(); - expected.add(reader.getDepartment("dept1")); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - tx.rollback(); + // replace variable declaration + index++; + query = VALID_QUERIES[index].getAPIQuery(getPM()); + query.declareVariables("Employee e"); + executeJDOQuery(ASSERTION_FAILED, query, VALID_QUERIES[index].toString(), false, + parameters, expectedResult[index], true); + query = VALID_QUERIES[index].getSingleStringQuery(getPM()); + query.declareVariables("Employee e"); + executeJDOQuery(ASSERTION_FAILED, query, VALID_QUERIES[index].toString(), false, + parameters, expectedResult[index], true); } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistCompanyModel(getPM()); + addTearDownClass(CompanyModelReader.getTearDownClasses()); + } } Index: test/java/org/apache/jdo/tck/query/api/SetCandidateExtent.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/SetCandidateExtent.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/SetCandidateExtent.java (Arbeitskopie) @@ -24,6 +24,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -56,18 +57,8 @@ } /** */ - public void test() { - pm = getPM(); - - initDatabase(pm, PCPoint.class); - runTestSetCandidateExtent(pm); - - pm.close(); - pm = null; - } - - /** */ - void runTestSetCandidateExtent(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); if (debug) logger.debug("\nExecuting test SetCandidateExtent()..."); Transaction tx = pm.currentTransaction(); @@ -103,4 +94,12 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/api/NewQueryWithCandidateClassCollectionFilter.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/NewQueryWithCandidateClassCollectionFilter.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/NewQueryWithCandidateClassCollectionFilter.java (Arbeitskopie) @@ -24,6 +24,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -54,18 +55,8 @@ } /** */ - public void test() { - pm = getPM(); - - initDatabase(pm, PCPoint.class); - runTestNewQuery(pm); - - pm.close(); - pm = null; - } - - /** */ - void runTestNewQuery(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); Transaction tx = pm.currentTransaction(); try { tx.begin(); @@ -89,5 +80,13 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/api/NewNamedQuery.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/NewNamedQuery.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/NewNamedQuery.java (Arbeitskopie) @@ -93,7 +93,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/api/UnmodifiableQuery.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/UnmodifiableQuery.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/UnmodifiableQuery.java (Arbeitskopie) @@ -185,7 +185,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/api/SetOrdering.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/SetOrdering.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/SetOrdering.java (Arbeitskopie) @@ -21,13 +21,12 @@ import java.util.List; import java.util.ListIterator; -import javax.jdo.Extent; 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.mylib.PCPoint; -import org.apache.jdo.tck.pc.fieldtypes.AllTypes; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -60,15 +59,11 @@ } /** */ - public void test() { - pm = getPM(); + public void testPositive() { + PersistenceManager pm = getPM(); - initDatabase(pm, PCPoint.class); runTestAscending(pm); runTestDescending(pm); - - pm.close(); - pm = null; } /** */ @@ -133,4 +128,11 @@ } } + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/api/ExecuteQuery.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/ExecuteQuery.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/ExecuteQuery.java (Arbeitskopie) @@ -24,6 +24,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -58,16 +59,12 @@ } /** */ - public void test() { - pm = getPM(); + public void testPositive() { + PersistenceManager pm = getPM(); - initDatabase(pm, PCPoint.class); runTestExecuteQuery01(pm); runTestExecuteQuery02(pm); runTestExecuteQuery03(pm); - - pm.close(); - pm = null; } /** */ @@ -158,5 +155,13 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/api/NewQueryWithCandidateClassAndCollection.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/NewQueryWithCandidateClassAndCollection.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/NewQueryWithCandidateClassAndCollection.java (Arbeitskopie) @@ -21,6 +21,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -51,18 +52,8 @@ } /** */ - public void test() { - pm = getPM(); - - initDatabase(pm, PCPoint.class); - runTestNewQuery(pm); - - pm.close(); - pm = null; - } - - /** */ - void runTestNewQuery(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); Transaction tx = pm.currentTransaction(); try { tx.begin(); @@ -82,5 +73,13 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/api/NewQueryWithCandidateClass.java =================================================================== --- test/java/org/apache/jdo/tck/query/api/NewQueryWithCandidateClass.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/api/NewQueryWithCandidateClass.java (Arbeitskopie) @@ -21,6 +21,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -51,18 +52,8 @@ } /** */ - public void test() { - pm = getPM(); - - initDatabase(pm, PCPoint.class); - runTestNewQuery(pm); - - pm.close(); - pm = null; - } - - /** */ - void runTestNewQuery(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); Transaction tx = pm.currentTransaction(); try { tx.begin(); @@ -83,5 +74,13 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/MultipleActiveQueryInstanceInSamePersistenceManager.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/MultipleActiveQueryInstanceInSamePersistenceManager.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/MultipleActiveQueryInstanceInSamePersistenceManager.java (Arbeitskopie) @@ -22,8 +22,8 @@ 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.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -56,20 +56,8 @@ BatchTestRunner.run(MultipleActiveQueryInstanceInSamePersistenceManager.class); } - /** */ - public void test() { - pm = getPM(); - - initDatabase(pm, PCPoint.class); - runTestMultipleActiveQueryInstanceInSamePersistenceManager(pm); - - pm.close(); - pm = null; - } - - /** */ - void runTestMultipleActiveQueryInstanceInSamePersistenceManager( - PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); if (debug) logger.debug("\nExecuting test MultipleActiveQueryInstanceInSamePersistenceManager()..."); @@ -116,5 +104,13 @@ checkQueryResultWithoutOrder(ASSERTION_FAILED, results2, expected2); pm.currentTransaction().commit(); } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/NavigationThroughANullValuedField.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/NavigationThroughANullValuedField.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/NavigationThroughANullValuedField.java (Arbeitskopie) @@ -16,16 +16,11 @@ package org.apache.jdo.tck.query.jdoql; -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; @@ -50,6 +45,63 @@ private static final String ASSERTION_FAILED = "Assertion A14.6.2-9 (NavigationThroughANullValuedField) failed: "; + /** + * The array of valid queries which may be executed as + * single string queries and as API queries. + */ + private static final QueryElementHolder[] VALID_QUERIES = { + // navigation through reference relationship field + // the relationship medicalInsurence is not set for emp2 and emp3 => + // they should not be part of the result + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Employee.class, + /*EXCLUDE*/ null, + /*WHERE*/ "medicalInsurance.carrier == \"Carrier1\"", + /*VARIABLES*/ null, + /*PARAMETERS*/ null, + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null), + // navigation through collection relationship field + // employees emp2 and emp3 do not have a medicalInsurence, but emp1 + // matches the filter such that dept1 qualifies for inclusion in the + // result set. + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Department.class, + /*EXCLUDE*/ null, + /*WHERE*/ "employees.contains(e) && e.medicalInsurance.carrier == \"Carrier1\"", + /*VARIABLES*/ "Employee e", + /*PARAMETERS*/ null, + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null) + }; + + /** + * The expected results of valid queries. + */ + private Object[] expectedResult = { + // navigation through reference relationship field + // the relationship medicalInsurence is not set for emp2 and emp3 => + // they should not be part of the result + getTransientCompanyModelInstancesAsList(new String[]{"emp1"}), + // navigation through collection relationship field + // employees emp2 and emp3 do not have a medicalInsurence, but emp1 + // matches the filter such that dept1 qualifies for inclusion in the + // result set. + getTransientCompanyModelInstancesAsList(new String[]{"dept1"}) + }; + /** * The main is called when the class * is directly executed from the command line. @@ -60,52 +112,20 @@ } /** */ - public void test() { - pm = getPM(); - - try { - // read test data - CompanyModelReader reader = loadCompanyModel(pm, COMPANY_TESTDATA); - runTest(pm, reader); + public void testPositive() { + for (int i = 0; i < VALID_QUERIES.length; i++) { + executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[i], + expectedResult[i]); + executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[i], + expectedResult[i]); } - 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(); - - // navigation through reference relationship field - // the relationship medicalInsurence is not set for emp2 and emp3 => - // they should not be part of the result - q = pm.newQuery(Employee.class); - q.setFilter("medicalInsurance.carrier == \"Carrier1\""); - result = q.execute(); - expected = new HashSet(); - expected.add(reader.getFullTimeEmployee("emp1")); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - // navigation through collection relationship field - // employees emp2 and emp3 do not have a medicalInsurence, but emp1 - // matches the filter such that dept1 qualifies for inclusion in the - // result set. - q = pm.newQuery(Department.class); - q.declareVariables("Employee e"); - q.setFilter("employees.contains(e) && e.medicalInsurance.carrier == \"Carrier1\""); - result = q.execute(); - expected = new HashSet(); - expected.add(reader.getDepartment("dept1")); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - tx.commit(); + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistCompanyModel(getPM()); + addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/ComparingPersistentAndNonPersistentInstance.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/ComparingPersistentAndNonPersistentInstance.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/ComparingPersistentAndNonPersistentInstance.java (Arbeitskopie) @@ -16,15 +16,10 @@ package org.apache.jdo.tck.query.jdoql; -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.Employee; +import org.apache.jdo.tck.query.QueryElementHolder; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -47,6 +42,55 @@ private static final String ASSERTION_FAILED = "Assertion A14.6.2-36 (ComparingPersistentAndNonPersistentInstance) 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*/ "this == param", + /*VARIABLES*/ null, + /*PARAMETERS*/ "Employee param", + /*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*/ "this.personid == param.personid", + /*VARIABLES*/ null, + /*PARAMETERS*/ "Employee param", + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null) + }; + + /** + * The expected results of valid queries. + */ + private Object[] expectedResult = { + getTransientCompanyModelInstancesAsList(new String[]{}), + getTransientCompanyModelInstancesAsList(new String[]{"emp1"}) + }; + + /** Parameters of valid queries. */ + private Object[][] parameters = { + {getTransientCompanyModelInstance("emp1")}, + {getTransientCompanyModelInstance("emp1")} + }; + /** * The main is called when the class * is directly executed from the command line. @@ -57,61 +101,20 @@ } /** */ - public void test() { - pm = getPM(); - - try { - // read test data - CompanyModelReader reader = loadCompanyModel(pm, COMPANY_TESTDATA); - runTest(pm, reader); + public void testPositive() { + for (int i = 0; i < VALID_QUERIES.length; i++) { + executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[i], + parameters[i], expectedResult[i]); + executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[i], + parameters[i], expectedResult[i]); } - 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(); - Employee transientEmp1 = reader.getFullTimeEmployee("emp1"); - // access the Employee values to make sure they are loaded - transientEmp1.toString(); - pm.makeTransient(transientEmp1); - tx.commit(); - - tx.begin(); - - // query comparing persistent instance (this) with - // non-persistent instance (param) => - // result should be empty - q = pm.newQuery(Employee.class, "this == param"); - q.declareParameters("Employee param"); - result = q.execute(transientEmp1); - expected = new HashSet(); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - // Get the persistent employee with personid 1 - Collection tmp = - (Collection)pm.newQuery(Employee.class, "personid == 1").execute(); - Employee persistentEmp1 = (Employee)tmp.iterator().next(); - - // query comparing the personid field of a persistent instance - // (this) with the ipersonid of the non-persistent instance (param) => - // result should include persistent employee with personid 1 - q = pm.newQuery(Employee.class, "this.personid == param.personid"); - q.declareParameters("Employee param"); - result = q.execute(transientEmp1); - expected = new HashSet(); - expected.add(persistentEmp1); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - tx.commit(); + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistCompanyModel(getPM()); + addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/CharacterAndStringLiterals.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/CharacterAndStringLiterals.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/CharacterAndStringLiterals.java (Arbeitskopie) @@ -118,7 +118,7 @@ * The expected results of valid queries. */ private Object[] expectedResult = { - getMylibInstancesAsList(new String[]{ + getTransientMylibInstancesAsList(new String[]{ "primitiveTypesCharacterStringLiterals"}) }; @@ -156,7 +156,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadMylib(getPM(), MYLIB_TESTDATA); + loadAndPersistMylib(getPM()); addTearDownClass(MylibReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/NamespaceOfIdentifiers.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/NamespaceOfIdentifiers.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/NamespaceOfIdentifiers.java (Arbeitskopie) @@ -22,6 +22,7 @@ import javax.jdo.PersistenceManager; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PrimitiveTypes; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -54,23 +55,9 @@ BatchTestRunner.run(NamespaceOfIdentifiers.class); } - /** */ - public void test() { - pm = getPM(); - - try { - loadPrimitiveTypes(pm); - runTest(pm); - } - finally { - cleanupDatabase(pm, PrimitiveTypes.class); - pm.close(); - pm = null; - } - } - /** */ - void runTest(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); Transaction tx = pm.currentTransaction(); tx.begin(); @@ -96,4 +83,12 @@ tx.commit(); } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPrimitiveTypes(getPM()); + addTearDownClass(PrimitiveTypes.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/AssignmentPrePostIncrementDecrementNotSupported.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/AssignmentPrePostIncrementDecrementNotSupported.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/AssignmentPrePostIncrementDecrementNotSupported.java (Arbeitskopie) @@ -19,7 +19,6 @@ import javax.jdo.JDOUserException; import javax.jdo.PersistenceManager; -import javax.jdo.PersistenceManagerFactory; import javax.jdo.Query; import org.apache.jdo.tck.pc.mylib.PCPoint; @@ -56,10 +55,8 @@ } /** */ - public void test() { - PersistenceManagerFactory pmf = getPMF(); - pm = pmf.getPersistenceManager(); - initDatabase(pm, PCPoint.class); + public void testNegative() { + PersistenceManager pm = getPM(); runTestUnsupportedOperators01(pm, "x = 1"); runTestUnsupportedOperators01(pm, "x += 1"); Index: test/java/org/apache/jdo/tck/query/jdoql/SeparateNamespaceForTypeNames.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/SeparateNamespaceForTypeNames.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/SeparateNamespaceForTypeNames.java (Arbeitskopie) @@ -16,17 +16,11 @@ package org.apache.jdo.tck.query.jdoql; -import java.util.ArrayList; -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; @@ -49,6 +43,61 @@ private static final String ASSERTION_FAILED = "Assertion A14.4-1 (SeparateNamespaceForTypeNames) failed: "; + /** + * The array of valid queries which may be executed as + * single string queries and as API queries. + */ + private static final QueryElementHolder[] VALID_QUERIES = { + // query having a parameter with the same name as a type + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Employee.class, + /*EXCLUDE*/ null, + /*WHERE*/ "department == Department", + /*VARIABLES*/ null, + /*PARAMETERS*/ "Department Department", + /*IMPORTS*/ "import org.apache.jdo.tck.pc.company.Department", + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null), + // query having a parameter with the same name as a type + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Department.class, + /*EXCLUDE*/ null, + /*WHERE*/ "employees.contains(Employee) && Employee.firstname == \"emp1First\"", + /*VARIABLES*/ "Employee Employee", + /*PARAMETERS*/ null, + /*IMPORTS*/ "import org.apache.jdo.tck.pc.company.Employee", + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null), + }; + + /** + * The expected results of valid queries. + */ + private Object[] expectedResult = { + // query having a parameter with the same name as a type + getTransientCompanyModelInstancesAsList(new String[]{"emp1", "emp2", "emp3"}), + // query having a parameter with the same name as a type + getTransientCompanyModelInstancesAsList(new String[]{"dept1"}) + }; + + /** Parameters of valid queries. */ + private Object[][] parameters = { + // query having a parameter with the same name as a type + {getPersistentCompanyModelInstance("dept1")}, + // query having a parameter with the same name as a type + {null} + }; + /** * The main is called when the class * is directly executed from the command line. @@ -59,53 +108,20 @@ } /** */ - public void test() { - pm = getPM(); - - try { - // read test data - CompanyModelReader reader = loadCompanyModel(pm, COMPANY_TESTDATA); - runTest(pm, reader); + public void testPositive() { + for (int i = 0; i < VALID_QUERIES.length; i++) { + executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[i], + parameters[i], expectedResult[i]); + executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[i], + parameters[i], expectedResult[i]); } - finally { - cleanupCompanyModel(pm); - pm.close(); - pm = null; - } } - - /** */ - void runTest(PersistenceManager pm, CompanyModelReader reader) { - Transaction tx = pm.currentTransaction(); - tx.begin(); - Department dept1 = reader.getDepartment("dept1"); - - - // query having a parameter with the same name as a type - Query query = pm.newQuery(Employee.class); - query.declareImports("import org.apache.jdo.tck.pc.company.Department"); - query.declareParameters("Department Department"); - query.setFilter("department == Department"); - Object results = query.execute(dept1); - - Collection expected = new HashSet(); - expected.add(reader.getFullTimeEmployee("emp1")); - expected.add(reader.getFullTimeEmployee("emp2")); - expected.add(reader.getPartTimeEmployee("emp3")); - checkQueryResultWithoutOrder(ASSERTION_FAILED, results, expected); - - // query having a parameter with the same name as a type - query = pm.newQuery(Department.class); - query.declareImports("import org.apache.jdo.tck.pc.company.Employee"); - query.declareVariables("Employee Employee"); - query.setFilter("employees.contains(Employee) && Employee.firstname == \"emp1First\""); - results = query.execute(); - - expected = new ArrayList(); - expected.add(dept1); - checkQueryResultWithoutOrder(ASSERTION_FAILED, results, expected); - - tx.commit(); - tx = null; + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistCompanyModel(getPM()); + addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/PositiveRange.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/PositiveRange.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/PositiveRange.java (Arbeitskopie) @@ -106,13 +106,13 @@ * The expected results of valid queries. */ private Object[] expectedResult = { - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4", "emp5"}), - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4"}), - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp2", "emp3", "emp4", "emp5"}), - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp2", "emp3", "emp4"}) }; @@ -139,7 +139,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/NavigationThroughACollectionField.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/NavigationThroughACollectionField.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/NavigationThroughACollectionField.java (Arbeitskopie) @@ -16,15 +16,10 @@ package org.apache.jdo.tck.query.jdoql; -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.query.QueryElementHolder; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -47,6 +42,34 @@ private static final String ASSERTION_FAILED = "Assertion A14.6.2-10 (NavigationThroughACollectionField) 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*/ Department.class, + /*EXCLUDE*/ null, + /*WHERE*/ "employees.contains(e) && e.firstname == \"emp1First\"", + /*VARIABLES*/ "Employee e", + /*PARAMETERS*/ null, + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null) + }; + + /** + * The expected results of valid queries. + */ + private Object[] expectedResult = { + getTransientCompanyModelInstancesAsList(new String[]{"dept1"}) + }; + /** * The main is called when the class * is directly executed from the command line. @@ -57,38 +80,20 @@ } /** */ - public void test() { - pm = getPM(); - - try { - // read test data - CompanyModelReader reader = loadCompanyModel(pm, COMPANY_TESTDATA); - runTest(pm, reader); + public void testPositive() { + for (int i = 0; i < VALID_QUERIES.length; i++) { + executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[i], + expectedResult[i]); + executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[i], + expectedResult[i]); } - 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(); - - q = pm.newQuery(Department.class); - q.declareVariables("Employee e"); - q.setFilter("employees.contains(e) && e.firstname == \"emp1First\""); - result = q.execute(); - expected = new HashSet(); - expected.add(reader.getDepartment("dept1")); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - tx.commit(); + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistCompanyModel(getPM()); + addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/IgnoreCacheFalse.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/IgnoreCacheFalse.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/IgnoreCacheFalse.java (Arbeitskopie) @@ -67,6 +67,7 @@ */ protected void localSetUp() { super.localSetUp(); + loadAndPersistPrimitiveTypes(getPM()); addTearDownClass(PrimitiveTypes.class); } @@ -75,7 +76,6 @@ pm = getPM(); try { - loadPrimitiveTypes(pm); // set ignoreCache flag pm.setIgnoreCache(false); runTestNewInstance(pm); Index: test/java/org/apache/jdo/tck/query/jdoql/parameters/ParameterBoundToDifferentPM.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/parameters/ParameterBoundToDifferentPM.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/parameters/ParameterBoundToDifferentPM.java (Arbeitskopie) @@ -16,13 +16,11 @@ package org.apache.jdo.tck.query.jdoql.parameters; -import java.util.Collection; import javax.jdo.JDOUserException; - 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; @@ -57,34 +55,23 @@ } /** */ - public void test() { - pm = getPM(); + public void testNegative() { + // get parameter dept1 + getPM().currentTransaction().begin(); + Department dept1 = (Department) getPersistentCompanyModelInstance("dept1"); + getPM().currentTransaction().commit(); - try { - // read test data - CompanyModelReader reader = loadCompanyModel(pm, COMPANY_TESTDATA); - runTest(pm, reader); - } - finally { - cleanupCompanyModel(pm); - pm.close(); - pm = null; - } - } - - /** */ - void runTest(PersistenceManager pm, CompanyModelReader reader) { - Transaction tx = pm.currentTransaction(); - tx.begin(); - Department dept1 = reader.getDepartment("dept1"); - tx.commit(); - + // pass parameter dept1 to query of different pm PersistenceManager pm2 = pmf.getPersistenceManager(); + pm2.currentTransaction().begin(); try { - pm2.currentTransaction().begin(); Query q = pm2.newQuery(Employee.class, "department == d"); - q.declareParameters("Department d"); - Collection result = (Collection)q.execute(dept1); + q.declareParameters("Department d"); + try { + q.execute(dept1); + } finally { + q.closeAll(); + } fail(ASSERTION_FAILED, "Query.execute should throw a JDOUserException if a query " + "parameter is bound to a different PersistenceManager"); @@ -102,4 +89,12 @@ } } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistCompanyModel(getPM()); + addTearDownClass(CompanyModelReader.getTearDownClasses()); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/parameters/OrderOfParameters.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/parameters/OrderOfParameters.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/parameters/OrderOfParameters.java (Arbeitskopie) @@ -65,7 +65,7 @@ * The expected results of valid queries. */ private Object[] expectedResult = { - getCompanyModelInstancesAsList(new String[]{"emp1"}) + getTransientCompanyModelInstancesAsList(new String[]{"emp1"}) }; /** Parameters of valid queries. */ @@ -96,7 +96,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/parameters/ParameterDeclaredWithSameNameAsFieldOfCandidateClass.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/parameters/ParameterDeclaredWithSameNameAsFieldOfCandidateClass.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/parameters/ParameterDeclaredWithSameNameAsFieldOfCandidateClass.java (Arbeitskopie) @@ -24,6 +24,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -56,15 +57,11 @@ } /** */ - public void test() { - pm = getPM(); + public void testPositve() { + PersistenceManager pm = getPM(); - initDatabase(pm, PCPoint.class); runTestParameterDeclaredWithSameNameAsFieldOfCandidateClass01(pm); runTestParameterDeclaredWithSameNameAsFieldOfCandidateClass02(pm); - - pm.close(); - pm = null; } /** */ @@ -148,5 +145,13 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/parameters/PrimitiveParameterPassedAsNull.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/parameters/PrimitiveParameterPassedAsNull.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/parameters/PrimitiveParameterPassedAsNull.java (Arbeitskopie) @@ -16,14 +16,12 @@ package org.apache.jdo.tck.query.jdoql.parameters; -import java.util.Collection; -import java.util.HashSet; - import javax.jdo.JDOUserException; 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.mylib.PrimitiveTypes; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -55,23 +53,9 @@ BatchTestRunner.run(PrimitiveParameterPassedAsNull.class); } - /** */ - public void test() { - pm = getPM(); - - try { - loadPrimitiveTypes(pm); - runTest(pm); - } - finally { - cleanupDatabase(pm, PrimitiveTypes.class); - pm.close(); - pm = null; - } - } - /** */ - void runTest(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); Transaction tx = pm.currentTransaction(); tx.begin(); @@ -90,6 +74,12 @@ tx.commit(); } - - + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPrimitiveTypes(getPM()); + addTearDownClass(PrimitiveTypes.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/parameters/ImplicitParameters.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/parameters/ImplicitParameters.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/parameters/ImplicitParameters.java (Arbeitskopie) @@ -116,12 +116,12 @@ */ private Object[] expectedResult = { getExpectedResultOfFirstQuery( - getCompanyModelInstancesAsList(new String[] { + getTransientCompanyModelInstancesAsList(new String[] { "emp1", "emp2", "emp3", "emp4", "emp5"})), - getCompanyModelInstancesAsList(new String[]{"emp1"}), + getTransientCompanyModelInstancesAsList(new String[]{"emp1"}), /* Note: "Development" is not a bean name! */ Arrays.asList(new Object[]{"Development"}), - getCompanyModelInstancesAsList(new String[] { + getTransientCompanyModelInstancesAsList(new String[] { "emp1", "emp2", "emp3", "emp4", "emp5"}) }; @@ -163,7 +163,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } Index: test/java/org/apache/jdo/tck/query/jdoql/methods/MethodsAndObjectConstructionNotSupported.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/methods/MethodsAndObjectConstructionNotSupported.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/methods/MethodsAndObjectConstructionNotSupported.java (Arbeitskopie) @@ -21,6 +21,7 @@ import javax.jdo.PersistenceManager; import javax.jdo.Query; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -52,16 +53,12 @@ } /** */ - public void test() { - pm = getPM(); + public void testNegative() { + PersistenceManager pm = getPM(); - initDatabase(pm, PCPoint.class); runTestUnsupportedOperators01(pm, "this.getX() == 1"); runTestUnsupportedOperators01(pm, "y.intValue() == 1"); runTestUnsupportedOperators01(pm, "y == new Integer(1)"); - - pm.close(); - pm = null; } /** */ Index: test/java/org/apache/jdo/tck/query/jdoql/methods/SupportedStringMethods.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/methods/SupportedStringMethods.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/methods/SupportedStringMethods.java (Arbeitskopie) @@ -216,22 +216,22 @@ * The expected results of valid queries. */ private Object[] expectedResult = { - getCompanyModelInstancesAsList(new String[]{"emp1"}), - getCompanyModelInstancesAsList(new String[]{"emp1"}), - getCompanyModelInstancesAsList(new String[]{"dept1"}), - getCompanyModelInstancesAsList(new String[]{"dept1"}), - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{"emp1"}), + getTransientCompanyModelInstancesAsList(new String[]{"emp1"}), + getTransientCompanyModelInstancesAsList(new String[]{"dept1"}), + getTransientCompanyModelInstancesAsList(new String[]{"dept1"}), + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4", "emp5"}), - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4", "emp5"}), - getCompanyModelInstancesAsList(new String[]{"emp1"}), - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{"emp1"}), + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4", "emp5"}), - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4", "emp5"}), - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4", "emp5"}), - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4", "emp5"}) }; @@ -304,7 +304,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } Index: test/java/org/apache/jdo/tck/query/jdoql/methods/SupportedMathMethods.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/methods/SupportedMathMethods.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/methods/SupportedMathMethods.java (Arbeitskopie) @@ -243,41 +243,41 @@ * The expected results of valid queries testing Math.abs. */ private Object[] expectedResultABS = { - getMylibInstancesAsList(new String[]{ + getTransientMylibInstancesAsList(new String[]{ "primitiveTypesPositive", "primitiveTypesNegative"}), - getMylibInstancesAsList(new String[]{ + getTransientMylibInstancesAsList(new String[]{ "primitiveTypesPositive", "primitiveTypesNegative"}), - getMylibInstancesAsList(new String[]{ + getTransientMylibInstancesAsList(new String[]{ "primitiveTypesPositive", "primitiveTypesNegative"}), - getMylibInstancesAsList(new String[]{ + getTransientMylibInstancesAsList(new String[]{ "primitiveTypesPositive", "primitiveTypesNegative"}), - getMylibInstancesAsList(new String[]{ + getTransientMylibInstancesAsList(new String[]{ "primitiveTypesPositive", "primitiveTypesNegative"}), - getMylibInstancesAsList(new String[]{ + getTransientMylibInstancesAsList(new String[]{ "primitiveTypesPositive", "primitiveTypesNegative"}), - getMylibInstancesAsList(new String[]{ + getTransientMylibInstancesAsList(new String[]{ "primitiveTypesPositive", "primitiveTypesNegative"}), - getMylibInstancesAsList(new String[]{ + getTransientMylibInstancesAsList(new String[]{ "primitiveTypesPositive", "primitiveTypesNegative"}) }; /** The expected results of valid queries testing Math.sqrt. */ private Object[] expectedResultSQRT = { - getMylibInstancesAsList(new String[]{ + getTransientMylibInstancesAsList(new String[]{ "primitiveTypesPositive"}), - getMylibInstancesAsList(new String[]{ + getTransientMylibInstancesAsList(new String[]{ "primitiveTypesPositive"}), - getMylibInstancesAsList(new String[]{ + getTransientMylibInstancesAsList(new String[]{ "primitiveTypesPositive"}), - getMylibInstancesAsList(new String[]{ + getTransientMylibInstancesAsList(new String[]{ "primitiveTypesPositive"}), - getMylibInstancesAsList(new String[]{ + getTransientMylibInstancesAsList(new String[]{ "primitiveTypesPositive"}), - getMylibInstancesAsList(new String[]{ + getTransientMylibInstancesAsList(new String[]{ "primitiveTypesPositive"}), - getMylibInstancesAsList(new String[]{ + getTransientMylibInstancesAsList(new String[]{ "primitiveTypesPositive"}), - getMylibInstancesAsList(new String[]{ + getTransientMylibInstancesAsList(new String[]{ "primitiveTypesPositive"}) }; @@ -314,7 +314,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadMylib(getPM(), MYLIB_TESTDATA); + loadAndPersistMylib(getPM()); addTearDownClass(MylibReader.getTearDownClasses()); } Index: test/java/org/apache/jdo/tck/query/jdoql/methods/SupportedCollectionMethods.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/methods/SupportedCollectionMethods.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/methods/SupportedCollectionMethods.java (Arbeitskopie) @@ -137,16 +137,16 @@ */ private Object[] expectedResult = { // contains(VARIABLE) - getCompanyModelInstancesAsList(new String[]{"dept1"}), + getTransientCompanyModelInstancesAsList(new String[]{"dept1"}), // contains(PARAMETER) - getCompanyModelInstancesAsList(new String[]{"dept1"}), + getTransientCompanyModelInstancesAsList(new String[]{"dept1"}), // !isEmpty - getCompanyModelInstancesAsList(new String[]{"dept1", "dept2"}), + getTransientCompanyModelInstancesAsList(new String[]{"dept1", "dept2"}), // isEmpty - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp3", "emp4", "emp5"}), // size - getCompanyModelInstancesAsList(new String[]{"dept1"}) + getTransientCompanyModelInstancesAsList(new String[]{"dept1"}) }; /** @@ -198,7 +198,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } Index: test/java/org/apache/jdo/tck/query/jdoql/methods/StartsWithAndEndsWith.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/methods/StartsWithAndEndsWith.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/methods/StartsWithAndEndsWith.java (Arbeitskopie) @@ -16,15 +16,10 @@ 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.Employee; -import org.apache.jdo.tck.pc.company.CompanyModelReader; +import org.apache.jdo.tck.query.QueryElementHolder; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -49,6 +44,53 @@ private static final String ASSERTION_FAILED = "Assertion A14.6.2-33 (StartsWithAndEndsWith) failed: "; + /** + * The array of valid queries which may be executed as + * single string queries and as API queries. + */ + private static final QueryElementHolder[] VALID_QUERIES = { + // startsWith + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Employee.class, + /*EXCLUDE*/ null, + /*WHERE*/ "firstname.startsWith(\"emp1\")", + /*VARIABLES*/ null, + /*PARAMETERS*/ null, + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null), + // endsWith + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Employee.class, + /*EXCLUDE*/ null, + /*WHERE*/ "firstname.endsWith(\"1First\")", + /*VARIABLES*/ null, + /*PARAMETERS*/ null, + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null) + }; + + /** + * The expected results of valid queries. + */ + private Object[] expectedResult = { + // startsWith + getTransientCompanyModelInstancesAsList(new String[]{"emp1"}), + // endsWith + getTransientCompanyModelInstancesAsList(new String[]{"emp1"}) + }; + /** * The main is called when the class * is directly executed from the command line. @@ -59,44 +101,20 @@ } /** */ - public void test() { - pm = getPM(); - - try { - // read test data - CompanyModelReader reader = loadCompanyModel(pm, COMPANY_TESTDATA); - runTest(pm, reader); + public void testPositive() { + for (int i = 0; i < VALID_QUERIES.length; i++) { + executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[i], + expectedResult[i]); + executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[i], + expectedResult[i]); } - 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(); - - // startsWith - q = pm.newQuery(Employee.class, "firstname.startsWith(\"emp1\")"); - result = q.execute(); - expected = new HashSet(); - expected.add(reader.getFullTimeEmployee("emp1")); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - // endsWith - q = pm.newQuery(Employee.class, "firstname.endsWith(\"1First\")"); - result = q.execute(); - expected = new HashSet(); - expected.add(reader.getFullTimeEmployee("emp1")); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - tx.commit(); + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistCompanyModel(getPM()); + addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/methods/SupportedJDOHelperMethods.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/methods/SupportedJDOHelperMethods.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/methods/SupportedJDOHelperMethods.java (Arbeitskopie) @@ -124,7 +124,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } Index: test/java/org/apache/jdo/tck/query/jdoql/methods/SupportedMapMethods.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/methods/SupportedMapMethods.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/methods/SupportedMapMethods.java (Arbeitskopie) @@ -135,16 +135,16 @@ */ private Object[] expectedResult = { // get - getCompanyModelInstancesAsList(new String[]{"emp1"}), + getTransientCompanyModelInstancesAsList(new String[]{"emp1"}), // containsKey - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4", "emp5"}), // containsValue - getCompanyModelInstancesAsList(new String[]{"emp1"}), + getTransientCompanyModelInstancesAsList(new String[]{"emp1"}), // isEmpty new ArrayList(), // size - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4", "emp5"}) }; @@ -206,7 +206,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/MultipleIdenticalImports.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/MultipleIdenticalImports.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/MultipleIdenticalImports.java (Arbeitskopie) @@ -23,9 +23,11 @@ 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; @@ -55,23 +57,84 @@ BatchTestRunner.run(MultipleIdenticalImports.class); } + /** + * The array of valid queries which may be executed as + * single string queries and as API queries. + */ + private static final QueryElementHolder[] VALID_QUERIES = { + // Import Department twice + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Employee.class, + /*EXCLUDE*/ null, + /*WHERE*/ "department == d", + /*VARIABLES*/ null, + /*PARAMETERS*/ "Department d", + /*IMPORTS*/ "import org.apache.jdo.tck.pc.company.Department; " + + "import org.apache.jdo.tck.pc.company.Department;", + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null), + // Import Department explictly and per type-import-on-demand + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Employee.class, + /*EXCLUDE*/ null, + /*WHERE*/ "department == d", + /*VARIABLES*/ null, + /*PARAMETERS*/ "Department d", + /*IMPORTS*/ "import org.apache.jdo.tck.pc.company.Department; " + + "import org.apache.jdo.tck.pc.company.*", + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null), + // type-import-on-demand twice + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Employee.class, + /*EXCLUDE*/ null, + /*WHERE*/ "department == d", + /*VARIABLES*/ null, + /*PARAMETERS*/ "Department d", + /*IMPORTS*/ "import org.apache.jdo.tck.pc.company.*; " + + "import org.apache.jdo.tck.pc.company.*", + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null) + }; + + /** + * The expected results of valid queries. + */ + private Object[] expectedResult = { + // Import Department twice + getTransientCompanyModelInstancesAsList(new String[]{"emp1", "emp2", "emp3"}), + // Import Department explictly and per type-import-on-demand + getTransientCompanyModelInstancesAsList(new String[]{"emp1", "emp2", "emp3"}), + // type-import-on-demand twice + getTransientCompanyModelInstancesAsList(new String[]{"emp1", "emp2", "emp3"}) + }; + + /** Parameters of valid queries. */ + private Object[][] parameters = { + // Import Department twice + {getPersistentCompanyModelInstance("dept1")}, + // Import Department explictly and per type-import-on-demand + {getPersistentCompanyModelInstance("dept1")}, + // type-import-on-demand twice + {getPersistentCompanyModelInstance("dept1")} + }; + /** */ - public void test() { - pm = getPM(); - - try { - // read test data - CompanyModelReader reader = loadCompanyModel(pm, COMPANY_TESTDATA); - runTest(pm, reader); - } - finally { - cleanupCompanyModel(pm); - pm.close(); - pm = null; - } - } - - /** */ void runTest(PersistenceManager pm, CompanyModelReader reader) { Query query; Collection expected; @@ -112,4 +175,22 @@ tx.commit(); tx = null; } + + /** */ + public void testPositive() { + for (int i = 0; i < VALID_QUERIES.length; i++) { + executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[i], + parameters[i], expectedResult[i]); + executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[i], + parameters[i], expectedResult[i]); + } + } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistCompanyModel(getPM()); + addTearDownClass(CompanyModelReader.getTearDownClasses()); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/ParenthesesMarkOperatorPrecedence.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/ParenthesesMarkOperatorPrecedence.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/ParenthesesMarkOperatorPrecedence.java (Arbeitskopie) @@ -24,6 +24,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -55,10 +56,9 @@ } /** */ - public void test() { - pm = getPM(); + public void testPositive() { + PersistenceManager pm = getPM(); - initDatabase(pm, PCPoint.class); runTestParenthesesMarkOperatorPrecedence01(pm); runTestParenthesesMarkOperatorPrecedence02(pm); runTestParenthesesMarkOperatorPrecedence03(pm); @@ -68,9 +68,6 @@ runTestParenthesesMarkOperatorPrecedence07(pm); runTestParenthesesMarkOperatorPrecedence08(pm); runTestParenthesesMarkOperatorPrecedence09(pm); - - pm.close(); - pm = null; } /** */ @@ -376,5 +373,13 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/keywords/ThisIsReservedWordForElementOfCollection.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/keywords/ThisIsReservedWordForElementOfCollection.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/keywords/ThisIsReservedWordForElementOfCollection.java (Arbeitskopie) @@ -17,9 +17,11 @@ package org.apache.jdo.tck.query.jdoql.keywords; 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.mylib.PrimitiveTypes; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -52,22 +54,8 @@ } /** */ - public void test() { - pm = getPM(); - - try { - loadPrimitiveTypes(pm); - runTest(pm); - } - finally { - cleanupDatabase(pm, PrimitiveTypes.class); - pm.close(); - pm = null; - } - } - - /** */ - void runTest(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); Transaction tx = pm.currentTransaction(); tx.begin(); @@ -84,4 +72,12 @@ "this.intNotNull == intNotNull", "int intNotNull", new Integer(9), pm, instance9, ASSERTION_FAILED); } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPrimitiveTypes(getPM()); + addTearDownClass(PrimitiveTypes.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/keywords/SingleString.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/keywords/SingleString.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/keywords/SingleString.java (Arbeitskopie) @@ -105,7 +105,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/keywords/UseOfThisToAcessHiddenField.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/keywords/UseOfThisToAcessHiddenField.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/keywords/UseOfThisToAcessHiddenField.java (Arbeitskopie) @@ -23,6 +23,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -54,15 +55,11 @@ } /** */ - public void test() { - pm = getPM(); + public void testPositve() { + PersistenceManager pm = getPM(); - initDatabase(pm, PCPoint.class); runTestUseOfThisToAcessHiddenField01(pm); runTestUseOfThisToAcessHiddenField02(pm); - - pm.close(); - pm = null; } /** */ @@ -134,5 +131,13 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/variables/MixedVariables.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/variables/MixedVariables.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/variables/MixedVariables.java (Arbeitskopie) @@ -103,8 +103,8 @@ * The expected results of valid queries. */ private Object[] expectedResult = { - getCompanyModelInstancesAsList(new String[]{"emp2"}), - getCompanyModelInstancesAsList(new String[]{"emp2"}) + getTransientCompanyModelInstancesAsList(new String[]{"emp2"}), + getTransientCompanyModelInstancesAsList(new String[]{"emp2"}) }; /** @@ -138,7 +138,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/variables/UnconstrainedVariable.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/variables/UnconstrainedVariable.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/variables/UnconstrainedVariable.java (Arbeitskopie) @@ -66,7 +66,7 @@ * The expected results of valid queries. */ private Object[] expectedResult = { - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp2", "emp3", "emp4"}) }; @@ -100,7 +100,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/variables/VariablesAndFields.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/variables/VariablesAndFields.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/variables/VariablesAndFields.java (Arbeitskopie) @@ -130,10 +130,10 @@ * The expected results of valid queries. */ private Object[] expectedResult = { - getCompanyModelInstancesAsList(new String[]{"emp2"}), - getCompanyModelInstancesAsList(new String[]{"emp2"}), - getCompanyModelInstancesAsList(new String[]{"emp1"}), - getCompanyModelInstancesAsList(new String[]{"emp2"}), + getTransientCompanyModelInstancesAsList(new String[]{"emp2"}), + getTransientCompanyModelInstancesAsList(new String[]{"emp2"}), + getTransientCompanyModelInstancesAsList(new String[]{"emp1"}), + getTransientCompanyModelInstancesAsList(new String[]{"emp2"}), new LinkedList() }; @@ -160,7 +160,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/variables/VariablesWithoutExtent.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/variables/VariablesWithoutExtent.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/variables/VariablesWithoutExtent.java (Arbeitskopie) @@ -99,7 +99,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); NoExtent noExtent = new NoExtent(1); makePersistent(noExtent); Index: test/java/org/apache/jdo/tck/query/jdoql/QueryIsSerializable.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/QueryIsSerializable.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/QueryIsSerializable.java (Arbeitskopie) @@ -29,6 +29,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -62,16 +63,12 @@ } /** */ - public void test() throws Exception { - pm = getPM(); + public void testPositive() throws Exception { + PersistenceManager pm = getPM(); - initDatabase(pm, PCPoint.class); runTestQueryIsSerializable01(pm); runTestQueryIsSerializable02(pm); runTestQueryIsSerializable03(pm); - - pm.close(); - pm = null; } /** */ @@ -183,6 +180,14 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/ComparingCollectionFieldToNull.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/ComparingCollectionFieldToNull.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/ComparingCollectionFieldToNull.java (Arbeitskopie) @@ -16,15 +16,10 @@ package org.apache.jdo.tck.query.jdoql; -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.Employee; +import org.apache.jdo.tck.query.QueryElementHolder; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -49,6 +44,37 @@ private static final String ASSERTION_FAILED = "Assertion A14.6.2-36 (ComparingCollectionFieldToNull) 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*/ "personid == 1 && projects == null", + /*VARIABLES*/ null, + /*PARAMETERS*/ null, + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null) + }; + + /** + * The expected results of valid queries. + */ + private Object[] expectedResult = { + // emp1 should be in the query result set, + // if the JDO Implentation supports null values for Collections + getTransientCompanyModelInstancesAsList( + isNullCollectionSupported() ? new String[]{"emp1"} : new String[]{}) + }; + /** * The main is called when the class * is directly executed from the command line. @@ -59,44 +85,26 @@ } /** */ - public void test() { - pm = getPM(); - - try { - // read test data - CompanyModelReader reader = loadCompanyModel(pm, COMPANY_TESTDATA); - runTest(pm, reader); + public void testPositive() { + for (int i = 0; i < VALID_QUERIES.length; i++) { + executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[i], + expectedResult[i]); + executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[i], + expectedResult[i]); } - 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(); - Employee emp1 = reader.getFullTimeEmployee("emp1"); - emp1.setProjects(null); - tx.commit(); - - tx.begin(); - q = pm.newQuery(Employee.class); - q.setFilter("personid == 1 && projects == null"); - result = q.execute(); - expected = new HashSet(); - // emp1 should be in the query result set, - // if the JDO Implentation supports null values for Collections - if (isNullCollectionSupported()) - expected.add(emp1); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - tx.commit(); + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistCompanyModel(getPM()); + Employee employee = (Employee) getPersistentCompanyModelInstance("emp1"); + if (isNullCollectionSupported()) { + getPM().currentTransaction().begin(); + employee.setProjects(null); + getPM().currentTransaction().commit(); + } + addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/ExecutingQueryWhenNoTransactionNoNontransactionalRead.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/ExecutingQueryWhenNoTransactionNoNontransactionalRead.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/ExecutingQueryWhenNoTransactionNoNontransactionalRead.java (Arbeitskopie) @@ -17,7 +17,10 @@ package org.apache.jdo.tck.query.jdoql; -import javax.jdo.*; +import javax.jdo.Extent; +import javax.jdo.JDOUserException; +import javax.jdo.PersistenceManager; +import javax.jdo.Query; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; @@ -54,15 +57,11 @@ } /** */ - public void test() { - pm = getPM(); + public void testNegative() { + PersistenceManager pm = getPM(); - initDatabase(pm, PCPoint.class); pm.currentTransaction().setNontransactionalRead(false); runTestNewQuery(pm); - - pm.close(); - pm = null; } /** */ Index: test/java/org/apache/jdo/tck/query/jdoql/operators/Modulo.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/operators/Modulo.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/operators/Modulo.java (Arbeitskopie) @@ -70,7 +70,7 @@ * The expected results of valid queries. */ private Object[] expectedResult = { - getCompanyModelInstancesAsList(new String[]{"emp2", "emp4"}) + getTransientCompanyModelInstancesAsList(new String[]{"emp2", "emp4"}) }; /** @@ -132,9 +132,9 @@ */ protected void localSetUp() { PersistenceManager pm = getPM(); - loadCompanyModel(pm, COMPANY_TESTDATA); + loadAndPersistCompanyModel(pm); addTearDownClass(CompanyModelReader.getTearDownClasses()); - loadPrimitiveTypes(pm); + loadAndPersistPrimitiveTypes(pm); addTearDownClass(PrimitiveTypes.class); } } Index: test/java/org/apache/jdo/tck/query/jdoql/operators/BinaryAddition.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/operators/BinaryAddition.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/operators/BinaryAddition.java (Arbeitskopie) @@ -21,6 +21,7 @@ import javax.jdo.PersistenceManager; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PrimitiveTypes; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -57,22 +58,8 @@ } /** */ - public void test() { - pm = getPM(); - - try { - loadPrimitiveTypes(pm); - runTest(pm); - } - finally { - cleanupDatabase(pm, PrimitiveTypes.class); - pm.close(); - pm = null; - } - } - - /** */ - void runTest(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); if (debug) logger.debug("\nExecuting test BinaryAddition() ..."); Transaction tx = pm.currentTransaction(); @@ -121,5 +108,13 @@ tx.commit(); } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPrimitiveTypes(getPM()); + addTearDownClass(PrimitiveTypes.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/operators/UnaryPlus.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/operators/UnaryPlus.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/operators/UnaryPlus.java (Arbeitskopie) @@ -21,6 +21,7 @@ import javax.jdo.PersistenceManager; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PrimitiveTypes; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -62,22 +63,8 @@ } /** */ - public void test() { - pm = getPM(); - - try { - loadPrimitiveTypes(pm); - runTestBinaryAddition(pm); - } - finally { - cleanupDatabase(pm, PrimitiveTypes.class); - pm.close(); - pm = null; - } - } - - /** */ - void runTestBinaryAddition(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); if (debug) logger.debug("\nExecuting test BinaryAddition() ..."); Transaction tx = pm.currentTransaction(); @@ -90,4 +77,12 @@ pm, instance9, ASSERTION_FAILED); tx.commit(); } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPrimitiveTypes(getPM()); + addTearDownClass(PrimitiveTypes.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/operators/BinarySubtraction.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/operators/BinarySubtraction.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/operators/BinarySubtraction.java (Arbeitskopie) @@ -21,6 +21,7 @@ import javax.jdo.PersistenceManager; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PrimitiveTypes; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -63,22 +64,8 @@ } /** */ - public void test() { - pm = getPM(); - - try { - loadPrimitiveTypes(pm); - runTest(pm); - } - finally { - cleanupDatabase(pm, PrimitiveTypes.class); - pm.close(); - pm = null; - } - } - - /** */ - void runTest(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); if (debug) logger.debug("\nExecuting test BinarySubtraction() ..."); Transaction tx = pm.currentTransaction(); @@ -127,4 +114,12 @@ tx.commit(); } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPrimitiveTypes(getPM()); + addTearDownClass(PrimitiveTypes.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/operators/ConditionalOR.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/operators/ConditionalOR.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/operators/ConditionalOR.java (Arbeitskopie) @@ -18,11 +18,13 @@ 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.JDO_Test; import org.apache.jdo.tck.pc.mylib.PrimitiveTypes; +import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; /** @@ -56,22 +58,8 @@ } /** */ - public void test() { - pm = getPM(); - - try { - loadPrimitiveTypes(pm); - runTest(pm); - } - finally { - cleanupDatabase(pm, PrimitiveTypes.class); - pm.close(); - pm = null; - } - } - - /** */ - void runTest(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); if (debug) logger.debug("\nExecuting test ConditionalOR() ..."); Transaction tx = pm.currentTransaction(); @@ -136,4 +124,12 @@ pm, instance9, ASSERTION_FAILED); tx.commit(); } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPrimitiveTypes(getPM()); + addTearDownClass(PrimitiveTypes.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/operators/EqualityAndComparisonsBetweenDateFieldsAndParameters.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/operators/EqualityAndComparisonsBetweenDateFieldsAndParameters.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/operators/EqualityAndComparisonsBetweenDateFieldsAndParameters.java (Arbeitskopie) @@ -17,19 +17,15 @@ package org.apache.jdo.tck.query.jdoql.operators; import java.util.Calendar; -import java.util.Collection; import java.util.Date; import java.util.GregorianCalendar; -import java.util.HashSet; import java.util.TimeZone; -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.Employee; +import org.apache.jdo.tck.query.QueryElementHolder; 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; /** @@ -51,9 +47,73 @@ private static final String ASSERTION_FAILED = "Assertion A14.6.2-4 (EqualityAndComparisonsBetweenDateFieldsAndParameters) failed: "; + /** + * The array of valid queries which may be executed as + * single string queries and as API queries. + */ + private static final QueryElementHolder[] VALID_QUERIES = { + // date field == date parameter + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Employee.class, + /*EXCLUDE*/ null, + /*WHERE*/ "hiredate == param", + /*VARIABLES*/ null, + /*PARAMETERS*/ "java.util.Date param", + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null), + // date field >= date parameter + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Employee.class, + /*EXCLUDE*/ null, + /*WHERE*/ "hiredate >= param", + /*VARIABLES*/ null, + /*PARAMETERS*/ "java.util.Date param", + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null), + // date field >= date parameter + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Employee.class, + /*EXCLUDE*/ null, + /*WHERE*/ "param < birthdate", + /*VARIABLES*/ null, + /*PARAMETERS*/ "java.util.Date param", + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null), + }; + + /** + * The expected results of valid queries. + */ + private Object[] expectedResult = { + // date field == date parameter + getTransientCompanyModelInstancesAsList(new String[]{"emp1"}), + // date field >= date parameter + getTransientCompanyModelInstancesAsList(new String[]{ + "emp1", "emp2", "emp3", "emp4"}), + // date field >= date parameter + getTransientCompanyModelInstancesAsList(new String[]{}) + }; + /** */ private static final Date FIRST_OF_JAN_1999; - static { // initialize static field FIRST_OF_JAN_1999 Calendar cal = new GregorianCalendar( @@ -63,6 +123,16 @@ FIRST_OF_JAN_1999 = cal.getTime(); } + /** Parameters of valid queries. */ + private Object[][] parameters = { + // date field == date parameter + {FIRST_OF_JAN_1999}, + // date field >= date parameter + {FIRST_OF_JAN_1999}, + // date field >= date parameter + {FIRST_OF_JAN_1999} + }; + /** * The main is called when the class * is directly executed from the command line. @@ -73,57 +143,20 @@ } /** */ - public void test() { - pm = getPM(); - - try { - // read test data - CompanyModelReader reader = loadCompanyModel(pm, COMPANY_TESTDATA); - runTest(pm, reader); + public void testPositive() { + for (int i = 0; i < VALID_QUERIES.length; i++) { + executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[i], + parameters[i], expectedResult[i]); + executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[i], + parameters[i], expectedResult[i]); } - 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(); - - // date field == date parameter - q = pm.newQuery(Employee.class, "hiredate == param"); - q.declareParameters("java.util.Date param"); - result = q.execute(FIRST_OF_JAN_1999); - expected = new HashSet(); - expected.add(reader.getFullTimeEmployee("emp1")); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - // date field >= date parameter - q = pm.newQuery(Employee.class, "hiredate >= param"); - q.declareParameters("java.util.Date param"); - result = q.execute(FIRST_OF_JAN_1999); - expected = new HashSet(); - expected.add(reader.getFullTimeEmployee("emp1")); - expected.add(reader.getFullTimeEmployee("emp2")); - expected.add(reader.getPartTimeEmployee("emp3")); - expected.add(reader.getPartTimeEmployee("emp4")); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - // date parameter < date field - q = pm.newQuery(Employee.class, "param < birthdate"); - q.declareParameters("java.util.Date param"); - result = q.execute(FIRST_OF_JAN_1999); - expected = new HashSet(); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - tx.commit(); + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistCompanyModel(getPM()); + addTearDownClass(CompanyModelReader.getTearDownClasses()); } - } Index: test/java/org/apache/jdo/tck/query/jdoql/operators/BooleanLogicalOR.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/operators/BooleanLogicalOR.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/operators/BooleanLogicalOR.java (Arbeitskopie) @@ -24,8 +24,9 @@ import javax.jdo.Query; import javax.jdo.Transaction; -import org.apache.jdo.tck.query.QueryTest; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PrimitiveTypes; +import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; /** @@ -58,34 +59,9 @@ public static void main(String[] args) { BatchTestRunner.run(BooleanLogicalOR.class); } - /** */ - public void test() { - pm = getPM(); - - try { - loadPrimitiveTypes(pm); - runPositiveTest(pm); - } - finally { - cleanupDatabase(pm, PrimitiveTypes.class); - pm.close(); - pm = null; - } - } - - /** */ - public void testBitwiseAND() { - pm = getPM(); - - runNegativeTest(pm); - - pm.close(); - pm = null; - } - - /** */ - void runPositiveTest(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); if (debug) logger.debug("\nExecuting positive test BooleanLogicalOR() ..."); Transaction tx = pm.currentTransaction(); @@ -152,7 +128,8 @@ } /** */ - void runNegativeTest(PersistenceManager pm) { + public void testNegative() { + PersistenceManager pm = getPM(); if (debug) logger.debug("\nExecuting positive test BooleanLogicalAND() ..."); Transaction tx = pm.currentTransaction(); @@ -173,6 +150,13 @@ } tx.commit(); } - + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPrimitiveTypes(getPM()); + addTearDownClass(PrimitiveTypes.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/operators/StringConcatenation.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/operators/StringConcatenation.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/operators/StringConcatenation.java (Arbeitskopie) @@ -16,16 +16,11 @@ package org.apache.jdo.tck.query.jdoql.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.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.pc.company.Employee; -import org.apache.jdo.tck.pc.company.CompanyModelReader; import org.apache.jdo.tck.util.BatchTestRunner; /** @@ -47,6 +42,61 @@ private static final String ASSERTION_FAILED = "Assertion A14.6.2-27 (StringConcatenation) failed: "; + /** + * The array of valid queries which may be executed as + * single string queries and as API queries. + */ + private static final QueryElementHolder[] VALID_QUERIES = { + // string literal + string literal + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Employee.class, + /*EXCLUDE*/ null, + /*WHERE*/ "firstname == \"emp1\" + \"First\"", + /*VARIABLES*/ null, + /*PARAMETERS*/ null, + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null), + // string field + string literal + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Employee.class, + /*EXCLUDE*/ null, + /*WHERE*/ "firstname + \"Ext\" == param", + /*VARIABLES*/ null, + /*PARAMETERS*/ "String param", + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null) + }; + + /** + * The expected results of valid queries. + */ + private Object[] expectedResult = { + // string literal + string literal + getTransientCompanyModelInstancesAsList(new String[]{"emp1"}), + // string field + string literal + getTransientCompanyModelInstancesAsList(new String[]{"emp1"}) + }; + + /** Parameters of valid queries. */ + private Object[][] parameters = { + // string literal + string literal + {null}, + // string field + string literal + {"emp1FirstExt"} + }; + /** * The main is called when the class * is directly executed from the command line. @@ -57,47 +107,20 @@ } /** */ - public void test() { - pm = getPM(); - - try { - // read test data - CompanyModelReader reader = loadCompanyModel(pm, COMPANY_TESTDATA); - runTest(pm, reader); + public void testPositive() { + for (int i = 0; i < VALID_QUERIES.length; i++) { + executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[i], + parameters[i], expectedResult[i]); + executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[i], + parameters[i], expectedResult[i]); } - 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 literal + string literal - q = pm.newQuery(Employee.class); - q.setFilter("firstname == \"emp1\" + \"First\""); - result = q.execute(); - expected = new HashSet(); - expected.add(reader.getFullTimeEmployee("emp1")); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - // string field + string literal - q = pm.newQuery(Employee.class); - q.declareParameters("String param"); - q.setFilter("firstname + \"Ext\" == param"); - result = q.execute("emp1FirstExt"); - expected = new HashSet(); - expected.add(reader.getFullTimeEmployee("emp1")); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - tx.commit(); + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistCompanyModel(getPM()); + addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/operators/EqualityAndComparisonsBetweenPrimitivesAndWrapperInstances.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/operators/EqualityAndComparisonsBetweenPrimitivesAndWrapperInstances.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/operators/EqualityAndComparisonsBetweenPrimitivesAndWrapperInstances.java (Arbeitskopie) @@ -22,8 +22,9 @@ import javax.jdo.PersistenceManager; import javax.jdo.Transaction; -import org.apache.jdo.tck.query.QueryTest; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PrimitiveTypes; +import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; /** @@ -56,22 +57,8 @@ } /** */ - public void test() { - pm = getPM(); - - try { - loadPrimitiveTypes(pm); - runTest(pm); - } - finally { - cleanupDatabase(pm, PrimitiveTypes.class); - pm.close(); - pm = null; - } - } - - /** */ - void runTest(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); Transaction tx = pm.currentTransaction(); tx.begin(); @@ -108,4 +95,12 @@ tx.commit(); } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPrimitiveTypes(getPM()); + addTearDownClass(PrimitiveTypes.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/operators/Division.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/operators/Division.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/operators/Division.java (Arbeitskopie) @@ -22,6 +22,7 @@ import javax.jdo.PersistenceManager; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PrimitiveTypes; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -63,22 +64,8 @@ } /** */ - public void test() { - pm = getPM(); - - try { - loadPrimitiveTypes(pm); - runTest(pm); - } - finally { - cleanupDatabase(pm, PrimitiveTypes.class); - pm.close(); - pm = null; - } - } - - /** */ - void runTest(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); if (debug) logger.debug("\nExecuting test Division() ..."); Transaction tx = pm.currentTransaction(); @@ -128,4 +115,12 @@ tx.commit(); } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPrimitiveTypes(getPM()); + addTearDownClass(PrimitiveTypes.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/operators/ConditionalAND.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/operators/ConditionalAND.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/operators/ConditionalAND.java (Arbeitskopie) @@ -22,8 +22,9 @@ import javax.jdo.PersistenceManager; import javax.jdo.Transaction; -import org.apache.jdo.tck.query.QueryTest; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PrimitiveTypes; +import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; /** @@ -58,23 +59,9 @@ } - /** */ - public void test() { - pm = getPM(); - - try { - loadPrimitiveTypes(pm); - runTest(pm); - } - finally { - cleanupDatabase(pm, PrimitiveTypes.class); - pm.close(); - pm = null; - } - } - /** */ - void runTest(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); if (debug) logger.debug("\nExecuting test ConditionalAND() ..."); Transaction tx = pm.currentTransaction(); @@ -136,4 +123,12 @@ tx.commit(); } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPrimitiveTypes(getPM()); + addTearDownClass(PrimitiveTypes.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/operators/Instanceof.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/operators/Instanceof.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/operators/Instanceof.java (Arbeitskopie) @@ -79,8 +79,8 @@ * The expected results of valid queries. */ private Object[] expectedResult = { - getCompanyModelInstancesAsList(new String[]{"emp2", "emp3"}), - getCompanyModelInstancesAsList(new String[]{"emp2", "emp3"}) + getTransientCompanyModelInstancesAsList(new String[]{"emp2", "emp3"}), + getTransientCompanyModelInstancesAsList(new String[]{"emp2", "emp3"}) }; /** @@ -106,7 +106,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/operators/PromotionOfNumericOperands.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/operators/PromotionOfNumericOperands.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/operators/PromotionOfNumericOperands.java (Arbeitskopie) @@ -21,6 +21,7 @@ import javax.jdo.PersistenceManager; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PrimitiveTypes; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -53,22 +54,8 @@ } /** */ - public void test() { - pm = getPM(); - - try { - loadPrimitiveTypes(pm); - runTest(pm); - } - finally { - cleanupDatabase(pm, PrimitiveTypes.class); - pm.close(); - pm = null; - } - } - - /** */ - void runTest(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); Transaction tx = pm.currentTransaction(); tx.begin(); @@ -103,4 +90,12 @@ runSimplePrimitiveTypesQuery("10L - intNull == 1", pm, instance9, ASSERTION_FAILED); } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPrimitiveTypes(getPM()); + addTearDownClass(PrimitiveTypes.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/operators/BitwiseComplement.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/operators/BitwiseComplement.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/operators/BitwiseComplement.java (Arbeitskopie) @@ -21,6 +21,7 @@ import javax.jdo.PersistenceManager; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PrimitiveTypes; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -57,22 +58,8 @@ } /** */ - public void test() { - pm = getPM(); - - try { - loadPrimitiveTypes(pm); - runTest(pm); - } - finally { - cleanupDatabase(pm, PrimitiveTypes.class); - pm.close(); - pm = null; - } - } - - /** */ - void runTest(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); Transaction tx = pm.currentTransaction(); tx.begin(); @@ -108,4 +95,12 @@ tx.commit(); } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPrimitiveTypes(getPM()); + addTearDownClass(PrimitiveTypes.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/operators/Multiplication.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/operators/Multiplication.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/operators/Multiplication.java (Arbeitskopie) @@ -21,6 +21,7 @@ import javax.jdo.PersistenceManager; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PrimitiveTypes; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -62,22 +63,8 @@ } /** */ - public void test() { - pm = getPM(); - - try { - loadPrimitiveTypes(pm); - runTest(pm); - } - finally { - cleanupDatabase(pm, PrimitiveTypes.class); - pm.close(); - pm = null; - } - } - - /** */ - void runTest(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); if (debug) logger.debug("\nExecuting test Multiplication() ..."); Transaction tx = pm.currentTransaction(); @@ -119,4 +106,12 @@ tx.commit(); } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPrimitiveTypes(getPM()); + addTearDownClass(PrimitiveTypes.class); + } } \ No newline at end of file Index: test/java/org/apache/jdo/tck/query/jdoql/operators/SignInversion.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/operators/SignInversion.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/operators/SignInversion.java (Arbeitskopie) @@ -21,6 +21,7 @@ import javax.jdo.PersistenceManager; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PrimitiveTypes; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -62,22 +63,8 @@ } /** */ - public void test() { - pm = getPM(); - - try { - loadPrimitiveTypes(pm); - runTest(pm); - } - finally { - cleanupDatabase(pm, PrimitiveTypes.class); - pm.close(); - pm = null; - } - } - - /** */ - void runTest(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); Transaction tx = pm.currentTransaction(); tx.begin(); @@ -124,4 +111,12 @@ tx.commit(); } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPrimitiveTypes(getPM()); + addTearDownClass(PrimitiveTypes.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/operators/EqualityAndComparisonsBetweenStringFieldsAndParameters.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/operators/EqualityAndComparisonsBetweenStringFieldsAndParameters.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/operators/EqualityAndComparisonsBetweenStringFieldsAndParameters.java (Arbeitskopie) @@ -16,16 +16,11 @@ package org.apache.jdo.tck.query.jdoql.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.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.pc.company.Employee; -import org.apache.jdo.tck.pc.company.CompanyModelReader; import org.apache.jdo.tck.util.BatchTestRunner; /** @@ -48,6 +43,82 @@ private static final String ASSERTION_FAILED = "Assertion A14.6.2-5 (EqualityAndComparisonsBetweenStringFieldsAndParameters) failed: "; + /** + * The array of valid queries which may be executed as + * single string queries and as API queries. + */ + private static final QueryElementHolder[] VALID_QUERIES = { + // string field == string parameter + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Employee.class, + /*EXCLUDE*/ null, + /*WHERE*/ "firstname == param", + /*VARIABLES*/ null, + /*PARAMETERS*/ "java.lang.String param", + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null), + // string field >= string parameter + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Employee.class, + /*EXCLUDE*/ null, + /*WHERE*/ "firstname >= param", + /*VARIABLES*/ null, + /*PARAMETERS*/ "java.lang.String param", + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null), + // string parameter < string field + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Employee.class, + /*EXCLUDE*/ null, + /*WHERE*/ "param < firstname", + /*VARIABLES*/ null, + /*PARAMETERS*/ "java.lang.String param", + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null), + }; + + /** + * The expected results of valid queries. + */ + private Object[] expectedResult = { + // string field == string parameter + getTransientCompanyModelInstancesAsList(new String[]{"emp1"}), + // string field >= string parameter + getTransientCompanyModelInstancesAsList(new String[]{ + "emp1", "emp2", "emp3", "emp4", "emp5"}), + // string parameter < string field + getTransientCompanyModelInstancesAsList(new String[]{ + "emp3", "emp4", "emp5"}), + }; + + /** Parameters of valid queries. */ + private Object[][] parameters = { + // string field == string parameter + {"emp1First"}, + // string field >= string parameter + {"emp1First"}, + // string parameter < string field + {"emp2First"} + }; + /** * The main is called when the class * is directly executed from the command line. @@ -58,60 +129,20 @@ } /** */ - public void test() { - pm = getPM(); - - try { - // read test data - CompanyModelReader reader = loadCompanyModel(pm, COMPANY_TESTDATA); - runTest(pm, reader); + public void testPositive() { + for (int i = 0; i < VALID_QUERIES.length; i++) { + executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[i], + parameters[i], expectedResult[i]); + executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[i], + parameters[i], expectedResult[i]); } - 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")); - expected.add(reader.getPartTimeEmployee("emp4")); - expected.add(reader.getFullTimeEmployee("emp5")); - 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")); - expected.add(reader.getPartTimeEmployee("emp4")); - expected.add(reader.getFullTimeEmployee("emp5")); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - tx.commit(); + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistCompanyModel(getPM()); + addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/operators/BooleanLogicalAND.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/operators/BooleanLogicalAND.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/operators/BooleanLogicalAND.java (Arbeitskopie) @@ -24,8 +24,9 @@ import javax.jdo.Query; import javax.jdo.Transaction; -import org.apache.jdo.tck.query.QueryTest; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PrimitiveTypes; +import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; /** @@ -60,32 +61,8 @@ } /** */ - public void test() { - pm = getPM(); - - try { - loadPrimitiveTypes(pm); - runPositiveTest(pm); - } - finally { - cleanupDatabase(pm, PrimitiveTypes.class); - pm.close(); - pm = null; - } - } - - /** */ - public void testBitwiseAND() { - pm = getPM(); - - runNegativeTest(pm); - - pm.close(); - pm = null; - } - - /** */ - void runPositiveTest(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); if (debug) logger.debug("\nExecuting positive test BooleanLogicalAND() ..."); Transaction tx = pm.currentTransaction(); @@ -149,7 +126,8 @@ } /** */ - void runNegativeTest(PersistenceManager pm) { + public void testNegative() { + PersistenceManager pm = getPM(); if (debug) logger.debug("\nExecuting positive test BooleanLogicalAND() ..."); Transaction tx = pm.currentTransaction(); @@ -170,5 +148,12 @@ } tx.commit(); } - + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPrimitiveTypes(getPM()); + addTearDownClass(PrimitiveTypes.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/operators/LogicalComplement.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/operators/LogicalComplement.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/operators/LogicalComplement.java (Arbeitskopie) @@ -22,8 +22,9 @@ import javax.jdo.PersistenceManager; import javax.jdo.Transaction; -import org.apache.jdo.tck.query.QueryTest; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PrimitiveTypes; +import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; /** @@ -57,22 +58,8 @@ } /** */ - public void test() { - pm = getPM(); - - try { - loadPrimitiveTypes(pm); - runTest(pm); - } - finally { - cleanupDatabase(pm, PrimitiveTypes.class); - pm.close(); - pm = null; - } - } - - /** */ - void runTest(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); if (debug) logger.debug("\nExecuting test LogicalComplement() ..."); Transaction tx = pm.currentTransaction(); @@ -105,4 +92,12 @@ tx.commit(); } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPrimitiveTypes(getPM()); + addTearDownClass(PrimitiveTypes.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/WhiteSpaceIsACharacterAndIgnored.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/WhiteSpaceIsACharacterAndIgnored.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/WhiteSpaceIsACharacterAndIgnored.java (Arbeitskopie) @@ -16,12 +16,14 @@ package org.apache.jdo.tck.query.jdoql; +import java.util.ArrayList; import java.util.Collection; 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.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -56,10 +58,9 @@ Collection expected = null; /** */ - public void test() { - pm = getPM(); + public void testPositive() { + PersistenceManager pm = getPM(); - initDatabase(pm, PCPoint.class); initExpectedResult(pm, "x == 0"); // Escape Sequence @@ -94,6 +95,10 @@ query.setCandidates(pm.getExtent(PCPoint.class, false)); query.setFilter(filter); expected = (Collection) query.execute(); + // Create a new collection for the expected result. + // This ensures that the expected result may be iterated + // outside of the scope of the current transaction. + expected = new ArrayList(expected); tx.commit(); tx = null; @@ -131,4 +136,12 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/QueryWithNoFilter.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/QueryWithNoFilter.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/QueryWithNoFilter.java (Arbeitskopie) @@ -24,6 +24,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -56,18 +57,8 @@ } /** */ - public void test() { - pm = getPM(); - - initDatabase(pm, PCPoint.class); - runTestQueryWithNoFilter(pm); - - pm.close(); - pm = null; - } - - /** */ - void runTestQueryWithNoFilter(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); if(debug) logger.debug("\nExecuting test QueryWithNoFilter() ..."); Transaction tx = pm.currentTransaction(); @@ -103,4 +94,12 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/ExecutingMultipleQueriesSimultaneouslyIsThreadSafe.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/ExecutingMultipleQueriesSimultaneouslyIsThreadSafe.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/ExecutingMultipleQueriesSimultaneouslyIsThreadSafe.java (Arbeitskopie) @@ -25,6 +25,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.util.BatchTestRunner; import org.apache.jdo.tck.util.ThreadExceptionHandler; @@ -62,19 +63,8 @@ } /** */ - public void test() { - pm = getPM(); - - if (debug) logger.debug("\ninitDatabase"); - initDatabase(pm, PCPoint.class); - executeMultipleQueries(pm); - - pm.close(); - pm = null; - } - - /** */ - void executeMultipleQueries(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); Transaction tx = pm.currentTransaction(); try { tx.begin(); @@ -186,4 +176,12 @@ ExecutingMultipleQueriesSimultaneouslyIsThreadSafe.this.executeQueries(pm); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/NullCollectionsAndIsEmpty.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/NullCollectionsAndIsEmpty.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/NullCollectionsAndIsEmpty.java (Arbeitskopie) @@ -16,15 +16,10 @@ package org.apache.jdo.tck.query.jdoql; -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.Employee; -import org.apache.jdo.tck.pc.company.CompanyModelReader; +import org.apache.jdo.tck.query.QueryElementHolder; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -46,6 +41,36 @@ private static final String ASSERTION_FAILED = "Assertion A14.6.2-34 (NullCollectionsAndIsEmpty) failed: "; + /** + * The array of valid queries which may be executed as + * single string queries and as API queries. + */ + private static final QueryElementHolder[] VALID_QUERIES = { + // isEmpty + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Employee.class, + /*EXCLUDE*/ null, + /*WHERE*/ "personid == 1 && projects.isEmpty()", + /*VARIABLES*/ null, + /*PARAMETERS*/ null, + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null), + }; + + /** + * The expected results of valid queries. + */ + private Object[] expectedResult = { + // isEmpty + getTransientCompanyModelInstancesAsList(new String[]{"emp1"}) + }; + /** * The main is called when the class * is directly executed from the command line. @@ -56,43 +81,24 @@ } /** */ - public void test() { - pm = getPM(); - - try { - // read test data - CompanyModelReader reader = loadCompanyModel(pm, COMPANY_TESTDATA); - runTest(pm, reader); + public void testPositive() { + for (int i = 0; i < VALID_QUERIES.length; i++) { + executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[i], + expectedResult[i]); + executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[i], + expectedResult[i]); } - 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(); - Employee emp1 = reader.getFullTimeEmployee("emp1"); + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistCompanyModel(getPM()); + getPM().currentTransaction().begin(); + Employee emp1 = (Employee) getPersistentCompanyModelInstance("emp1"); emp1.setProjects(null); - tx.commit(); - - tx = pm.currentTransaction(); - tx.begin(); - - // isEmpty - q = pm.newQuery(Employee.class, "personid == 1 && projects.isEmpty()"); - result = q.execute(); - expected = new HashSet(); - expected.add(emp1); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - tx.commit(); + getPM().currentTransaction().commit(); + addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/RangeAsString.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/RangeAsString.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/RangeAsString.java (Arbeitskopie) @@ -106,13 +106,13 @@ * The expected results of valid queries. */ private Object[] expectedResult = { - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4", "emp5"}), - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4"}), - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp2", "emp3", "emp4", "emp5"}), - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp2", "emp3", "emp4"}) }; @@ -139,7 +139,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/OrderingSpecification.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/OrderingSpecification.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/OrderingSpecification.java (Arbeitskopie) @@ -25,6 +25,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.fieldtypes.AllTypes; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; @@ -66,16 +67,12 @@ } /** */ - public void test() { - pm = getPM(); + public void testPositive() { + PersistenceManager pm = getPM(); - initDatabase(pm, PCPoint.class); runTestOrderingSpecification01(pm); runTestOrderingSpecification02(pm); checkOrderingTypes(pm); - - pm.close(); - pm = null; } /** */ @@ -189,4 +186,12 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/QueryResultPassedToAnotherQuery.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/QueryResultPassedToAnotherQuery.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/QueryResultPassedToAnotherQuery.java (Arbeitskopie) @@ -25,6 +25,7 @@ import javax.jdo.Query; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PCPoint; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -58,10 +59,9 @@ Collection resultCln; /** */ - public void test() { - pm = getPM(); + public void testPositive() { + PersistenceManager pm = getPM(); - initDatabase(pm, PCPoint.class); setResultCollection(pm); runTestQueryResultPassedToAnotherQuery01(pm); runTestQueryResultPassedToAnotherQuery02(pm); @@ -81,6 +81,10 @@ query.setClass(PCPoint.class); query.setCandidates(pm.getExtent(PCPoint.class, false)); resultCln = (Collection)query.execute(); + // Create a new collection for the result collection. + // This ensures that the result collection may be iterated + // outside of the scope of the current transaction. + resultCln = new ArrayList(resultCln); tx.commit(); tx = null; @@ -187,4 +191,12 @@ tx.rollback(); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPCPoints(getPM()); + addTearDownClass(PCPoint.class); + } } Index: test/java/org/apache/jdo/tck/query/jdoql/NegativeRange.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/NegativeRange.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/NegativeRange.java (Arbeitskopie) @@ -151,7 +151,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/NavigationThroughReferencesUsesDotOperator.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/NavigationThroughReferencesUsesDotOperator.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/NavigationThroughReferencesUsesDotOperator.java (Arbeitskopie) @@ -16,16 +16,11 @@ package org.apache.jdo.tck.query.jdoql; -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.Employee; import org.apache.jdo.tck.pc.company.MedicalInsurance; +import org.apache.jdo.tck.query.QueryElementHolder; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -47,6 +42,54 @@ private static final String ASSERTION_FAILED = "Assertion A14.6.2-13 (NavigationThroughReferencesUsesDotOperator) failed: "; + /** + * The array of valid queries which may be executed as + * single string queries and as API queries. + */ + private static final QueryElementHolder[] VALID_QUERIES = { + // navigation through one relationship + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Employee.class, + /*EXCLUDE*/ null, + /*WHERE*/ "medicalInsurance.carrier == \"Carrier1\"", + /*VARIABLES*/ null, + /*PARAMETERS*/ null, + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null), + // navigation through multiple relationships + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ MedicalInsurance.class, + /*EXCLUDE*/ null, + /*WHERE*/ "this.employee.department.name == \"Development\"", + /*VARIABLES*/ null, + /*PARAMETERS*/ null, + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null) + }; + + /** + * The expected results of valid queries. + */ + private Object[] expectedResult = { + // navigation through one relationship + getTransientCompanyModelInstancesAsList(new String[]{"emp1"}), + // navigation through multiple relationships + getTransientCompanyModelInstancesAsList(new String[]{ + "medicalIns1", "medicalIns2", "medicalIns3"}) + }; + /** * The main is called when the class * is directly executed from the command line. @@ -57,48 +100,20 @@ } /** */ - public void test() { - pm = getPM(); - - try { - // read test data - CompanyModelReader reader = loadCompanyModel(pm, COMPANY_TESTDATA); - runTest(pm, reader); + public void testPositive() { + for (int i = 0; i < VALID_QUERIES.length; i++) { + executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[i], + expectedResult[i]); + executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[i], + expectedResult[i]); } - 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(); - - // navigation through one relationship - q = pm.newQuery(Employee.class); - q.setFilter("medicalInsurance.carrier == \"Carrier1\""); - result = q.execute(); - expected = new HashSet(); - expected.add(reader.getFullTimeEmployee("emp1")); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - // navigation through multiple relationships - q = pm.newQuery(MedicalInsurance.class); - q.setFilter("this.employee.department.name == \"Development\""); - result = q.execute(); - expected = new HashSet(); - expected.add(reader.getMedicalInsurance("medicalIns1")); - expected.add(reader.getMedicalInsurance("medicalIns2")); - expected.add(reader.getMedicalInsurance("medicalIns3")); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - tx.commit(); + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistCompanyModel(getPM()); + addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/IdentifiersEqualFieldNames.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/IdentifiersEqualFieldNames.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/IdentifiersEqualFieldNames.java (Arbeitskopie) @@ -80,8 +80,8 @@ * The expected results of valid queries. */ private Object[] expectedResult = { - getCompanyModelInstancesAsList(new String[]{"emp1"}), - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{"emp1"}), + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4", "emp5"}) }; @@ -108,7 +108,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/Cast.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/Cast.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/Cast.java (Arbeitskopie) @@ -16,16 +16,11 @@ package org.apache.jdo.tck.query.jdoql; -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; @@ -47,6 +42,49 @@ private static final String ASSERTION_FAILED = "Assertion A14.6.2-38 (Cast) 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*/ "((FullTimeEmployee)this).salary > 15000.0", + /*VARIABLES*/ null, + /*PARAMETERS*/ null, + /*IMPORTS*/ "import org.apache.jdo.tck.pc.company.FullTimeEmployee", + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null), + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Department.class, + /*EXCLUDE*/ null, + /*WHERE*/ "employees.contains(e) && ((FullTimeEmployee)e).salary > 15000.0", + /*VARIABLES*/ "Employee e", + /*PARAMETERS*/ null, + /*IMPORTS*/ "import org.apache.jdo.tck.pc.company.FullTimeEmployee", + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null) + }; + + /** + * The expected results of valid queries. + */ + private Object[] expectedResult = { + getTransientCompanyModelInstancesAsList(new String[]{"emp1", "emp5"}), + getTransientCompanyModelInstancesAsList(new String[]{"dept1", "dept2"}) + }; + /** * The main is called when the class * is directly executed from the command line. @@ -57,49 +95,20 @@ } /** */ - public void test() { - pm = getPM(); - - try { - // read test data - CompanyModelReader reader = loadCompanyModel(pm, COMPANY_TESTDATA); - runTest(pm, reader); + public void testPositive() { + for (int i = 0; i < VALID_QUERIES.length; i++) { + executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[i], + expectedResult[i]); + executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[i], + expectedResult[i]); } - 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(); - - q = pm.newQuery(Employee.class); - q.declareImports("import org.apache.jdo.tck.pc.company.FullTimeEmployee"); - q.setFilter("((FullTimeEmployee)this).salary > 15000.0"); - result = q.execute(); - expected = new HashSet(); - expected.add(reader.getFullTimeEmployee("emp1")); - expected.add(reader.getFullTimeEmployee("emp5")); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - q = pm.newQuery(Department.class); - q.declareVariables("Employee e"); - q.declareImports("import org.apache.jdo.tck.pc.company.FullTimeEmployee"); - q.setFilter("employees.contains(e) && ((FullTimeEmployee)e).salary > 15000.0"); - result = q.execute(); - expected = new HashSet(); - expected.add(reader.getDepartment("dept1")); - expected.add(reader.getDepartment("dept2")); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - tx.commit(); + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistCompanyModel(getPM()); + addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/DenoteUniquenessInFilter.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/DenoteUniquenessInFilter.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/DenoteUniquenessInFilter.java (Arbeitskopie) @@ -16,15 +16,10 @@ package org.apache.jdo.tck.query.jdoql; -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.query.QueryElementHolder; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -54,6 +49,78 @@ private static final String ASSERTION_FAILED = "Assertion A14.6.2-2 (DenoteUniquenessInFilter) failed: "; + /** + * The array of valid queries which may be executed as + * single string queries and as API queries. + */ + private static final QueryElementHolder[] VALID_QUERIES = { + // Uniqueness not specified => employee 1 qualifies => return dept1 + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Department.class, + /*EXCLUDE*/ null, + /*WHERE*/ "employees.contains(e1) && " + + "(e1.personid == 1 && (employees.contains(e2) && " + + "(e2.medicalInsurance != null)))", + /*VARIABLES*/ "Employee e1; Employee e2", + /*PARAMETERS*/ null, + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null), + // Uniqueness specified => there is only a single employee qualifying => + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Department.class, + /*EXCLUDE*/ null, + /*WHERE*/ "employees.contains(e1) && " + + "(e1.personid == 1 && (employees.contains(e2) && " + + "(e2.medicalInsurance != null && e1 != e2)))", + /*VARIABLES*/ "Employee e1; Employee e2", + /*PARAMETERS*/ null, + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null), + // Changed second contains to look for null medicalInsurance => + // employee 1 and 2 match the two conditions + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Department.class, + /*EXCLUDE*/ null, + /*WHERE*/ "employees.contains(e1) && " + + "(e1.personid == 1 && (employees.contains(e2) && " + + "(e2.medicalInsurance == null && e1 != e2)))", + /*VARIABLES*/ "Employee e1; Employee e2", + /*PARAMETERS*/ null, + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null) + }; + + /** + * The expected results of valid queries. + */ + private Object[] expectedResult = { + // Uniqueness not specified => employee 1 qualifies => return dept1 + getTransientCompanyModelInstancesAsList(new String[]{"dept1"}), + // Uniqueness specified => there is only a single employee qualifying => + getTransientCompanyModelInstancesAsList(new String[]{"dept1"}), + // Changed second contains to look for null medicalInsurance => + // employee 1 and 2 match the two conditions + getTransientCompanyModelInstancesAsList(new String[]{}) + }; + /** * The main is called when the class * is directly executed from the command line. @@ -64,70 +131,20 @@ } /** */ - public void test() { - pm = getPM(); - - try { - // read test data - CompanyModelReader reader = - loadCompanyModel(pm, COMPANY_TESTDATA); - runTest(pm, reader); + public void testPositive() { + for (int i = 0; i < VALID_QUERIES.length; i++) { + executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[i], + expectedResult[i]); + executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[i], + expectedResult[i]); } - finally { - cleanupCompanyModel(pm); - pm.close(); - pm = null; - } } - /** */ - void runTest(PersistenceManager pm, CompanyModelReader reader) { - Query q; - Object result; - Collection expected; - String filter; - - Transaction tx = pm.currentTransaction(); - tx.begin(); - - // Scenario: only employee with personid 1 has a medicalInsurance - - // Uniqueness not specified => employee 1 qualifies => return dept1 - filter = - "employees.contains(e1) && (e1.personid == 1 && " + - "(employees.contains(e2) && (e2.medicalInsurance != null)))"; - q = pm.newQuery(Department.class, filter); - q.declareVariables("Employee e1; Employee e2"); - result = q.execute(); - expected = new HashSet(); - expected.add(reader.getDepartment("dept1")); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - // Uniqueness specified => there is only a single employee qualifying => - // e1 != e2 does not apply => result is empty - filter = - "employees.contains(e1) && (e1.personid == 1 && " + - "(employees.contains(e2) && (e2.medicalInsurance != null &&" + - "e1 != e2)))"; - q = pm.newQuery(Department.class, filter); - q.declareVariables("Employee e1; Employee e2"); - result = q.execute(); - expected = new HashSet(); - expected.add(reader.getDepartment("dept1")); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - // Changed second contains to look for null medicalInsurance => - // employee 1 and 2 match the two conditions => return dept1 - filter = - "employees.contains(e1) && (e1.personid == 1 && " + - "(employees.contains(e2) && (e2.medicalInsurance == null &&" + - "e1 != e2)))"; - q = pm.newQuery(Department.class, filter); - q.declareVariables("Employee e1; Employee e2"); - result = q.execute(); - expected = new HashSet(); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - tx.commit(); + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistCompanyModel(getPM()); + addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/jdoql/NullCollectionsAndContainsMethod.java =================================================================== --- test/java/org/apache/jdo/tck/query/jdoql/NullCollectionsAndContainsMethod.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/jdoql/NullCollectionsAndContainsMethod.java (Arbeitskopie) @@ -16,16 +16,11 @@ package org.apache.jdo.tck.query.jdoql; -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.Employee; import org.apache.jdo.tck.pc.company.Project; -import org.apache.jdo.tck.pc.company.CompanyModelReader; +import org.apache.jdo.tck.query.QueryElementHolder; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -48,6 +43,62 @@ private static final String ASSERTION_FAILED = "Assertion A14.6.2-35 (NullCollectionsAndContainsMethod) failed: "; + /** + * The array of valid queries which may be executed as + * single string queries and as API queries. + */ + private static final QueryElementHolder[] VALID_QUERIES = { + // contains + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Employee.class, + /*EXCLUDE*/ null, + /*WHERE*/ "personid == 1 && projects.contains(p)", + /*VARIABLES*/ null, + /*PARAMETERS*/ "org.apache.jdo.tck.pc.company.Project p", + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null), + // contains + new QueryElementHolder( + /*UNIQUE*/ null, + /*RESULT*/ null, + /*INTO*/ null, + /*FROM*/ Employee.class, + /*EXCLUDE*/ null, + /*WHERE*/ "!team.contains(null)", + /*VARIABLES*/ null, + /*PARAMETERS*/ null, + /*IMPORTS*/ null, + /*GROUP BY*/ null, + /*ORDER BY*/ null, + /*FROM*/ null, + /*TO*/ null), + }; + + /** + * The expected results of valid queries. + */ + private Object[] expectedResult = { + // contains + getTransientCompanyModelInstancesAsList(new String[]{}), + // contains + getTransientCompanyModelInstancesAsList(new String[]{ + "emp1", "emp2", "emp3", "emp4", "emp5"}) + }; + + /** Parameters of valid queries. */ + private Object[][] parameters = { + // contains + {new Project(999l, "TestProject", null)}, + // contains + {null} + }; + /** * The main is called when the class * is directly executed from the command line. @@ -58,54 +109,24 @@ } /** */ - public void test() { - pm = getPM(); - - try { - // read test data - CompanyModelReader reader = loadCompanyModel(pm, COMPANY_TESTDATA); - runTest(pm, reader); + public void testPositive() { + for (int i = 0; i < VALID_QUERIES.length; i++) { + executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[i], + parameters[i], expectedResult[i]); + executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[i], + parameters[i], expectedResult[i]); } - 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(); - Employee emp1 = reader.getFullTimeEmployee("emp1"); + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistCompanyModel(getPM()); + getPM().currentTransaction().begin(); + Employee emp1 = (Employee) getPersistentCompanyModelInstance("emp1"); emp1.setProjects(null); - tx.commit(); - - tx = pm.currentTransaction(); - tx.begin(); - - // contains - q = pm.newQuery(Employee.class, "personid == 1 && projects.contains(p)"); - q.declareParameters("org.apache.jdo.tck.pc.company.Project p"); - result = q.execute(new Project(999l, "TestProject", null)); - expected = new HashSet(); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - // contains - q = pm.newQuery(Employee.class, "!team.contains(null)"); - result = q.execute(); - expected = new HashSet(); - expected.add(reader.getFullTimeEmployee("emp1")); - expected.add(reader.getFullTimeEmployee("emp2")); - expected.add(reader.getPartTimeEmployee("emp3")); - expected.add(reader.getPartTimeEmployee("emp4")); - expected.add(reader.getFullTimeEmployee("emp5")); - checkQueryResultWithoutOrder(ASSERTION_FAILED, result, expected); - - tx.commit(); + getPM().currentTransaction().commit(); + addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/result/ImmutableQueryResult.java =================================================================== --- test/java/org/apache/jdo/tck/query/result/ImmutableQueryResult.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/result/ImmutableQueryResult.java (Arbeitskopie) @@ -17,11 +17,11 @@ package org.apache.jdo.tck.query.result; import java.util.Collection; -import java.util.HashSet; import javax.jdo.PersistenceManager; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PrimitiveTypes; import org.apache.jdo.tck.query.QueryTest; import org.apache.jdo.tck.util.BatchTestRunner; @@ -54,22 +54,8 @@ } /** */ - public void test() { - pm = getPM(); - - try { - loadPrimitiveTypes(pm); - runTest(pm); - } - finally { - cleanupDatabase(pm, PrimitiveTypes.class); - pm.close(); - pm = null; - } - } - - /** */ - void runTest(PersistenceManager pm) { + public void testPositive() { + PersistenceManager pm = getPM(); Transaction tx = pm.currentTransaction(); tx.begin(); @@ -182,4 +168,12 @@ "from a query result throws expected exception " + ex); } } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + loadAndPersistPrimitiveTypes(getPM()); + addTearDownClass(PrimitiveTypes.class); + } } Index: test/java/org/apache/jdo/tck/query/result/Unique.java =================================================================== --- test/java/org/apache/jdo/tck/query/result/Unique.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/result/Unique.java (Arbeitskopie) @@ -100,9 +100,9 @@ * The expected results of valid queries. */ private Object[] expectedResult = { - getCompanyModelInstance("emp1"), + getTransientCompanyModelInstance("emp1"), null, - getCompanyModelInstance("emp1") + getTransientCompanyModelInstance("emp1") }; /** @@ -141,7 +141,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/result/DistinctQuery.java =================================================================== --- test/java/org/apache/jdo/tck/query/result/DistinctQuery.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/result/DistinctQuery.java (Arbeitskopie) @@ -110,9 +110,9 @@ * The expected results of valid queries. */ private Object[] expectedResult = { - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "dept1", "dept1", "dept1", "dept2", "dept2"}), - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "dept1", "dept2"}), Arrays.asList(new Object[] { new Object[]{new Long(1),"Development"}, @@ -148,7 +148,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/result/NPEInResultExpr.java =================================================================== --- test/java/org/apache/jdo/tck/query/result/NPEInResultExpr.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/result/NPEInResultExpr.java (Arbeitskopie) @@ -114,7 +114,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/result/ResultClassRequirements.java =================================================================== --- test/java/org/apache/jdo/tck/query/result/ResultClassRequirements.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/result/ResultClassRequirements.java (Arbeitskopie) @@ -471,7 +471,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/result/DefaultUnique.java =================================================================== --- test/java/org/apache/jdo/tck/query/result/DefaultUnique.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/result/DefaultUnique.java (Arbeitskopie) @@ -95,7 +95,7 @@ * The expected results of valid queries. */ private Object[] expectedResult = { - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4", "emp5"}), new Long(5), Arrays.asList(new Object[]{new Long(3), new Long(2)}) @@ -141,7 +141,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/result/VariableInResult.java =================================================================== --- test/java/org/apache/jdo/tck/query/result/VariableInResult.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/result/VariableInResult.java (Arbeitskopie) @@ -85,7 +85,7 @@ */ private Object[] expectedResult = { // this - getCompanyModelInstancesAsList(new String[]{"proj1"}), + getTransientCompanyModelInstancesAsList(new String[]{"proj1"}), // Note: "orange" is not a bean name! Arrays.asList(new Object[]{new Object[]{new Long(1), "orange"}}) }; @@ -121,7 +121,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/result/Having.java =================================================================== --- test/java/org/apache/jdo/tck/query/result/Having.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/result/Having.java (Arbeitskopie) @@ -89,9 +89,9 @@ */ private Object[] expectedResult = { Arrays.asList(new Object[] { - getCompanyModelInstance("dept1"), + getTransientCompanyModelInstance("dept1"), new Double(45000.0), - getCompanyModelInstance("dept2"), + getTransientCompanyModelInstance("dept2"), new Double(58000.0)}) }; @@ -127,7 +127,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/result/ResultExpressions.java =================================================================== --- test/java/org/apache/jdo/tck/query/result/ResultExpressions.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/result/ResultExpressions.java (Arbeitskopie) @@ -326,7 +326,7 @@ */ private Object[] expectedResult = { // this - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4", "emp5"}), // field Arrays.asList(new Object[]{new Long(1), new Long(2), @@ -334,7 +334,7 @@ // variable.field Arrays.asList(new Object[]{new Long(1)}), // variable - getCompanyModelInstancesAsList(new String[]{"proj1"}), + getTransientCompanyModelInstancesAsList(new String[]{"proj1"}), // COUNT(this) new Long(5), // COUNT(variable) @@ -360,9 +360,9 @@ // navigational expression field Arrays.asList(new Object[]{new Long(1)}), // parameter - getCompanyModelInstancesAsList(new String[]{"proj1"}), + getTransientCompanyModelInstancesAsList(new String[]{"proj1"}), // cast - getCompanyModelInstancesAsList(new String[]{"emp2"}) + getTransientCompanyModelInstancesAsList(new String[]{"emp2"}) }; /** @@ -455,7 +455,7 @@ /** */ public void testNavigationalExpressionParameter() { int index = 13; - Object[] parameters = getCompanyModelInstances(new String[]{"proj1"}); + Object[] parameters = getPersistentCompanyModelInstances(new String[]{"proj1"}); executeQuery(index, parameters); } @@ -468,7 +468,7 @@ /** */ public void testParameter() { int index = 15; - Object[] parameters = getCompanyModelInstances(new String[]{"proj1"}); + Object[] parameters = getPersistentCompanyModelInstances(new String[]{"proj1"}); executeQuery(index, parameters); } @@ -490,7 +490,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/result/DefaultResult.java =================================================================== --- test/java/org/apache/jdo/tck/query/result/DefaultResult.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/result/DefaultResult.java (Arbeitskopie) @@ -64,7 +64,7 @@ * The expected results of valid queries. */ private Object[] expectedResult = { - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4", "emp5"}) }; @@ -91,7 +91,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/result/ShapeOfResult.java =================================================================== --- test/java/org/apache/jdo/tck/query/result/ShapeOfResult.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/result/ShapeOfResult.java (Arbeitskopie) @@ -214,15 +214,15 @@ */ private Object[] expectedResult = { // result: null - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4", "emp5"}), // result: this AS C - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4", "emp5"}), // result: null, unique: true - getCompanyModelInstance("emp1"), + getTransientCompanyModelInstance("emp1"), // result: this AS C, unique: true - getCompanyModelInstance("emp1"), + getTransientCompanyModelInstance("emp1"), // result: expression of type T Arrays.asList(new Object[]{"emp1First", "emp2First", "emp3First", "emp4First", "emp5First"}), @@ -328,7 +328,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/result/AggregateResult.java =================================================================== --- test/java/org/apache/jdo/tck/query/result/AggregateResult.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/result/AggregateResult.java (Arbeitskopie) @@ -634,7 +634,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/result/DistinctCandidateInstances.java =================================================================== --- test/java/org/apache/jdo/tck/query/result/DistinctCandidateInstances.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/result/DistinctCandidateInstances.java (Arbeitskopie) @@ -88,11 +88,11 @@ * The expected results of valid queries. */ private Object[] expectedResult = { - addAll(getCompanyModelInstancesAsList(new String[]{ + addAll(getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4", "emp5"}), - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4", "emp5"})), - getCompanyModelInstancesAsList(new String[]{ + getTransientCompanyModelInstancesAsList(new String[]{ "emp1", "emp2", "emp3", "emp4", "emp5"}) }; @@ -138,7 +138,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } Index: test/java/org/apache/jdo/tck/query/result/Grouping.java =================================================================== --- test/java/org/apache/jdo/tck/query/result/Grouping.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/result/Grouping.java (Arbeitskopie) @@ -93,8 +93,8 @@ */ private Object[] expectedResult = { Arrays.asList(new Object[] { - new Object[] {getCompanyModelInstance("dept1"), new Double(45000.0)}, - new Object[] {getCompanyModelInstance("dept2"), new Double(58000.0)}}) + new Object[] {getTransientCompanyModelInstance("dept1"), new Double(45000.0)}, + new Object[] {getTransientCompanyModelInstance("dept2"), new Double(58000.0)}}) }; /** @@ -129,7 +129,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } } Index: test/java/org/apache/jdo/tck/query/result/NullResults.java =================================================================== --- test/java/org/apache/jdo/tck/query/result/NullResults.java (Revision 349921) +++ test/java/org/apache/jdo/tck/query/result/NullResults.java (Arbeitskopie) @@ -97,7 +97,7 @@ private Object[] expectedResult = { null, Arrays.asList(new Object[]{null}), - getCompanyModelInstancesAsList(new String[]{"emp2", null}) + getTransientCompanyModelInstancesAsList(new String[]{"emp2", null}) }; /** @@ -140,7 +140,7 @@ * @see JDO_Test#localSetUp() */ protected void localSetUp() { - loadCompanyModel(getPM(), COMPANY_TESTDATA); + loadAndPersistCompanyModel(getPM()); addTearDownClass(CompanyModelReader.getTearDownClasses()); } }