You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2010/06/14 15:40:51 UTC

svn commit: r954463 [1/2] - in /cayenne/main/trunk: build-tools/cayenne-test-utilities/src/main/java/org/apache/cayenne/test/jdbc/ framework/cayenne-di-unpublished/src/main/java/org/apache/cayenne/di/ framework/cayenne-jdk1.5-unpublished/src/main/java/...

Author: aadamchik
Date: Mon Jun 14 13:40:50 2010
New Revision: 954463

URL: http://svn.apache.org/viewvc?rev=954463&view=rev
Log:
DI-enabled unit tests

* implementing DataNode injection
* implementing closure-based query blocker
* switching test stacks to the new injectable testing:
	testmap (partial switch, as it is huge)

Added:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtras1Test.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/UnitTestClosure.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/CayenneResourcesAccessStackAdapterProvider.java
      - copied, changed from r954459, cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/SelectQueryBase.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/DataChannelQueryBlocker.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseDataChannelQueryBlocker.java
      - copied, changed from r954459, cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/SelectQueryBase.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseDataNodeProvider.java
      - copied, changed from r954459, cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/SelectQueryBase.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/cayenne-testmap.xml
Removed:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/SelectQueryBase.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/jira/CAY_788Test.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/dml/access.DataContextEJBQLArrayResultTest.xml
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/dml/access.DataContextEJBQLConditionsTest.xml
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/dml/access.DataContextEJBQLDeleteTest.xml
Modified:
    cayenne/main/trunk/build-tools/cayenne-test-utilities/src/main/java/org/apache/cayenne/test/jdbc/TableHelper.java
    cayenne/main/trunk/framework/cayenne-di-unpublished/src/main/java/org/apache/cayenne/di/Injector.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLArrayResultTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLFetchJoinTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextNoPkTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextOuterJoinsTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtrasTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/IdentityColumnsTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/QuotedIdentifiersTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/SingleTableInheritance1Test.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/VerticalInheritanceTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/SelectQueryTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseDataDomainProvider.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/cayenne-default.xml

Modified: cayenne/main/trunk/build-tools/cayenne-test-utilities/src/main/java/org/apache/cayenne/test/jdbc/TableHelper.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/build-tools/cayenne-test-utilities/src/main/java/org/apache/cayenne/test/jdbc/TableHelper.java?rev=954463&r1=954462&r2=954463&view=diff
==============================================================================
--- cayenne/main/trunk/build-tools/cayenne-test-utilities/src/main/java/org/apache/cayenne/test/jdbc/TableHelper.java (original)
+++ cayenne/main/trunk/build-tools/cayenne-test-utilities/src/main/java/org/apache/cayenne/test/jdbc/TableHelper.java Mon Jun 14 13:40:50 2010
@@ -46,6 +46,10 @@ public class TableHelper {
         dbHelper.deleteAll(tableName);
         return this;
     }
+    
+    public String getTableName() {
+        return tableName;
+    }
 
     /**
      * Sets columns that will be implicitly used in subsequent inserts and selects.

Modified: cayenne/main/trunk/framework/cayenne-di-unpublished/src/main/java/org/apache/cayenne/di/Injector.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-di-unpublished/src/main/java/org/apache/cayenne/di/Injector.java?rev=954463&r1=954462&r2=954463&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-di-unpublished/src/main/java/org/apache/cayenne/di/Injector.java (original)
+++ cayenne/main/trunk/framework/cayenne-di-unpublished/src/main/java/org/apache/cayenne/di/Injector.java Mon Jun 14 13:40:50 2010
@@ -30,14 +30,15 @@ public interface Injector {
 
     /**
      * Returns a service instance bound in the container for a specific type. Throws
-     * {@link DIException} if the type is not bound, or an instance can not be created.
+     *{@link ConfigurationException} if the type is not bound, or an instance can not be
+     * created.
      */
     <T> T getInstance(Class<T> type) throws ConfigurationException;
 
     /**
      * Returns a service instance bound in the container for a specific binding key.
-     * Throws {@link DIException} if the key is not bound, or an instance can not be
-     * created.
+     * Throws {@link ConfigurationException} if the key is not bound, or an instance can
+     * not be created.
      */
     <T> T getInstance(Key<T> key) throws ConfigurationException;
 

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java?rev=954463&r1=954462&r2=954463&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java Mon Jun 14 13:40:50 2010
@@ -79,7 +79,7 @@ public class DataDomainProvider implemen
     public DataDomain get() throws ConfigurationException {
 
         try {
-            return createDataDomain();
+            return createAndInitDataDomain();
         }
         catch (ConfigurationException e) {
             throw e;
@@ -89,8 +89,12 @@ public class DataDomainProvider implemen
                     .getMessage());
         }
     }
+    
+    protected DataDomain createDataDomain(String name) {
+        return new DataDomain(name);
+    }
 
-    protected DataDomain createDataDomain() throws Exception {
+    protected DataDomain createAndInitDataDomain() throws Exception {
         String configurationLocation = configurationProperties
                 .get(ServerModule.CONFIGURATION_LOCATION);
 
@@ -144,7 +148,7 @@ public class DataDomainProvider implemen
         }
 
         DataChannelDescriptor descriptor = tree.getRootNode();
-        DataDomain dataDomain = new DataDomain(descriptor.getName());
+        DataDomain dataDomain = createDataDomain(descriptor.getName());
         injector.injectMembers(dataDomain);
 
         dataDomain.initWithProperties(descriptor.getProperties());

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLArrayResultTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLArrayResultTest.java?rev=954463&r1=954462&r2=954463&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLArrayResultTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLArrayResultTest.java Mon Jun 14 13:40:50 2010
@@ -21,26 +21,56 @@ package org.apache.cayenne.access;
 import java.math.BigDecimal;
 import java.util.List;
 
+import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.EJBQLQuery;
+import org.apache.cayenne.test.jdbc.DBHelper;
+import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
-import org.apache.cayenne.unit.CayenneCase;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
 
-public class DataContextEJBQLArrayResultTest extends CayenneCase {
+@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+public class DataContextEJBQLArrayResultTest extends ServerCase {
+
+    @Inject
+    protected ObjectContext context;
+
+    @Inject
+    protected DBHelper dbHelper;
 
     @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        deleteTestData();
+    protected void setUpAfterInjection() throws Exception {
+        dbHelper.deleteAll("PAINTING_INFO");
+        dbHelper.deleteAll("PAINTING");
+        dbHelper.deleteAll("ARTIST_EXHIBIT");
+        dbHelper.deleteAll("ARTIST");
+
+        TableHelper tArtist = new TableHelper(dbHelper, "ARTIST");
+        tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
+        tArtist.insert(33001, "AA1");
+        tArtist.insert(33002, "AA2");
+        tArtist.insert(33003, "BB1");
+        tArtist.insert(33004, "BB2");
+
+        TableHelper tPainting = new TableHelper(dbHelper, "PAINTING");
+        tPainting.setColumns(
+                "PAINTING_ID",
+                "ARTIST_ID",
+                "PAINTING_TITLE",
+                "ESTIMATED_PRICE");
+        tPainting.insert(33001, 33001, "P1", 3000);
+        tPainting.insert(33002, 33002, "P2", 5000);
+        tPainting.insert(33003, null, "P3", 5000);
     }
 
     public void testSQLResultSetMappingScalar() throws Exception {
-        createTestData("prepare");
 
         String ejbql = "SELECT count(p) FROM Painting p JOIN p.toArtist a";
 
         EJBQLQuery query = new EJBQLQuery(ejbql);
 
-        List objects = createDataContext().performQuery(query);
+        List objects = context.performQuery(query);
         assertEquals(1, objects.size());
 
         Object o1 = objects.get(0);
@@ -48,13 +78,12 @@ public class DataContextEJBQLArrayResult
     }
 
     public void testSQLResultSetMappingScalars() throws Exception {
-        createTestData("prepare");
 
         String ejbql = "SELECT count(p), sum(p.estimatedPrice) FROM Painting p JOIN p.toArtist a";
 
         EJBQLQuery query = new EJBQLQuery(ejbql);
 
-        List objects = createDataContext().performQuery(query);
+        List objects = context.performQuery(query);
         assertEquals(1, objects.size());
 
         Object o1 = objects.get(0);
@@ -67,7 +96,6 @@ public class DataContextEJBQLArrayResult
     }
 
     public void testSQLResultSetMappingMixed() throws Exception {
-        createTestData("prepare");
 
         String ejbql = "SELECT count(p), a, sum(p.estimatedPrice) "
                 + "FROM Artist a LEFT JOIN a.paintingArray p "
@@ -75,7 +103,7 @@ public class DataContextEJBQLArrayResult
 
         EJBQLQuery query = new EJBQLQuery(ejbql);
 
-        List objects = createDataContext().performQuery(query);
+        List objects = context.performQuery(query);
         assertEquals(4, objects.size());
 
         Object o1 = objects.get(0);
@@ -87,4 +115,5 @@ public class DataContextEJBQLArrayResult
         assertTrue("Expected Artist, got: " + array1[1], array1[1] instanceof Artist);
         assertEquals(0, new BigDecimal(3000).compareTo((BigDecimal) array1[2]));
     }
+
 }

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsTest.java?rev=954463&r1=954462&r2=954463&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsTest.java Mon Jun 14 13:40:50 2010
@@ -28,23 +28,82 @@ import java.util.Set;
 import org.apache.cayenne.Cayenne;
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.Persistent;
+import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.EJBQLQuery;
 import org.apache.cayenne.query.SelectQuery;
+import org.apache.cayenne.test.jdbc.DBHelper;
+import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
-import org.apache.cayenne.unit.CayenneCase;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
 
-public class DataContextEJBQLConditionsTest extends CayenneCase {
+@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+public class DataContextEJBQLConditionsTest extends ServerCase {
+
+    @Inject
+    protected ObjectContext context;
+
+    @Inject
+    protected DBHelper dbHelper;
+
+    protected TableHelper tArtist;
+    protected TableHelper tPainting;
 
     @Override
-    protected void setUp() throws Exception {
-        deleteTestData();
+    protected void setUpAfterInjection() throws Exception {
+        dbHelper.deleteAll("PAINTING_INFO");
+        dbHelper.deleteAll("PAINTING");
+        dbHelper.deleteAll("ARTIST_EXHIBIT");
+        dbHelper.deleteAll("ARTIST");
+
+        tArtist = new TableHelper(dbHelper, "ARTIST");
+        tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
+
+        tPainting = new TableHelper(dbHelper, "PAINTING");
+        tPainting.setColumns(
+                "PAINTING_ID",
+                "ARTIST_ID",
+                "PAINTING_TITLE",
+                "ESTIMATED_PRICE");
     }
 
-    public void testDateParameter() throws Exception {
-        createTestData("prepareCollection");
+    protected void createCollectionDataSet() throws Exception {
+        tArtist.insert(33001, "B");
+        tArtist.insert(33002, "A");
+        tArtist.insert(33003, "D");
+
+        tPainting.insert(33009, 33001, "X", 5000);
+        tPainting.insert(33010, 33001, "Y", 5000);
+        tPainting.insert(33011, 33002, "Z", 5000);
+    }
 
-        ObjectContext context = createDataContext();
+    protected void createLikeDataSet() throws Exception {
+        tPainting.insert(33001, null, "ABAAC", 3000);
+        tPainting.insert(33002, null, "ADDDD", 4000);
+        tPainting.insert(33003, null, "BDDDD", 5000);
+        tPainting.insert(33004, null, "BBDDDD", 5000);
+        tPainting.insert(33005, null, "_DDDD", 5000);
+    }
+
+    protected void createGreaterThanDataSet() throws Exception {
+        createLikeDataSet();
+    }
+
+    protected void createInDataSet() throws Exception {
+        tPainting.insert(33006, null, "A", 5000);
+        tPainting.insert(33007, null, "B", 5000);
+        tPainting.insert(33008, null, "C", 5000);
+    }
+
+    protected void createInSubqueryDataSet() throws Exception {
+        tPainting.insert(33012, null, "C", 5000);
+        tPainting.insert(33013, null, "D", 5000);
+        tPainting.insert(33014, null, "C", 5000);
+    }
+
+    public void testDateParameter() throws Exception {
+        createCollectionDataSet();
 
         SelectQuery q = new SelectQuery(Artist.class);
         List<Artist> allArtists = context.performQuery(q);
@@ -64,7 +123,7 @@ public class DataContextEJBQLConditionsT
     }
 
     public void testArithmetics() throws Exception {
-        createTestData("prepareLike");
+        createLikeDataSet();
 
         // TODO: andrus 02/25/2008 - fails on HSQLDB / succeeds on MySQL. HSQLDB error is
         // "Unresolved parameter type : as both operands of aritmetic operator in
@@ -89,12 +148,12 @@ public class DataContextEJBQLConditionsT
     }
 
     public void testLike1() throws Exception {
-        createTestData("prepareLike");
+        createLikeDataSet();
 
         String ejbql = "SELECT p FROM Painting p WHERE p.paintingTitle LIKE 'A%C'";
 
         EJBQLQuery query = new EJBQLQuery(ejbql);
-        List<?> objects = createDataContext().performQuery(query);
+        List<?> objects = context.performQuery(query);
         assertEquals(1, objects.size());
 
         Set<Object> ids = new HashSet<Object>();
@@ -108,12 +167,12 @@ public class DataContextEJBQLConditionsT
     }
 
     public void testNotLike() throws Exception {
-        createTestData("prepareLike");
+        createLikeDataSet();
 
         String ejbql = "SELECT p FROM Painting p WHERE p.paintingTitle NOT LIKE 'A%C'";
 
         EJBQLQuery query = new EJBQLQuery(ejbql);
-        List<?> objects = createDataContext().performQuery(query);
+        List<?> objects = context.performQuery(query);
         assertEquals(4, objects.size());
 
         Set<Object> ids = new HashSet<Object>();
@@ -127,12 +186,12 @@ public class DataContextEJBQLConditionsT
     }
 
     public void testLike2() throws Exception {
-        createTestData("prepareLike");
+        createLikeDataSet();
 
         String ejbql = "SELECT p FROM Painting p WHERE p.paintingTitle LIKE '_DDDD'";
 
         EJBQLQuery query = new EJBQLQuery(ejbql);
-        List<?> objects = createDataContext().performQuery(query);
+        List<?> objects = context.performQuery(query);
         assertEquals(3, objects.size());
 
         Set<Object> ids = new HashSet<Object>();
@@ -148,12 +207,12 @@ public class DataContextEJBQLConditionsT
     }
 
     public void testLikeEscape() throws Exception {
-        createTestData("prepareLike");
+        createLikeDataSet();
 
         String ejbql = "SELECT p FROM Painting p WHERE p.paintingTitle LIKE 'X_DDDD' ESCAPE 'X'";
 
         EJBQLQuery query = new EJBQLQuery(ejbql);
-        List<?> objects = createDataContext().performQuery(query);
+        List<?> objects = context.performQuery(query);
         assertEquals(1, objects.size());
 
         Set<Object> ids = new HashSet<Object>();
@@ -167,12 +226,12 @@ public class DataContextEJBQLConditionsT
     }
 
     public void testIn() throws Exception {
-        createTestData("prepareIn");
+        createInDataSet();
 
         String ejbql = "SELECT p FROM Painting p WHERE p.paintingTitle IN ('A', 'B')";
 
         EJBQLQuery query = new EJBQLQuery(ejbql);
-        List<?> objects = createDataContext().performQuery(query);
+        List<?> objects = context.performQuery(query);
         assertEquals(2, objects.size());
 
         Set<Object> ids = new HashSet<Object>();
@@ -187,12 +246,12 @@ public class DataContextEJBQLConditionsT
     }
 
     public void testNotIn() throws Exception {
-        createTestData("prepareIn");
+        createInDataSet();
 
         String ejbql = "SELECT p FROM Painting p WHERE p.paintingTitle NOT IN ('A', 'B')";
 
         EJBQLQuery query = new EJBQLQuery(ejbql);
-        List<?> objects = createDataContext().performQuery(query);
+        List<?> objects = context.performQuery(query);
         assertEquals(1, objects.size());
 
         Set<Object> ids = new HashSet<Object>();
@@ -206,14 +265,14 @@ public class DataContextEJBQLConditionsT
     }
 
     public void testInSubquery() throws Exception {
-        createTestData("prepareInSubquery");
+        createInSubqueryDataSet();
 
         String ejbql = "SELECT p FROM Painting p WHERE p.paintingTitle IN ("
                 + "SELECT p1.paintingTitle FROM Painting p1 WHERE p1.paintingTitle = 'C'"
                 + ")";
 
         EJBQLQuery query = new EJBQLQuery(ejbql);
-        List<?> objects = createDataContext().performQuery(query);
+        List<?> objects = context.performQuery(query);
         assertEquals(2, objects.size());
 
         Set<Object> ids = new HashSet<Object>();
@@ -228,12 +287,12 @@ public class DataContextEJBQLConditionsT
     }
 
     public void testCollectionEmpty() throws Exception {
-        createTestData("prepareCollection");
+        createCollectionDataSet();
 
         String ejbql = "SELECT a FROM Artist a WHERE a.paintingArray IS EMPTY";
 
         EJBQLQuery query = new EJBQLQuery(ejbql);
-        List<?> objects = createDataContext().performQuery(query);
+        List<?> objects = context.performQuery(query);
         assertEquals(1, objects.size());
 
         Set<Object> ids = new HashSet<Object>();
@@ -247,12 +306,12 @@ public class DataContextEJBQLConditionsT
     }
 
     public void testCollectionNotEmpty() throws Exception {
-        createTestData("prepareCollection");
+        createCollectionDataSet();
 
         String ejbql = "SELECT a FROM Artist a WHERE a.paintingArray IS NOT EMPTY";
 
         EJBQLQuery query = new EJBQLQuery(ejbql);
-        List<?> objects = createDataContext().performQuery(query);
+        List<?> objects = context.performQuery(query);
         assertEquals(2, objects.size());
 
         Set<Object> ids = new HashSet<Object>();
@@ -267,12 +326,12 @@ public class DataContextEJBQLConditionsT
     }
 
     public void testCollectionNotEmptyExplicitDistinct() throws Exception {
-        createTestData("prepareCollection");
+        createCollectionDataSet();
 
         String ejbql = "SELECT DISTINCT a FROM Artist a WHERE a.paintingArray IS NOT EMPTY";
 
         EJBQLQuery query = new EJBQLQuery(ejbql);
-        List<?> objects = createDataContext().performQuery(query);
+        List<?> objects = context.performQuery(query);
         assertEquals(2, objects.size());
 
         Set<Object> ids = new HashSet<Object>();
@@ -287,17 +346,12 @@ public class DataContextEJBQLConditionsT
     }
 
     public void testCollectionMemberOfParameter() throws Exception {
-        createTestData("prepareCollection");
+        createCollectionDataSet();
 
         String ejbql = "SELECT a FROM Artist a WHERE :x MEMBER OF a.paintingArray";
 
-        ObjectContext context = createDataContext();
-
         EJBQLQuery query = new EJBQLQuery(ejbql);
-        query.setParameter("x", Cayenne.objectForPK(
-                context,
-                Painting.class,
-                33010));
+        query.setParameter("x", Cayenne.objectForPK(context, Painting.class, 33010));
         List<?> objects = context.performQuery(query);
         assertEquals(1, objects.size());
 
@@ -312,12 +366,10 @@ public class DataContextEJBQLConditionsT
     }
 
     public void testGreaterOrEquals() throws Exception {
-        createTestData("prepareGreaterThan");
+        createGreaterThanDataSet();
 
         String ejbql = "SELECT p FROM Painting p WHERE p.estimatedPrice >= :estimatedPrice";
 
-        ObjectContext context = createDataContext();
-
         EJBQLQuery query = new EJBQLQuery(ejbql);
         query.setParameter("estimatedPrice", new BigDecimal(4000));
         List<?> objects = context.performQuery(query);
@@ -325,12 +377,10 @@ public class DataContextEJBQLConditionsT
     }
 
     public void testLessOrEquals() throws Exception {
-        createTestData("prepareGreaterThan");
+        createGreaterThanDataSet();
 
         String ejbql = "SELECT p FROM Painting p WHERE p.estimatedPrice <= :estimatedPrice";
 
-        ObjectContext context = createDataContext();
-
         EJBQLQuery query = new EJBQLQuery(ejbql);
         query.setParameter("estimatedPrice", new BigDecimal(4000));
         List<?> objects = context.performQuery(query);
@@ -338,17 +388,12 @@ public class DataContextEJBQLConditionsT
     }
 
     public void testCollectionNotMemberOfParameter() throws Exception {
-        createTestData("prepareCollection");
+        createCollectionDataSet();
 
         String ejbql = "SELECT a FROM Artist a WHERE :x NOT MEMBER a.paintingArray";
 
-        ObjectContext context = createDataContext();
-
         EJBQLQuery query = new EJBQLQuery(ejbql);
-        query.setParameter("x", Cayenne.objectForPK(
-                context,
-                Painting.class,
-                33010));
+        query.setParameter("x", Cayenne.objectForPK(context, Painting.class, 33010));
         List<?> objects = context.performQuery(query);
         assertEquals(2, objects.size());
 
@@ -364,13 +409,13 @@ public class DataContextEJBQLConditionsT
     }
 
     public void testCollectionMemberOfThetaJoin() throws Exception {
-        createTestData("prepareCollection");
+        createCollectionDataSet();
 
         String ejbql = "SELECT p FROM Painting p, Artist a "
                 + "WHERE p MEMBER OF a.paintingArray AND a.artistName = 'B'";
 
         EJBQLQuery query = new EJBQLQuery(ejbql);
-        List<?> objects = createDataContext().performQuery(query);
+        List<?> objects = context.performQuery(query);
         assertEquals(2, objects.size());
 
         Set<Object> ids = new HashSet<Object>();
@@ -383,4 +428,5 @@ public class DataContextEJBQLConditionsT
         assertTrue(ids.contains(new Integer(33009)));
         assertTrue(ids.contains(new Integer(33010)));
     }
+
 }

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteTest.java?rev=954463&r1=954462&r2=954463&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteTest.java Mon Jun 14 13:40:50 2010
@@ -21,29 +21,70 @@ package org.apache.cayenne.access;
 import java.util.List;
 
 import org.apache.cayenne.Cayenne;
+import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.QueryResponse;
+import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.EJBQLQuery;
-import org.apache.cayenne.testdo.testmap.MeaningfulPKTest1;
+import org.apache.cayenne.test.jdbc.DBHelper;
+import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Painting;
-import org.apache.cayenne.unit.CayenneCase;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.ServerRuntimeFactory;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+
+@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+public class DataContextEJBQLDeleteTest extends ServerCase {
+
+    @Inject
+    protected ObjectContext context;
+
+    @Inject
+    protected DBHelper dbHelper;
+
+    @Inject
+    protected ServerRuntimeFactory runtimeFactory;
+
+    protected TableHelper tPainting;
+
+    protected TableHelper tMeaningfulPKTest1Table;
 
-public class DataContextEJBQLDeleteTest extends CayenneCase {
-    
-    protected DataContext context;
-    
     @Override
-    protected void setUp() throws Exception {
-        deleteTestData();
-        context = createDataContext();
+    protected void setUpAfterInjection() throws Exception {
+        dbHelper.deleteAll("PAINTING_INFO");
+        dbHelper.deleteAll("PAINTING");
+        dbHelper.deleteAll("ARTIST_EXHIBIT");
+        dbHelper.deleteAll("ARTIST");
+
+        tPainting = new TableHelper(dbHelper, "PAINTING");
+        tPainting.setColumns(
+                "PAINTING_ID",
+                "ARTIST_ID",
+                "PAINTING_TITLE",
+                "ESTIMATED_PRICE");
+
+        tMeaningfulPKTest1Table = new TableHelper(dbHelper, "MEANINGFUL_PK_TEST1");
+        tMeaningfulPKTest1Table.setColumns("PK_ATTRIBUTE", "DESCR");
+    }
+
+    protected void createPaintingsDataSet() throws Exception {
+        tPainting.insert(33001, null, "P1", 3000);
+        tPainting.insert(33002, null, "P2", 5000);
+    }
+
+    protected void createMeaningfulPKDataSet() throws Exception {
+
+        for (int i = 1; i <= 33; i++) {
+            tMeaningfulPKTest1Table.insert(i, "a" + i);
+        }
     }
-    
+
     public void testDeleteNoIdVar() throws Exception {
-        createTestData("prepare");
+        createPaintingsDataSet();
 
         String ejbql = "delete from Painting";
         EJBQLQuery query = new EJBQLQuery(ejbql);
 
-        QueryResponse result = createDataContext().performGenericQuery(query);
+        QueryResponse result = context.performGenericQuery(query);
 
         int[] count = result.firstUpdateCount();
         assertNotNull(count);
@@ -52,12 +93,12 @@ public class DataContextEJBQLDeleteTest 
     }
 
     public void testDeleteNoQualifier() throws Exception {
-        createTestData("prepare");
+        createPaintingsDataSet();
 
         String ejbql = "delete from Painting AS p";
         EJBQLQuery query = new EJBQLQuery(ejbql);
 
-        QueryResponse result = createDataContext().performGenericQuery(query);
+        QueryResponse result = context.performGenericQuery(query);
 
         int[] count = result.firstUpdateCount();
         assertNotNull(count);
@@ -66,52 +107,41 @@ public class DataContextEJBQLDeleteTest 
     }
 
     public void testDeleteSameEntityQualifier() throws Exception {
-        createTestData("prepare");
+        createPaintingsDataSet();
 
         String ejbql = "delete from Painting AS p WHERE p.paintingTitle = 'P2'";
         EJBQLQuery query = new EJBQLQuery(ejbql);
 
-        QueryResponse result = createDataContext().performGenericQuery(query);
+        QueryResponse result = context.performGenericQuery(query);
 
         int[] count = result.firstUpdateCount();
         assertNotNull(count);
         assertEquals(1, count.length);
         assertEquals(1, count[0]);
 
-        assertNotNull(Cayenne
-                .objectForPK(createDataContext(), Painting.class, 33001));
-        assertNull(Cayenne
-                .objectForPK(createDataContext(), Painting.class, 33002));
+        ObjectContext freshContext = runtimeFactory.get(TESTMAP_PROJECT).getContext();
+
+        assertNotNull(Cayenne.objectForPK(freshContext, Painting.class, 33001));
+        assertNull(Cayenne.objectForPK(freshContext, Painting.class, 33002));
     }
-    
+
     public void testDeleteIdVar() throws Exception {
-        insertValue();
-        
+
+        createMeaningfulPKDataSet();
+
         EJBQLQuery q = new EJBQLQuery("select m.pkAttribute from MeaningfulPKTest1 m");
-    
-        List<Integer> id = createDataContext().performQuery(q);
-       
+
+        List<Integer> id = context.performQuery(q);
+
         String ejbql = "delete from MeaningfulPKTest1 m WHERE m.pkAttribute in (:id)";
-         
+
         EJBQLQuery query = new EJBQLQuery(ejbql);
         query.setParameter("id", id);
-        QueryResponse result = createDataContext().performGenericQuery(query);
-    
+        QueryResponse result = context.performGenericQuery(query);
+
         int[] count = result.firstUpdateCount();
         assertNotNull(count);
         assertEquals(1, count.length);
-        assertEquals(420, count[0]);
-
-    }
-    
-    public void insertValue(){
-        MeaningfulPKTest1 obj ;
-        
-        for(int i=0;i<420;i++){
-            obj = (MeaningfulPKTest1) context.newObject("MeaningfulPKTest1");
-            obj.setPkAttribute(new Integer(i));
-            obj.setDescr("a" + i);
-            context.commitChanges();
-        }
+        assertEquals(33, count[0]);
     }
 }

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLFetchJoinTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLFetchJoinTest.java?rev=954463&r1=954462&r2=954463&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLFetchJoinTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLFetchJoinTest.java Mon Jun 14 13:40:50 2010
@@ -18,448 +18,395 @@
  ****************************************************************/
 package org.apache.cayenne.access;
 
-import java.math.BigDecimal;
-import java.sql.Connection;
 import java.sql.Date;
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
+import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.PersistenceState;
 import org.apache.cayenne.ValueHolder;
+import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.EJBQLQuery;
+import org.apache.cayenne.test.jdbc.DBHelper;
+import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.ArtistExhibit;
 import org.apache.cayenne.testdo.testmap.Gallery;
 import org.apache.cayenne.testdo.testmap.Painting;
-import org.apache.cayenne.unit.CayenneCase;
+import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.DataChannelQueryBlocker;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+
+@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+public class DataContextEJBQLFetchJoinTest extends ServerCase {
+
+    @Inject
+    protected ObjectContext context;
+
+    @Inject
+    protected DBHelper dbHelper;
+
+    @Inject
+    protected DataChannelQueryBlocker queryBlocker;
+
+    protected TableHelper tArtist;
+    protected TableHelper tPainting;
+    protected TableHelper tGallery;
+    protected TableHelper tExhibit;
+    protected TableHelper tArtistExhibit;
 
-public class DataContextEJBQLFetchJoinTest extends CayenneCase {
-    public static final String INSERT_ARTIST = "INSERT INTO ARTIST (ARTIST_ID, ARTIST_NAME) VALUES (?,?)";
-    public static final String INSERT_PAINTING = "INSERT INTO PAINTING (PAINTING_ID, PAINTING_TITLE, ARTIST_ID, ESTIMATED_PRICE) VALUES (?, ?, ?, ?)";
-    public static final String INSERT_GALLERY = "INSERT INTO GALLERY (GALLERY_ID, GALLERY_NAME) VALUES (?,?)";
-    public static final String INSERT_EXIBIT = "INSERT INTO EXHIBIT (EXHIBIT_ID, GALLERY_ID, CLOSING_DATE, OPENING_DATE) VALUES (?, ?, ?, ?)";
-    public static final String INSERT_ARTIST_EXIBIT = "INSERT INTO ARTIST_EXHIBIT (ARTIST_ID, EXHIBIT_ID) VALUES (?, ?)";
-
-    Connection conn; 
     @Override
-    protected void setUp() throws Exception {
-        deleteTestData();
+    protected void setUpAfterInjection() throws Exception {
+        dbHelper.deleteAll("PAINTING_INFO");
+        dbHelper.deleteAll("PAINTING");
+        dbHelper.deleteAll("ARTIST_EXHIBIT");
+        dbHelper.deleteAll("ARTIST");
+        dbHelper.deleteAll("EXHIBIT");
+        dbHelper.deleteAll("GALLERY");
+
+        tArtist = new TableHelper(dbHelper, "ARTIST");
+        tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
+
+        tPainting = new TableHelper(dbHelper, "PAINTING");
+        tPainting.setColumns(
+                "PAINTING_ID",
+                "ARTIST_ID",
+                "PAINTING_TITLE",
+                "ESTIMATED_PRICE");
+
+        tGallery = new TableHelper(dbHelper, "GALLERY");
+        tGallery.setColumns("GALLERY_ID", "GALLERY_NAME");
+
+        tExhibit = new TableHelper(dbHelper, "EXHIBIT");
+        tExhibit.setColumns("EXHIBIT_ID", "GALLERY_ID", "CLOSING_DATE", "OPENING_DATE");
+
+        tArtistExhibit = new TableHelper(dbHelper, "ARTIST_EXHIBIT");
+        tArtistExhibit.setColumns("ARTIST_ID", "EXHIBIT_ID");
     }
 
-    private void populateTables(TestData data) throws Exception {
-                
-        Object[][] artistsData = {
-                {1, "A1"},
-                {2, "A2"},
-                {3, "A3"}
-        };
-        Object[][] paintingsData = {
-                {1, "P11", 1, new BigDecimal(3000d)},
-                {2, "P2", 2, new BigDecimal(5000d)},
-                {3, "P12", 1, new BigDecimal(3000d)}
-        };
-        Object[][] galleriesData = {
-                {1, "gallery1"},
-                {2, "gallery2"}
-        };
-        Object[][] exibitsData = {
-                {1, 1, new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 24 * 1), new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 24 * 2)},
-                {2, 1, new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 24 * 3), new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 24 * 4)}
-        };
-        Object[][] artistExibitsData = {
-                {1, 1},
-                {1, 2}
-        };
-        conn = getConnection();
-        try {
-            conn.setAutoCommit(false);
-
-            switch (data) {
-                case ONE_ENTITY_FETCH_JOIN:
-                    insertArtists(artistsData);
-                    insertPaintings(paintingsData);
-                    break;
-                case SEVERAL_FETCH_JOINS:
-                    insertArtists(artistsData);
-                    insertPaintings(paintingsData);
-                    insertGalleries(galleriesData);
-                    insertExibits(exibitsData);
-                    insertArtistExibits(artistExibitsData);
-                    break;
-            }
+    protected void createOneFetchJoinDataSet() throws Exception {
+        tArtist.insert(1, "A1");
+        tArtist.insert(2, "A2");
+        tArtist.insert(3, "A3");
+
+        tPainting.insert(1, 1, "P11", 3000d);
+        tPainting.insert(2, 2, "P2", 5000d);
+        tPainting.insert(3, 1, "P12", 3000d);
+    }
+
+    protected void createMultipleFetchJoinsDataSet() throws Exception {
+        createOneFetchJoinDataSet();
+
+        tGallery.insert(1, "gallery1");
+        tGallery.insert(2, "gallery2");
+
+        long t = System.currentTimeMillis();
 
-        }
-        finally {
-            conn.close();
-        }
+        tExhibit.insert(1, 1, new Date(1 + 10000), new Date(t + 20000));
+        tExhibit.insert(2, 1, new Date(1 + 30000), new Date(t + 40000));
 
+        tArtistExhibit.insert(1, 1);
+        tArtistExhibit.insert(1, 2);
     }
 
-    
     public void testFetchJoinForOneEntity() throws Exception {
-        populateTables(TestData.ONE_ENTITY_FETCH_JOIN);
+        createOneFetchJoinDataSet();
+
         String ejbql = "SELECT a FROM Artist a JOIN FETCH a.paintingArray ";
 
         EJBQLQuery query = new EJBQLQuery(ejbql);
 
-        DataContext context = createDataContext();
+        final List objects = context.performQuery(query);
 
-        List objects = context.performQuery(query);
+        queryBlocker.runWithQueriesBlocked(new UnitTestClosure() {
 
-        blockQueries();
-        try {
-            assertEquals(2, objects.size());
+            public void execute() {
 
-            Iterator it = objects.iterator();
-            while (it.hasNext()) {
-                Artist a = (Artist) it.next();
-                List list = a.getPaintingArray();
+                assertEquals(2, objects.size());
 
-                assertNotNull(list);
-                assertFalse(((ValueHolder) list).isFault());
+                Iterator it = objects.iterator();
+                while (it.hasNext()) {
+                    Artist a = (Artist) it.next();
+                    List list = a.getPaintingArray();
 
-                Iterator children = list.iterator();
-                while (children.hasNext()) {
-                    Painting p = (Painting) children.next();
-                    assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
-                    // make sure properties are not null..
-                    assertNotNull(p.getPaintingTitle());
+                    assertNotNull(list);
+                    assertFalse(((ValueHolder) list).isFault());
+
+                    Iterator children = list.iterator();
+                    while (children.hasNext()) {
+                        Painting p = (Painting) children.next();
+                        assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
+                        // make sure properties are not null..
+                        assertNotNull(p.getPaintingTitle());
+                    }
                 }
             }
-        }
-        finally {
-            unblockQueries();
-        }
+        });
     }
 
     public void testSeveralFetchJoins() throws Exception {
-        populateTables(TestData.SEVERAL_FETCH_JOINS);
+        createMultipleFetchJoinsDataSet();
+
         String ejbql = "SELECT a "
                 + "FROM Artist a JOIN FETCH a.paintingArray JOIN FETCH a.artistExhibitArray "
                 + "WHERE a.artistName = 'A1'";
 
         EJBQLQuery query = new EJBQLQuery(ejbql);
 
-        DataContext context = createDataContext();
+        final List objects = context.performQuery(query);
 
-        List objects = context.performQuery(query);
+        queryBlocker.runWithQueriesBlocked(new UnitTestClosure() {
 
-        blockQueries();
-        try {
-            assertEquals(1, objects.size());
+            public void execute() {
 
-            Artist a = (Artist) objects.get(0);
-            assertEquals("A1", a.getArtistName());
+                assertEquals(1, objects.size());
 
-            List<Painting> paintings = a.getPaintingArray();
+                Artist a = (Artist) objects.get(0);
+                assertEquals("A1", a.getArtistName());
 
-            assertNotNull(paintings);
-            assertFalse(((ValueHolder) paintings).isFault());
-            assertEquals(2, paintings.size());
+                List<Painting> paintings = a.getPaintingArray();
 
-            List<String> expectedPaintingsNames = new ArrayList<String>();
-            expectedPaintingsNames.add("P11");
-            expectedPaintingsNames.add("P12");
+                assertNotNull(paintings);
+                assertFalse(((ValueHolder) paintings).isFault());
+                assertEquals(2, paintings.size());
 
-            Iterator<Painting> paintingsIterator = paintings.iterator();
-            while (paintingsIterator.hasNext()) {
-                Painting p = paintingsIterator.next();
-                assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
-                assertNotNull(p.getPaintingTitle());
-                assertTrue(expectedPaintingsNames.contains(p.getPaintingTitle()));
-            }
+                List<String> expectedPaintingsNames = new ArrayList<String>();
+                expectedPaintingsNames.add("P11");
+                expectedPaintingsNames.add("P12");
 
-            List<ArtistExhibit> exibits = a.getArtistExhibitArray();
+                Iterator<Painting> paintingsIterator = paintings.iterator();
+                while (paintingsIterator.hasNext()) {
+                    Painting p = paintingsIterator.next();
+                    assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
+                    assertNotNull(p.getPaintingTitle());
+                    assertTrue(expectedPaintingsNames.contains(p.getPaintingTitle()));
+                }
 
-            assertNotNull(exibits);
-            assertFalse(((ValueHolder) exibits).isFault());
-            assertEquals(2, exibits.size());
-
-            Iterator<ArtistExhibit> exibitsIterator = exibits.iterator();
-            while (exibitsIterator.hasNext()) {
-                ArtistExhibit ae = exibitsIterator.next();
-                assertEquals(PersistenceState.COMMITTED, ae.getPersistenceState());
-                assertNotNull(ae.getObjectId());
+                List<ArtistExhibit> exibits = a.getArtistExhibitArray();
 
-            }
+                assertNotNull(exibits);
+                assertFalse(((ValueHolder) exibits).isFault());
+                assertEquals(2, exibits.size());
+
+                Iterator<ArtistExhibit> exibitsIterator = exibits.iterator();
+                while (exibitsIterator.hasNext()) {
+                    ArtistExhibit ae = exibitsIterator.next();
+                    assertEquals(PersistenceState.COMMITTED, ae.getPersistenceState());
+                    assertNotNull(ae.getObjectId());
 
-        }
-        finally {
-            unblockQueries();
-        }
+                }
+            }
+        });
     }
 
     public void testSeveralEntitiesFetchJoins() throws Exception {
-        populateTables(TestData.SEVERAL_FETCH_JOINS);
+        createMultipleFetchJoinsDataSet();
+
         String ejbql = "SELECT DISTINCT a , g "
                 + "FROM Artist a JOIN FETCH a.paintingArray , Gallery g JOIN FETCH g.exhibitArray "
                 + "WHERE a.artistName='A1' AND g.galleryName='gallery1'";
 
         EJBQLQuery query = new EJBQLQuery(ejbql);
 
-        DataContext context = createDataContext();
+        final List objects = context.performQuery(query);
+
+        queryBlocker.runWithQueriesBlocked(new UnitTestClosure() {
 
-        List objects = context.performQuery(query);
+            public void execute() {
 
-        blockQueries();
-        try {
-            assertNotNull(objects);
-            assertFalse(objects.isEmpty());
-            assertEquals(1, objects.size());
-        }
-        finally {
-            unblockQueries();
-        }
+                assertNotNull(objects);
+                assertFalse(objects.isEmpty());
+                assertEquals(1, objects.size());
+            }
+        });
     }
 
     public void testSeveralEntitiesAndScalarFetchInnerJoins() throws Exception {
-        populateTables(TestData.SEVERAL_FETCH_JOINS);
+        createMultipleFetchJoinsDataSet();
+
         String ejbql = "SELECT DISTINCT a, a.artistName , g "
                 + "FROM Artist a JOIN FETCH a.paintingArray, Gallery g JOIN FETCH g.exhibitArray "
                 + "ORDER BY a.artistName";
 
         EJBQLQuery query = new EJBQLQuery(ejbql);
 
-        DataContext context = createDataContext();
+        final List objects = context.performQuery(query);
 
-        List objects = context.performQuery(query);
+        queryBlocker.runWithQueriesBlocked(new UnitTestClosure() {
 
-        blockQueries();
-        try {
-            assertEquals(2, objects.size());
+            public void execute() {
 
-            Object[] firstRow = (Object[]) objects.get(0);
-            Artist a = (Artist) firstRow[0];
-            assertEquals("A1", a.getArtistName());
+                assertEquals(2, objects.size());
 
-            List<Painting> paintings = a.getPaintingArray();
+                Object[] firstRow = (Object[]) objects.get(0);
+                Artist a = (Artist) firstRow[0];
+                assertEquals("A1", a.getArtistName());
 
-            assertNotNull(paintings);
-            assertFalse(((ValueHolder) paintings).isFault());
-            assertEquals(2, paintings.size());
+                List<Painting> paintings = a.getPaintingArray();
 
-            List<String> expectedPaintingsNames = new ArrayList<String>();
-            expectedPaintingsNames.add("P11");
-            expectedPaintingsNames.add("P12");
+                assertNotNull(paintings);
+                assertFalse(((ValueHolder) paintings).isFault());
+                assertEquals(2, paintings.size());
 
-            Iterator<Painting> paintingsIterator = paintings.iterator();
-            while (paintingsIterator.hasNext()) {
-                Painting p = paintingsIterator.next();
-                assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
-                assertNotNull(p.getPaintingTitle());
-                assertTrue(expectedPaintingsNames.contains(p.getPaintingTitle()));
-            }
-            String artistName = (String) firstRow[1];
-            assertEquals("A1", artistName);
+                List<String> expectedPaintingsNames = new ArrayList<String>();
+                expectedPaintingsNames.add("P11");
+                expectedPaintingsNames.add("P12");
 
-            Gallery g1 = (Gallery) firstRow[2];
-            assertEquals("gallery1", g1.getGalleryName());
+                Iterator<Painting> paintingsIterator = paintings.iterator();
+                while (paintingsIterator.hasNext()) {
+                    Painting p = paintingsIterator.next();
+                    assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
+                    assertNotNull(p.getPaintingTitle());
+                    assertTrue(expectedPaintingsNames.contains(p.getPaintingTitle()));
+                }
+                String artistName = (String) firstRow[1];
+                assertEquals("A1", artistName);
 
-            List exibits = g1.getExhibitArray();
+                Gallery g1 = (Gallery) firstRow[2];
+                assertEquals("gallery1", g1.getGalleryName());
 
-            assertNotNull(exibits);
-            assertFalse(((ValueHolder) exibits).isFault());
-            assertEquals(2, exibits.size());
+                List exibits = g1.getExhibitArray();
 
-            Object[] secondRow = (Object[]) objects.get(1);
-            a = (Artist) secondRow[0];
-            assertEquals("A2", a.getArtistName());
+                assertNotNull(exibits);
+                assertFalse(((ValueHolder) exibits).isFault());
+                assertEquals(2, exibits.size());
 
-            paintings = a.getPaintingArray();
+                Object[] secondRow = (Object[]) objects.get(1);
+                a = (Artist) secondRow[0];
+                assertEquals("A2", a.getArtistName());
 
-            assertNotNull(paintings);
-            assertFalse(((ValueHolder) paintings).isFault());
-            assertEquals(1, paintings.size());
+                paintings = a.getPaintingArray();
 
-            expectedPaintingsNames = new ArrayList<String>();
-            expectedPaintingsNames.add("P2");
+                assertNotNull(paintings);
+                assertFalse(((ValueHolder) paintings).isFault());
+                assertEquals(1, paintings.size());
 
-            paintingsIterator = paintings.iterator();
-            while (paintingsIterator.hasNext()) {
-                Painting p = paintingsIterator.next();
-                assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
-                assertNotNull(p.getPaintingTitle());
-                assertTrue(expectedPaintingsNames.contains(p.getPaintingTitle()));
-            }
-            artistName = (String) secondRow[1];
-            assertEquals("A2", artistName);
+                expectedPaintingsNames = new ArrayList<String>();
+                expectedPaintingsNames.add("P2");
 
-            Gallery g2 = (Gallery) secondRow[2];
-            assertEquals(g1, g2);
-        }
-        finally {
-            unblockQueries();
-        }
+                paintingsIterator = paintings.iterator();
+                while (paintingsIterator.hasNext()) {
+                    Painting p = paintingsIterator.next();
+                    assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
+                    assertNotNull(p.getPaintingTitle());
+                    assertTrue(expectedPaintingsNames.contains(p.getPaintingTitle()));
+                }
+                artistName = (String) secondRow[1];
+                assertEquals("A2", artistName);
+
+                Gallery g2 = (Gallery) secondRow[2];
+                assertEquals(g1, g2);
+            }
+        });
     }
 
     public void testSeveralEntitiesAndScalarFetchOuterJoins() throws Exception {
-        populateTables(TestData.SEVERAL_FETCH_JOINS);
+        createMultipleFetchJoinsDataSet();
+
         String ejbql = "SELECT DISTINCT a, a.artistName , g "
                 + "FROM Artist a LEFT JOIN FETCH a.paintingArray, Gallery g LEFT JOIN FETCH g.exhibitArray "
                 + "ORDER BY a.artistName, g.galleryName";
 
         EJBQLQuery query = new EJBQLQuery(ejbql);
 
-        DataContext context = createDataContext();
+        final List objects = context.performQuery(query);
+        queryBlocker.runWithQueriesBlocked(new UnitTestClosure() {
 
-        List objects = context.performQuery(query);
+            public void execute() {
 
-        blockQueries();
-        try {
-            assertEquals(6, objects.size());
+                assertEquals(6, objects.size());
 
-            Object[] row = (Object[]) objects.get(0);
-            Artist a1 = (Artist) row[0];
-            assertEquals("A1", a1.getArtistName());
+                Object[] row = (Object[]) objects.get(0);
+                Artist a1 = (Artist) row[0];
+                assertEquals("A1", a1.getArtistName());
 
-            List<Painting> paintings = a1.getPaintingArray();
+                List<Painting> paintings = a1.getPaintingArray();
 
-            assertNotNull(paintings);
-            assertFalse(((ValueHolder) paintings).isFault());
-            assertEquals(2, paintings.size());
+                assertNotNull(paintings);
+                assertFalse(((ValueHolder) paintings).isFault());
+                assertEquals(2, paintings.size());
 
-            List<String> expectedPaintingsNames = new ArrayList<String>();
-            expectedPaintingsNames.add("P11");
-            expectedPaintingsNames.add("P12");
+                List<String> expectedPaintingsNames = new ArrayList<String>();
+                expectedPaintingsNames.add("P11");
+                expectedPaintingsNames.add("P12");
 
-            Iterator<Painting> paintingsIterator = paintings.iterator();
-            while (paintingsIterator.hasNext()) {
-                Painting p = paintingsIterator.next();
-                assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
-                assertNotNull(p.getPaintingTitle());
-                assertTrue(expectedPaintingsNames.contains(p.getPaintingTitle()));
-            }
-            String artistName1 = (String) row[1];
-            assertEquals("A1", artistName1);
-
-            Gallery g1 = (Gallery) row[2];
-            assertEquals("gallery1", g1.getGalleryName());
+                Iterator<Painting> paintingsIterator = paintings.iterator();
+                while (paintingsIterator.hasNext()) {
+                    Painting p = paintingsIterator.next();
+                    assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
+                    assertNotNull(p.getPaintingTitle());
+                    assertTrue(expectedPaintingsNames.contains(p.getPaintingTitle()));
+                }
+                String artistName1 = (String) row[1];
+                assertEquals("A1", artistName1);
 
-            List exibits = g1.getExhibitArray();
+                Gallery g1 = (Gallery) row[2];
+                assertEquals("gallery1", g1.getGalleryName());
 
-            assertNotNull(exibits);
-            assertFalse(((ValueHolder) exibits).isFault());
-            assertEquals(2, exibits.size());
+                List exibits = g1.getExhibitArray();
 
-            row = (Object[]) objects.get(1);
+                assertNotNull(exibits);
+                assertFalse(((ValueHolder) exibits).isFault());
+                assertEquals(2, exibits.size());
 
-            assertEquals(a1, (Artist) row[0]);
-            assertEquals(artistName1, row[1]);
+                row = (Object[]) objects.get(1);
 
-            Gallery g2 = (Gallery) row[2];
-            assertEquals("gallery2", g2.getGalleryName());
+                assertEquals(a1, row[0]);
+                assertEquals(artistName1, row[1]);
 
-            exibits = g2.getExhibitArray();
+                Gallery g2 = (Gallery) row[2];
+                assertEquals("gallery2", g2.getGalleryName());
 
-            assertTrue(exibits.isEmpty());
+                exibits = g2.getExhibitArray();
 
-            row = (Object[]) objects.get(2);
+                assertTrue(exibits.isEmpty());
 
-            Artist a2 = (Artist) row[0];
-            assertEquals("A2", a2.getArtistName());
+                row = (Object[]) objects.get(2);
 
-            paintings = a2.getPaintingArray();
+                Artist a2 = (Artist) row[0];
+                assertEquals("A2", a2.getArtistName());
 
-            assertNotNull(paintings);
-            assertEquals(1, paintings.size());
+                paintings = a2.getPaintingArray();
 
-            Painting p = paintings.get(0);
-            assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
-            assertNotNull(p.getPaintingTitle());
-            assertEquals("P2", p.getPaintingTitle());
+                assertNotNull(paintings);
+                assertEquals(1, paintings.size());
 
-            String artistName2 = (String) row[1];
-            assertEquals("A2", artistName2);
-            assertEquals(g1, row[2]);
+                Painting p = paintings.get(0);
+                assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
+                assertNotNull(p.getPaintingTitle());
+                assertEquals("P2", p.getPaintingTitle());
 
-            row = (Object[]) objects.get(3);
+                String artistName2 = (String) row[1];
+                assertEquals("A2", artistName2);
+                assertEquals(g1, row[2]);
 
-            assertEquals(a2, (Artist) row[0]);
-            assertEquals(artistName2, row[1]);
-            assertEquals(g2, row[2]);
+                row = (Object[]) objects.get(3);
 
-            row = (Object[]) objects.get(4);
+                assertEquals(a2, row[0]);
+                assertEquals(artistName2, row[1]);
+                assertEquals(g2, row[2]);
 
-            Artist a3 = (Artist) row[0];
-            assertEquals("A3", a3.getArtistName());
+                row = (Object[]) objects.get(4);
 
-            paintings = a3.getPaintingArray();
+                Artist a3 = (Artist) row[0];
+                assertEquals("A3", a3.getArtistName());
 
-            assertTrue(paintings.isEmpty());
+                paintings = a3.getPaintingArray();
 
-            String artistName3 = (String) row[1];
-            assertEquals("A3", artistName3);
-            assertEquals(g1, row[2]);
+                assertTrue(paintings.isEmpty());
 
-            row = (Object[]) objects.get(5);
+                String artistName3 = (String) row[1];
+                assertEquals("A3", artistName3);
+                assertEquals(g1, row[2]);
 
-            assertEquals(a3, (Artist) row[0]);
-            assertEquals(artistName3, row[1]);
-            assertEquals(g2, row[2]);
-        }
-        finally {
-            unblockQueries();
-        }
-    }
+                row = (Object[]) objects.get(5);
 
-    private void insertArtists(Object[][] artistsData) throws SQLException {
-        PreparedStatement stmt = conn.prepareStatement(INSERT_ARTIST);
-        for (int i = 0; i < artistsData.length; i++) {
-            stmt.setInt(1, (Integer)artistsData[i][0]);
-            stmt.setString(2, (String) artistsData[i][1]);
-            stmt.executeUpdate();
-        }
-        stmt.close();
-    }
-
-    private void insertPaintings(Object[][] paintingsData) throws SQLException {
-        PreparedStatement stmt = conn.prepareStatement(INSERT_PAINTING);
-        for (int i = 0; i < paintingsData.length; i++) {
-            stmt.setInt(1, (Integer)paintingsData[i][0]);
-            stmt.setString(2, (String) paintingsData[i][1]);
-            stmt.setInt(3, (Integer)paintingsData[i][2]);
-            stmt.setBigDecimal(4, (BigDecimal) paintingsData[i][3]);
-            stmt.executeUpdate();
-        }
-        stmt.close();
-    }
-    
-    private void insertGalleries(Object[][] galleriesData) throws SQLException {
-        PreparedStatement stmt = conn.prepareStatement(INSERT_GALLERY);
-        for (int i = 0; i < galleriesData.length; i++) {
-            stmt.setInt(1, (Integer)galleriesData[i][0]);
-            stmt.setString(2, (String) galleriesData[i][1]);
-            stmt.executeUpdate();
-        }
-        stmt.close();
-    }
-    
-    private void insertExibits(Object[][] exibitsData) throws SQLException {
-        PreparedStatement stmt = conn.prepareStatement(INSERT_EXIBIT);
-        for (int i = 0; i < exibitsData.length; i++) {
-            stmt.setInt(1, (Integer)exibitsData[i][0]);
-            stmt.setInt(2, (Integer) exibitsData[i][1]);
-            stmt.setDate(3, (Date)exibitsData[i][2]);
-            stmt.setDate(4, (Date)exibitsData[i][3]);
-            stmt.executeUpdate();
-        }
-        stmt.close();
-    }
-    
-    private void insertArtistExibits(Object[][] artistExibitsData) throws SQLException {
-        PreparedStatement stmt = conn.prepareStatement(INSERT_ARTIST_EXIBIT);
-        for (int i = 0; i < artistExibitsData.length; i++) {
-            stmt.setInt(1, (Integer)artistExibitsData[i][0]);
-            stmt.setInt(2, (Integer) artistExibitsData[i][1]);
-            stmt.executeUpdate();
-        }
-        stmt.close();
-    }
-    
-    enum TestData{
-        ONE_ENTITY_FETCH_JOIN, SEVERAL_FETCH_JOINS
+                assertEquals(a3, row[0]);
+                assertEquals(artistName3, row[1]);
+                assertEquals(g2, row[2]);
+            }
+        });
     }
 }

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextNoPkTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextNoPkTest.java?rev=954463&r1=954462&r2=954463&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextNoPkTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextNoPkTest.java Mon Jun 14 13:40:50 2010
@@ -23,19 +23,27 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.cayenne.CayenneRuntimeException;
+import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SelectQuery;
+import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.NoPkTestEntity;
-import org.apache.cayenne.unit.CayenneCase;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
 
-public class DataContextNoPkTest extends CayenneCase {
+@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+public class DataContextNoPkTest extends ServerCase {
+
+    @Inject
+    protected ObjectContext context;
+
+    @Inject
+    protected DBHelper dbHelper;
 
     @Override
-    protected void setUp() throws Exception {
-        TableHelper noPkTestTable = new TableHelper(
-                getDbHelper(),
-                "NO_PK_TEST",
-                "ATTRIBUTE1");
+    protected void setUpAfterInjection() throws Exception {
+        TableHelper noPkTestTable = new TableHelper(dbHelper, "NO_PK_TEST", "ATTRIBUTE1");
         noPkTestTable.deleteAll();
 
         noPkTestTable.insert(1);
@@ -44,8 +52,7 @@ public class DataContextNoPkTest extends
 
     public void testNoPkFetchObjects() throws Exception {
         try {
-            List objects = createDataContext().performQuery(
-                    new SelectQuery(NoPkTestEntity.class));
+            List objects = context.performQuery(new SelectQuery(NoPkTestEntity.class));
             fail("Query for entity with no primary key must have failed, instead we got "
                     + objects.size()
                     + " rows.");
@@ -59,7 +66,7 @@ public class DataContextNoPkTest extends
         SelectQuery query = new SelectQuery(NoPkTestEntity.class);
         query.setFetchingDataRows(true);
 
-        List rows = createDataContext().performQuery(query);
+        List rows = context.performQuery(query);
         assertNotNull(rows);
         assertEquals(2, rows.size());
 

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextOuterJoinsTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextOuterJoinsTest.java?rev=954463&r1=954462&r2=954463&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextOuterJoinsTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextOuterJoinsTest.java Mon Jun 14 13:40:50 2010
@@ -20,6 +20,8 @@ package org.apache.cayenne.access;
 
 import java.util.List;
 
+import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.map.Entity;
@@ -29,9 +31,17 @@ import org.apache.cayenne.test.jdbc.DBHe
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
-import org.apache.cayenne.unit.CayenneCase;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
 
-public class DataContextOuterJoinsTest extends CayenneCase {
+@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+public class DataContextOuterJoinsTest extends ServerCase {
+
+    @Inject
+    protected ObjectContext context;
+
+    @Inject
+    protected DBHelper dbHelper;
 
     protected TableHelper artistHelper;
     protected TableHelper paintingHelper;
@@ -39,8 +49,8 @@ public class DataContextOuterJoinsTest e
     protected TableHelper artistGroupHelper;
 
     @Override
-    protected void setUp() throws Exception {
-        DBHelper dbHelper = getDbHelper();
+    protected void setUpAfterInjection() throws Exception {
+
         artistHelper = new TableHelper(dbHelper, "ARTIST", "ARTIST_ID", "ARTIST_NAME");
         paintingHelper = new TableHelper(
                 dbHelper,
@@ -48,6 +58,7 @@ public class DataContextOuterJoinsTest e
                 "PAINTING_ID",
                 "ARTIST_ID",
                 "PAINTING_TITLE");
+
         artgroupHelper = new TableHelper(dbHelper, "ARTGROUP", "GROUP_ID", "NAME");
         artistGroupHelper = new TableHelper(
                 dbHelper,
@@ -80,7 +91,7 @@ public class DataContextOuterJoinsTest e
                 null));
         missingToManyQuery.addOrdering(Artist.ARTIST_NAME_PROPERTY, SortOrder.ASCENDING);
 
-        List<Artist> artists = createDataContext().performQuery(missingToManyQuery);
+        List<Artist> artists = context.performQuery(missingToManyQuery);
         assertEquals(1, artists.size());
         assertEquals("BB1", artists.get(0).getArtistName());
     }
@@ -101,7 +112,7 @@ public class DataContextOuterJoinsTest e
                 null));
         missingToManyQuery.addOrdering(Artist.ARTIST_NAME_PROPERTY, SortOrder.ASCENDING);
 
-        List<Artist> artists = createDataContext().performQuery(missingToManyQuery);
+        List<Artist> artists = context.performQuery(missingToManyQuery);
         assertEquals(2, artists.size());
         assertEquals("BB1", artists.get(0).getArtistName());
 
@@ -114,7 +125,7 @@ public class DataContextOuterJoinsTest e
                 "AA1"));
         mixedConditionQuery.addOrdering(Artist.ARTIST_NAME_PROPERTY, SortOrder.ASCENDING);
 
-        artists = createDataContext().performQuery(mixedConditionQuery);
+        artists = context.performQuery(mixedConditionQuery);
         assertEquals(3, artists.size());
         assertEquals("AA1", artists.get(0).getArtistName());
         assertEquals("BB1", artists.get(1).getArtistName());
@@ -135,7 +146,7 @@ public class DataContextOuterJoinsTest e
         missingToManyQuery.andQualifier(Expression.fromString("paintingArray+ = null"));
         missingToManyQuery.addOrdering(Artist.ARTIST_NAME_PROPERTY, SortOrder.ASCENDING);
 
-        List<Artist> artists = createDataContext().performQuery(missingToManyQuery);
+        List<Artist> artists = context.performQuery(missingToManyQuery);
         assertEquals(2, artists.size());
         assertEquals("BB1", artists.get(0).getArtistName());
 
@@ -148,7 +159,7 @@ public class DataContextOuterJoinsTest e
                 "AA1"));
         mixedConditionQuery.addOrdering(Artist.ARTIST_NAME_PROPERTY, SortOrder.ASCENDING);
 
-        artists = createDataContext().performQuery(mixedConditionQuery);
+        artists = context.performQuery(mixedConditionQuery);
         assertEquals(3, artists.size());
         assertEquals("AA1", artists.get(0).getArtistName());
         assertEquals("BB1", artists.get(1).getArtistName());
@@ -168,7 +179,7 @@ public class DataContextOuterJoinsTest e
 
         query.addOrdering("toArtist+.artistName", SortOrder.DESCENDING);
 
-        List<Artist> paintings = createDataContext().performQuery(query);
+        List<Artist> paintings = context.performQuery(query);
         assertEquals(3, paintings.size());
     }
 }

Added: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtras1Test.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtras1Test.java?rev=954463&view=auto
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtras1Test.java (added)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtras1Test.java Mon Jun 14 13:40:50 2010
@@ -0,0 +1,83 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+package org.apache.cayenne.access;
+
+import java.util.List;
+
+import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.PersistenceState;
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.query.SelectQuery;
+import org.apache.cayenne.test.jdbc.DBHelper;
+import org.apache.cayenne.test.jdbc.TableHelper;
+import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.testdo.testmap.PaintingInfo;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+
+/**
+ * A test case for CAY-788.
+ */
+@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+public class DataContextPrefetchExtras1Test extends ServerCase {
+
+    @Inject
+    protected ObjectContext context;
+
+    @Inject
+    protected DBHelper dbHelper;
+
+    @Override
+    protected void setUpAfterInjection() throws Exception {
+        dbHelper.deleteAll("PAINTING_INFO");
+        dbHelper.deleteAll("PAINTING");
+        dbHelper.deleteAll("ARTIST_EXHIBIT");
+        dbHelper.deleteAll("ARTIST");
+    }
+
+    protected void createDataSet() throws Exception {
+
+        TableHelper tPainting = new TableHelper(dbHelper, "PAINTING");
+        tPainting.setColumns("PAINTING_ID", "PAINTING_TITLE");
+
+        TableHelper tPaintingInfo = new TableHelper(dbHelper, "PAINTING_INFO");
+        tPaintingInfo.setColumns("PAINTING_ID", "TEXT_REVIEW");
+
+        for (int i = 1; i <= 10; i++) {
+            tPainting.insert(i, "P" + i);
+            tPaintingInfo.insert(i, "Review #" + i);
+        }
+    }
+
+    public void testPrefetchToOne() throws Exception {
+        createDataSet();
+
+        SelectQuery query = new SelectQuery(Painting.class);
+        query.addPrefetch(Painting.TO_PAINTING_INFO_PROPERTY);
+
+        List<Painting> objects = context.performQuery(query);
+        assertTrue(!objects.isEmpty());
+        for (Painting p : objects) {
+            PaintingInfo pi = p.getToPaintingInfo();
+            assertEquals(PersistenceState.COMMITTED, p.getPersistenceState());
+            assertEquals(PersistenceState.COMMITTED, pi.getPersistenceState());
+        }
+    }
+
+}

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtrasTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtrasTest.java?rev=954463&r1=954462&r2=954463&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtrasTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtrasTest.java Mon Jun 14 13:40:50 2010
@@ -37,7 +37,6 @@ import org.apache.cayenne.unit.CayenneCa
 
 /**
  * Test prefetching of various obscure cases.
- * 
  */
 public class DataContextPrefetchExtrasTest extends CayenneCase {
 
@@ -64,7 +63,7 @@ public class DataContextPrefetchExtrasTe
         assertEquals("n1", pk1.getOtherCol());
         List toMany = (List) pk1.readPropertyDirectly("charFKs");
         assertNotNull(toMany);
-        assertFalse(((ValueHolder)toMany).isFault());
+        assertFalse(((ValueHolder) toMany).isFault());
         assertEquals(3, toMany.size());
 
         CharFkTestEntity fk1 = (CharFkTestEntity) toMany.get(0);

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/IdentityColumnsTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/IdentityColumnsTest.java?rev=954463&r1=954462&r2=954463&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/IdentityColumnsTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/IdentityColumnsTest.java Mon Jun 14 13:40:50 2010
@@ -24,11 +24,15 @@ import java.util.Collections;
 import java.util.List;
 
 import org.apache.cayenne.Cayenne;
+import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.ObjectId;
 import org.apache.cayenne.Persistent;
+import org.apache.cayenne.dba.DbAdapter;
+import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.query.SelectQuery;
+import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.GeneratedColumnCompKey;
 import org.apache.cayenne.testdo.testmap.GeneratedColumnCompMaster;
@@ -37,16 +41,36 @@ import org.apache.cayenne.testdo.testmap
 import org.apache.cayenne.testdo.testmap.GeneratedColumnTestEntity;
 import org.apache.cayenne.testdo.testmap.GeneratedF1;
 import org.apache.cayenne.testdo.testmap.GeneratedF2;
-import org.apache.cayenne.unit.CayenneCase;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
 
-/**
- */
-public class IdentityColumnsTest extends CayenneCase {
+@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+public class IdentityColumnsTest extends ServerCase {
+
+    @Inject
+    protected ObjectContext context;
+
+    @Inject
+    protected DBHelper dbHelper;
+
+    @Inject
+    protected DbAdapter adapter;
+
+    @Inject
+    protected DataNode node;
+
+    protected TableHelper joinTable;
 
     @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        deleteTestData();
+    protected void setUpAfterInjection() throws Exception {
+        // TODO: extract in a separate DataMap?
+        dbHelper.deleteAll("GENERATED_JOIN");
+        dbHelper.deleteAll("GENERATED_F1");
+        dbHelper.deleteAll("GENERATED_F2");
+        dbHelper.deleteAll("GENERATED_COLUMN_DEP");
+        dbHelper.deleteAll("GENERATED_COLUMN_TEST");
+
+        joinTable = new TableHelper(dbHelper, "GENERATED_JOIN");
     }
 
     /**
@@ -54,7 +78,7 @@ public class IdentityColumnsTest extends
      * column.
      */
     public void testCAY823() throws Exception {
-        DataContext context = createDataContext();
+
         GeneratedColumnTestEntity idObject = context
                 .newObject(GeneratedColumnTestEntity.class);
 
@@ -76,7 +100,7 @@ public class IdentityColumnsTest extends
     }
 
     public void testNewObject() throws Exception {
-        DataContext context = createDataContext();
+
         GeneratedColumnTestEntity idObject = context
                 .newObject(GeneratedColumnTestEntity.class);
 
@@ -100,20 +124,13 @@ public class IdentityColumnsTest extends
     }
 
     public void testGeneratedJoinInFlattenedRelationship() throws Exception {
-        String joinTableName = "GENERATED_JOIN";
-
-        TableHelper joinTable = new TableHelper(getDbHelper(), joinTableName);
-        joinTable.deleteAll();
-
-        DataContext context = createDataContext();
 
         // before saving objects, let's manually access PKGenerator to get a base PK value
         // for comparison
-        DbEntity joinTableEntity = context.getEntityResolver().getDbEntity(joinTableName);
+        DbEntity joinTableEntity = context.getEntityResolver().getDbEntity(
+                joinTable.getTableName());
         DbAttribute pkAttribute = (DbAttribute) joinTableEntity.getAttribute("ID");
-        Number pk = (Number) getNode().getAdapter().getPkGenerator().generatePk(
-                getNode(),
-                pkAttribute);
+        Number pk = (Number) adapter.getPkGenerator().generatePk(node, pkAttribute);
 
         GeneratedF1 f1 = context.newObject(GeneratedF1.class);
         GeneratedF2 f2 = context.newObject(GeneratedF2.class);
@@ -127,7 +144,7 @@ public class IdentityColumnsTest extends
         // this is a leap of faith that autoincrement-based IDs will not match
         // PkGenertor provided ids... This sorta works though if pk generator has a 200
         // base value
-        if (getNode().getAdapter().supportsGeneratedKeys()) {
+        if (adapter.supportsGeneratedKeys()) {
             assertFalse("Looks like auto-increment wasn't used for the join table. ID: "
                     + id, id == pk.intValue() + 1);
         }
@@ -140,7 +157,7 @@ public class IdentityColumnsTest extends
      * Tests CAY-422 bug.
      */
     public void testUnrelatedUpdate() throws Exception {
-        DataContext context = createDataContext();
+
         GeneratedColumnTestEntity m = context.newObject(GeneratedColumnTestEntity.class);
 
         m.setName("m");
@@ -166,7 +183,6 @@ public class IdentityColumnsTest extends
      * CAY-341 for the original bug.
      */
     public void testMultipleNewObjectsSeparateTables() throws Exception {
-        DataContext context = createDataContext();
 
         GeneratedColumnTestEntity idObject1 = context
                 .newObject(GeneratedColumnTestEntity.class);
@@ -179,7 +195,6 @@ public class IdentityColumnsTest extends
     }
 
     public void testMultipleNewObjects() throws Exception {
-        DataContext context = createDataContext();
 
         String[] names = new String[] {
                 "n1_" + System.currentTimeMillis(), "n2_" + System.currentTimeMillis(),
@@ -217,7 +232,7 @@ public class IdentityColumnsTest extends
     }
 
     public void testCompoundPKWithGeneratedColumn() throws Exception {
-        if (getAccessStackAdapter().getAdapter().supportsGeneratedKeys()) {
+        if (adapter.supportsGeneratedKeys()) {
             // only works for generated keys, as the entity tested has one Cayenne
             // auto-pk and one generated key
 
@@ -225,7 +240,6 @@ public class IdentityColumnsTest extends
             String depName1 = "dep1_" + System.currentTimeMillis();
             String depName2 = "dep2_" + System.currentTimeMillis();
 
-            DataContext context = createDataContext();
             GeneratedColumnCompMaster master = context
                     .newObject(GeneratedColumnCompMaster.class);
             master.setName(masterName);
@@ -268,7 +282,7 @@ public class IdentityColumnsTest extends
     }
 
     public void testUpdateDependentWithNewMaster() throws Exception {
-        DataContext context = createDataContext();
+
         GeneratedColumnTestEntity master1 = context
                 .newObject(GeneratedColumnTestEntity.class);
         master1.setName("aaa");
@@ -308,7 +322,7 @@ public class IdentityColumnsTest extends
     }
 
     public void testPropagateToDependent() throws Exception {
-        DataContext context = createDataContext();
+
         GeneratedColumnTestEntity idObject = context
                 .newObject(GeneratedColumnTestEntity.class);
         idObject.setName("aaa");

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/QuotedIdentifiersTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/QuotedIdentifiersTest.java?rev=954463&r1=954462&r2=954463&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/QuotedIdentifiersTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/QuotedIdentifiersTest.java Mon Jun 14 13:40:50 2010
@@ -33,7 +33,7 @@ import org.apache.cayenne.testdo.quotema
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 
-@UseServerRuntime(ServerCase.QUOTED_IDENTIFIERS_STACK)
+@UseServerRuntime(ServerCase.QUOTED_IDENTIFIERS_PROJECT)
 public class QuotedIdentifiersTest extends ServerCase {
 
     @Inject

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/SingleTableInheritance1Test.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/SingleTableInheritance1Test.java?rev=954463&r1=954462&r2=954463&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/SingleTableInheritance1Test.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/SingleTableInheritance1Test.java Mon Jun 14 13:40:50 2010
@@ -33,7 +33,7 @@ import org.apache.cayenne.unit.di.server
 /**
  * Special test cases per CAY-1378, CAY-1379.
  */
-@UseServerRuntime(ServerCase.INHERTITANCE_SINGLE_TABLE1_STACK)
+@UseServerRuntime(ServerCase.INHERTITANCE_SINGLE_TABLE1_PROJECT)
 public class SingleTableInheritance1Test extends ServerCase {
 
     @Inject

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/VerticalInheritanceTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/VerticalInheritanceTest.java?rev=954463&r1=954462&r2=954463&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/VerticalInheritanceTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/VerticalInheritanceTest.java Mon Jun 14 13:40:50 2010
@@ -36,7 +36,7 @@ import org.apache.cayenne.testdo.inherit
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 
-@UseServerRuntime(ServerCase.INHERTITANCE_VERTICAL_STACK)
+@UseServerRuntime(ServerCase.INHERTITANCE_VERTICAL_PROJECT)
 public class VerticalInheritanceTest extends ServerCase {
 
     @Inject