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 2011/05/18 02:29:50 UTC

svn commit: r1104640 - in /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne: ./ exp/ remote/

Author: aadamchik
Date: Wed May 18 00:29:49 2011
New Revision: 1104640

URL: http://svn.apache.org/viewvc?rev=1104640&view=rev
Log:
CAY-1565 CayenneCase unit tests conversion(5)

patches by Dzmitry Kazimirchyk - RemoteCayenneCase + subclasses

Removed:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/PersistentCase.java
Modified:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/NestedCayenneContextTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/exp/ValueInjectorTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/CayenneContextDeletionTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/LightSuperClassTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextLocalTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextParentEventsTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextPeerEventsTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextRollbackTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/ROPPrefetchToManyMapTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RelationshipChangeTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RemoteCallbacksTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RemoteCayenneCase.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RemoteRollbackTest.java

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/NestedCayenneContextTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/NestedCayenneContextTest.java?rev=1104640&r1=1104639&r2=1104640&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/NestedCayenneContextTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/NestedCayenneContextTest.java Wed May 18 00:29:49 2011
@@ -22,22 +22,42 @@ import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 
+import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.graph.GraphChangeHandler;
 import org.apache.cayenne.graph.GraphDiff;
 import org.apache.cayenne.query.ObjectIdQuery;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.query.SortOrder;
 import org.apache.cayenne.remote.RemoteCayenneCase;
+import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.testdo.mt.ClientMtTable2;
 import org.apache.cayenne.testdo.mt.ClientMtTooneDep;
 import org.apache.cayenne.testdo.mt.ClientMtTooneMaster;
+import org.apache.cayenne.unit.di.DataChannelInterceptor;
+import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
 
 /**
  * Tests nested object contexts
  */
+@UseServerRuntime("cayenne-multi-tier.xml")
 public class NestedCayenneContextTest extends RemoteCayenneCase {
 
+    @Inject
+    private DBHelper dbHelper;
+
+    @Inject
+    private DataChannelInterceptor queryInterceptor;
+
+    @Override
+    public void setUpAfterInjection() throws Exception {
+        super.setUpAfterInjection();
+
+        dbHelper.deleteAll("MT_TABLE2");
+        dbHelper.deleteAll("MT_TABLE1");
+    }
+
     public void testChannels() {
         ObjectContext child = context.createChildContext();
 
@@ -52,22 +72,20 @@ public class NestedCayenneContextTest ex
     }
 
     public void testLocalObjectSynchronize() throws Exception {
-        deleteTestData();
-
-        ObjectContext child = context.createChildContext();
+        final ObjectContext child = context.createChildContext();
 
-        ClientMtTable1 committed = context.newObject(ClientMtTable1.class);
-        ClientMtTable1 deleted = context.newObject(ClientMtTable1.class);
-        ClientMtTable1 modified = context.newObject(ClientMtTable1.class);
+        final ClientMtTable1 committed = context.newObject(ClientMtTable1.class);
+        final ClientMtTable1 deleted = context.newObject(ClientMtTable1.class);
+        final ClientMtTable1 modified = context.newObject(ClientMtTable1.class);
 
         context.commitChanges();
 
         context.deleteObject(deleted);
         modified.setGlobalAttribute1("a");
 
-        ClientMtTable1 _new = context.newObject(ClientMtTable1.class);
+        final ClientMtTable1 _new = context.newObject(ClientMtTable1.class);
 
-        ClientMtTable1 hollow = (ClientMtTable1) context.localObject(new ObjectId(
+        final ClientMtTable1 hollow = (ClientMtTable1) context.localObject(new ObjectId(
                 "MtTable1"), null);
 
         assertEquals(PersistenceState.HOLLOW, hollow.getPersistenceState());
@@ -76,59 +94,59 @@ public class NestedCayenneContextTest ex
         assertEquals(PersistenceState.DELETED, deleted.getPersistenceState());
         assertEquals(PersistenceState.NEW, _new.getPersistenceState());
 
-        blockQueries();
+        queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
 
-        try {
-            Persistent newPeer = child.localObject(_new.getObjectId(), _new);
+            public void execute() {
+                Persistent newPeer = child.localObject(_new.getObjectId(), _new);
 
-            assertEquals(_new.getObjectId(), newPeer.getObjectId());
-            assertEquals(PersistenceState.COMMITTED, newPeer.getPersistenceState());
+                assertEquals(_new.getObjectId(), newPeer.getObjectId());
+                assertEquals(PersistenceState.COMMITTED, newPeer.getPersistenceState());
 
-            assertSame(child, newPeer.getObjectContext());
-            assertSame(context, _new.getObjectContext());
-
-            Persistent hollowPeer = child.localObject(hollow.getObjectId(), hollow);
-            assertEquals(PersistenceState.HOLLOW, hollowPeer.getPersistenceState());
-            assertEquals(hollow.getObjectId(), hollowPeer.getObjectId());
-            assertSame(child, hollowPeer.getObjectContext());
-            assertSame(context, hollow.getObjectContext());
-
-            Persistent committedPeer = child.localObject(
-                    committed.getObjectId(),
-                    committed);
-            assertEquals(PersistenceState.COMMITTED, committedPeer.getPersistenceState());
-            assertEquals(committed.getObjectId(), committedPeer.getObjectId());
-            assertSame(child, committedPeer.getObjectContext());
-            assertSame(context, committed.getObjectContext());
-
-            ClientMtTable1 modifiedPeer = (ClientMtTable1) child.localObject(modified
-                    .getObjectId(), modified);
-            assertEquals(PersistenceState.COMMITTED, modifiedPeer.getPersistenceState());
-            assertEquals(modified.getObjectId(), modifiedPeer.getObjectId());
-            assertEquals("a", modifiedPeer.getGlobalAttribute1());
-            assertSame(child, modifiedPeer.getObjectContext());
-            assertSame(context, modified.getObjectContext());
-
-            Persistent deletedPeer = child.localObject(deleted.getObjectId(), deleted);
-            assertEquals(PersistenceState.COMMITTED, deletedPeer.getPersistenceState());
-            assertEquals(deleted.getObjectId(), deletedPeer.getObjectId());
-            assertSame(child, deletedPeer.getObjectContext());
-            assertSame(context, deleted.getObjectContext());
-        }
-        finally {
-            unblockQueries();
-        }
+                assertSame(child, newPeer.getObjectContext());
+                assertSame(context, _new.getObjectContext());
+
+                Persistent hollowPeer = child.localObject(hollow.getObjectId(), hollow);
+                assertEquals(PersistenceState.HOLLOW, hollowPeer.getPersistenceState());
+                assertEquals(hollow.getObjectId(), hollowPeer.getObjectId());
+                assertSame(child, hollowPeer.getObjectContext());
+                assertSame(context, hollow.getObjectContext());
+
+                Persistent committedPeer = child.localObject(
+                        committed.getObjectId(),
+                        committed);
+                assertEquals(PersistenceState.COMMITTED, committedPeer
+                        .getPersistenceState());
+                assertEquals(committed.getObjectId(), committedPeer.getObjectId());
+                assertSame(child, committedPeer.getObjectContext());
+                assertSame(context, committed.getObjectContext());
+
+                ClientMtTable1 modifiedPeer = (ClientMtTable1) child.localObject(modified
+                        .getObjectId(), modified);
+                assertEquals(PersistenceState.COMMITTED, modifiedPeer
+                        .getPersistenceState());
+                assertEquals(modified.getObjectId(), modifiedPeer.getObjectId());
+                assertEquals("a", modifiedPeer.getGlobalAttribute1());
+                assertSame(child, modifiedPeer.getObjectContext());
+                assertSame(context, modified.getObjectContext());
+
+                Persistent deletedPeer = child
+                        .localObject(deleted.getObjectId(), deleted);
+                assertEquals(PersistenceState.COMMITTED, deletedPeer
+                        .getPersistenceState());
+                assertEquals(deleted.getObjectId(), deletedPeer.getObjectId());
+                assertSame(child, deletedPeer.getObjectContext());
+                assertSame(context, deleted.getObjectContext());
+            }
+        });
     }
 
     public void testLocalObjectsNoOverride() throws Exception {
-        deleteTestData();
-
-        ObjectContext child = context.createChildContext();
+        final ObjectContext child = context.createChildContext();
 
-        ClientMtTable1 modified = context.newObject(ClientMtTable1.class);
+        final ClientMtTable1 modified = context.newObject(ClientMtTable1.class);
         context.commitChanges();
 
-        ClientMtTable1 peerModified = (ClientMtTable1) Cayenne.objectForQuery(
+        final ClientMtTable1 peerModified = (ClientMtTable1) Cayenne.objectForQuery(
                 child,
                 new ObjectIdQuery(modified.getObjectId()));
 
@@ -138,50 +156,43 @@ public class NestedCayenneContextTest ex
         assertEquals(PersistenceState.MODIFIED, modified.getPersistenceState());
         assertEquals(PersistenceState.MODIFIED, peerModified.getPersistenceState());
 
-        blockQueries();
+        queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
 
-        try {
-
-            Persistent peerModified2 = child
-                    .localObject(modified.getObjectId(), modified);
-            assertSame(peerModified, peerModified2);
-            assertEquals(PersistenceState.MODIFIED, peerModified2.getPersistenceState());
-            assertEquals("M2", peerModified.getGlobalAttribute1());
-            assertEquals("M1", modified.getGlobalAttribute1());
-        }
-        finally {
-            unblockQueries();
-        }
+            public void execute() {
+                Persistent peerModified2 = child.localObject(
+                        modified.getObjectId(),
+                        modified);
+                assertSame(peerModified, peerModified2);
+                assertEquals(PersistenceState.MODIFIED, peerModified2
+                        .getPersistenceState());
+                assertEquals("M2", peerModified.getGlobalAttribute1());
+                assertEquals("M1", modified.getGlobalAttribute1());
+            }
+        });
     }
 
     public void testLocalObjectRelationship() throws Exception {
-        deleteTestData();
-
-        ObjectContext child = context.createChildContext();
+        final ObjectContext child = context.createChildContext();
 
         ClientMtTable1 _new = context.newObject(ClientMtTable1.class);
-        ClientMtTable2 _new2 = context.newObject(ClientMtTable2.class);
+        final ClientMtTable2 _new2 = context.newObject(ClientMtTable2.class);
         _new.addToTable2Array(_new2);
 
-        blockQueries();
+        queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
 
-        try {
-            ClientMtTable2 child2 = (ClientMtTable2) child.localObject(_new2
-                    .getObjectId(), _new2);
-            assertEquals(PersistenceState.COMMITTED, child2.getPersistenceState());
-            assertNotNull(child2.getTable1());
-            assertEquals(PersistenceState.COMMITTED, child2
-                    .getTable1()
-                    .getPersistenceState());
-        }
-        finally {
-            unblockQueries();
-        }
+            public void execute() {
+                ClientMtTable2 child2 = (ClientMtTable2) child.localObject(_new2
+                        .getObjectId(), _new2);
+                assertEquals(PersistenceState.COMMITTED, child2.getPersistenceState());
+                assertNotNull(child2.getTable1());
+                assertEquals(PersistenceState.COMMITTED, child2
+                        .getTable1()
+                        .getPersistenceState());
+            }
+        });
     }
 
     public void testSelect() throws Exception {
-        deleteTestData();
-
         ObjectContext child = context.createChildContext();
 
         ClientMtTable1 committed = context.newObject(ClientMtTable1.class);
@@ -203,10 +214,10 @@ public class NestedCayenneContextTest ex
         assertEquals(PersistenceState.DELETED, deleted.getPersistenceState());
         assertEquals(PersistenceState.NEW, _new.getPersistenceState());
 
-        List objects = child.performQuery(new SelectQuery(ClientMtTable1.class));
+        List<?> objects = child.performQuery(new SelectQuery(ClientMtTable1.class));
         assertEquals("All but NEW object must have been included", 3, objects.size());
 
-        Iterator it = objects.iterator();
+        Iterator<?> it = objects.iterator();
         while (it.hasNext()) {
             ClientMtTable1 next = (ClientMtTable1) it.next();
             assertEquals(PersistenceState.COMMITTED, next.getPersistenceState());
@@ -219,10 +230,8 @@ public class NestedCayenneContextTest ex
     }
 
     public void testPrefetchingToOne() throws Exception {
-        deleteTestData();
-
-        ClientMtTable1 mt11 = context.newObject(ClientMtTable1.class);
-        ClientMtTable1 mt12 = context.newObject(ClientMtTable1.class);
+        final ClientMtTable1 mt11 = context.newObject(ClientMtTable1.class);
+        context.newObject(ClientMtTable1.class);
         ClientMtTable2 mt21 = context.newObject(ClientMtTable2.class);
         ClientMtTable2 mt22 = context.newObject(ClientMtTable2.class);
 
@@ -231,37 +240,34 @@ public class NestedCayenneContextTest ex
 
         context.commitChanges();
 
-        ObjectContext child = context.createChildContext();
+        final ObjectContext child = context.createChildContext();
 
         SelectQuery q = new SelectQuery(ClientMtTable2.class);
         q.addPrefetch(ClientMtTable2.TABLE1_PROPERTY);
 
-        List results = child.performQuery(q);
+        final List<?> results = child.performQuery(q);
 
-        blockQueries();
-        try {
-            assertEquals(2, results.size());
-            Iterator it = results.iterator();
-            while (it.hasNext()) {
-                ClientMtTable2 o = (ClientMtTable2) it.next();
-                assertEquals(PersistenceState.COMMITTED, o.getPersistenceState());
-                assertSame(child, o.getObjectContext());
+        queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
 
-                ClientMtTable1 o1 = o.getTable1();
-                assertNotNull(o1);
-                assertEquals(PersistenceState.COMMITTED, o1.getPersistenceState());
-                assertSame(child, o1.getObjectContext());
-                assertEquals(mt11.getObjectId(), o1.getObjectId());
+            public void execute() {
+                assertEquals(2, results.size());
+                Iterator<?> it = results.iterator();
+                while (it.hasNext()) {
+                    ClientMtTable2 o = (ClientMtTable2) it.next();
+                    assertEquals(PersistenceState.COMMITTED, o.getPersistenceState());
+                    assertSame(child, o.getObjectContext());
+
+                    ClientMtTable1 o1 = o.getTable1();
+                    assertNotNull(o1);
+                    assertEquals(PersistenceState.COMMITTED, o1.getPersistenceState());
+                    assertSame(child, o1.getObjectContext());
+                    assertEquals(mt11.getObjectId(), o1.getObjectId());
+                }
             }
-        }
-        finally {
-            unblockQueries();
-        }
+        });
     }
 
     public void testPrefetchingToMany() throws Exception {
-        deleteTestData();
-
         ClientMtTable1 mt11 = context.newObject(ClientMtTable1.class);
         mt11.setGlobalAttribute1("1");
 
@@ -276,48 +282,45 @@ public class NestedCayenneContextTest ex
 
         context.commitChanges();
 
-        ObjectContext child = context.createChildContext();
+        final ObjectContext child = context.createChildContext();
 
         SelectQuery q = new SelectQuery(ClientMtTable1.class);
         q.addOrdering("globalAttribute1", SortOrder.ASCENDING);
         q.addPrefetch(ClientMtTable1.TABLE2ARRAY_PROPERTY);
 
-        List results = child.performQuery(q);
+        final List<?> results = child.performQuery(q);
 
-        blockQueries();
-        try {
+        queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
 
-            ClientMtTable1 o1 = (ClientMtTable1) results.get(0);
-            assertEquals(PersistenceState.COMMITTED, o1.getPersistenceState());
-            assertSame(child, o1.getObjectContext());
+            public void execute() {
+                ClientMtTable1 o1 = (ClientMtTable1) results.get(0);
+                assertEquals(PersistenceState.COMMITTED, o1.getPersistenceState());
+                assertSame(child, o1.getObjectContext());
 
-            List<ClientMtTable2> children1 = o1.getTable2Array();
+                List<ClientMtTable2> children1 = o1.getTable2Array();
 
-            assertEquals(2, children1.size());
-            Iterator<ClientMtTable2> it = children1.iterator();
-            while (it.hasNext()) {
-                ClientMtTable2 o = it.next();
-                assertEquals(PersistenceState.COMMITTED, o.getPersistenceState());
-                assertSame(child, o.getObjectContext());
+                assertEquals(2, children1.size());
+                Iterator<ClientMtTable2> it = children1.iterator();
+                while (it.hasNext()) {
+                    ClientMtTable2 o = it.next();
+                    assertEquals(PersistenceState.COMMITTED, o.getPersistenceState());
+                    assertSame(child, o.getObjectContext());
 
-                assertEquals(o1, o.getTable1());
-            }
+                    assertEquals(o1, o.getTable1());
+                }
 
-            ClientMtTable1 o2 = (ClientMtTable1) results.get(1);
-            assertEquals(PersistenceState.COMMITTED, o2.getPersistenceState());
-            assertSame(child, o2.getObjectContext());
+                ClientMtTable1 o2 = (ClientMtTable1) results.get(1);
+                assertEquals(PersistenceState.COMMITTED, o2.getPersistenceState());
+                assertSame(child, o2.getObjectContext());
 
-            List children2 = o2.getTable2Array();
+                List<?> children2 = o2.getTable2Array();
 
-            assertEquals(0, children2.size());
-        }
-        finally {
-            unblockQueries();
-        }
+                assertEquals(0, children2.size());
+            }
+        });
     }
 
     public void testDeleteNew() throws Exception {
-        deleteTestData();
         ObjectContext child = context.createChildContext();
 
         ClientMtTable1 a = context.newObject(ClientMtTable1.class);
@@ -341,193 +344,199 @@ public class NestedCayenneContextTest ex
      * A test case for CAY-698 bug.
      */
     public void testNullifyToOne() throws Exception {
-        deleteTestData();
-
         ClientMtTable1 a = context.newObject(ClientMtTable1.class);
         ClientMtTable2 b = context.newObject(ClientMtTable2.class);
         a.addToTable2Array(b);
 
         context.commitChanges();
 
-        ObjectContext child = context.createChildContext();
+        final ObjectContext child = context.createChildContext();
         ObjectContext childPeer = context.createChildContext();
 
-        ClientMtTable2 childP1 = (ClientMtTable2) Cayenne.objectForPK(child, b
+        final ClientMtTable2 childP1 = (ClientMtTable2) Cayenne.objectForPK(child, b
                 .getObjectId());
 
         // trigger object creation in the peer nested DC
         Cayenne.objectForPK(childPeer, b.getObjectId());
         childP1.setTable1(null);
 
-        blockQueries();
-
-        try {
-            child.commitChangesToParent();
-            assertEquals(PersistenceState.COMMITTED, childP1.getPersistenceState());
+        queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
 
-            ClientMtTable2 parentP1 = (ClientMtTable2) context.getGraphManager().getNode(
-                    childP1.getObjectId());
-
-            assertNotNull(parentP1);
-            assertEquals(PersistenceState.MODIFIED, parentP1.getPersistenceState());
-            assertNull(parentP1.getTable1());
-
-            // check that arc changes got recorded in the parent context
-            GraphDiff diffs = context.internalGraphManager().getDiffs();
-            final int[] arcDiffs = new int[1];
-
-            diffs.apply(new GraphChangeHandler() {
-
-                public void arcCreated(Object nodeId, Object targetNodeId, Object arcId) {
-                    arcDiffs[0]++;
-                }
+            public void execute() {
+                child.commitChangesToParent();
+                assertEquals(PersistenceState.COMMITTED, childP1.getPersistenceState());
+
+                ClientMtTable2 parentP1 = (ClientMtTable2) context
+                        .getGraphManager()
+                        .getNode(childP1.getObjectId());
+
+                assertNotNull(parentP1);
+                assertEquals(PersistenceState.MODIFIED, parentP1.getPersistenceState());
+                assertNull(parentP1.getTable1());
+
+                // check that arc changes got recorded in the parent context
+                GraphDiff diffs = context.internalGraphManager().getDiffs();
+                final int[] arcDiffs = new int[1];
+
+                diffs.apply(new GraphChangeHandler() {
+
+                    public void arcCreated(
+                            Object nodeId,
+                            Object targetNodeId,
+                            Object arcId) {
+                        arcDiffs[0]++;
+                    }
 
-                public void arcDeleted(Object nodeId, Object targetNodeId, Object arcId) {
-                    arcDiffs[0]--;
-                }
+                    public void arcDeleted(
+                            Object nodeId,
+                            Object targetNodeId,
+                            Object arcId) {
+                        arcDiffs[0]--;
+                    }
 
-                public void nodeCreated(Object nodeId) {
+                    public void nodeCreated(Object nodeId) {
 
-                }
+                    }
 
-                public void nodeIdChanged(Object nodeId, Object newId) {
-                }
+                    public void nodeIdChanged(Object nodeId, Object newId) {
+                    }
 
-                public void nodePropertyChanged(
-                        Object nodeId,
-                        String property,
-                        Object oldValue,
-                        Object newValue) {
-                }
+                    public void nodePropertyChanged(
+                            Object nodeId,
+                            String property,
+                            Object oldValue,
+                            Object newValue) {
+                    }
 
-                public void nodeRemoved(Object nodeId) {
+                    public void nodeRemoved(Object nodeId) {
 
-                }
-            });
+                    }
+                });
 
-            assertEquals(-2, arcDiffs[0]);
-        }
-        finally {
-            unblockQueries();
-        }
+                assertEquals(-2, arcDiffs[0]);
+            }
+        });
     }
 
     public void testCommitChangesToParent() throws Exception {
-        deleteTestData();
-
         context.newObject(ClientMtTable1.class);
         context.newObject(ClientMtTable1.class);
         context.newObject(ClientMtTable1.class);
         context.newObject(ClientMtTable1.class);
         context.commitChanges();
 
-        ObjectContext child = context.createChildContext();
+        final ObjectContext child = context.createChildContext();
 
         SelectQuery query = new SelectQuery(ClientMtTable1.class);
-        List objects = child.performQuery(query);
+        List<?> objects = child.performQuery(query);
 
         assertEquals(4, objects.size());
 
-        ClientMtTable1 childNew = child.newObject(ClientMtTable1.class);
+        final ClientMtTable1 childNew = child.newObject(ClientMtTable1.class);
         childNew.setGlobalAttribute1("NNN");
 
-        ClientMtTable1 childModified = (ClientMtTable1) objects.get(0);
+        final ClientMtTable1 childModified = (ClientMtTable1) objects.get(0);
         childModified.setGlobalAttribute1("MMM");
 
-        ClientMtTable1 childCommitted = (ClientMtTable1) objects.get(1);
+        final ClientMtTable1 childCommitted = (ClientMtTable1) objects.get(1);
 
-        ClientMtTable1 childHollow = (ClientMtTable1) objects.get(3);
+        final ClientMtTable1 childHollow = (ClientMtTable1) objects.get(3);
         child.invalidateObjects(Collections.singleton(childHollow));
 
-        blockQueries();
-
-        try {
-            child.commitChangesToParent();
+        queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
 
-            // * all modified child objects must be in committed state now
-            // * all modifications should be propagated to the parent
-            // * no actual commit should occur.
-
-            assertEquals(PersistenceState.COMMITTED, childNew.getPersistenceState());
-            assertEquals(PersistenceState.COMMITTED, childModified.getPersistenceState());
-            assertEquals(PersistenceState.COMMITTED, childCommitted.getPersistenceState());
-            assertEquals(PersistenceState.HOLLOW, childHollow.getPersistenceState());
-
-            ClientMtTable1 parentNew = (ClientMtTable1) context
-                    .getGraphManager()
-                    .getNode(childNew.getObjectId());
-            final ClientMtTable1 parentModified = (ClientMtTable1) context
-                    .getGraphManager()
-                    .getNode(childModified.getObjectId());
-            ClientMtTable1 parentCommitted = (ClientMtTable1) context
-                    .getGraphManager()
-                    .getNode(childCommitted.getObjectId());
-            ClientMtTable1 parentHollow = (ClientMtTable1) context
-                    .getGraphManager()
-                    .getNode(childHollow.getObjectId());
-
-            assertNotNull(parentNew);
-            assertEquals(PersistenceState.NEW, parentNew.getPersistenceState());
-            assertEquals("NNN", parentNew.getGlobalAttribute1());
-
-            assertNotNull(parentModified);
-            assertEquals(PersistenceState.MODIFIED, parentModified.getPersistenceState());
-            assertEquals("MMM", parentModified.getGlobalAttribute1());
-
-            assertNotNull(parentCommitted);
-            assertEquals(PersistenceState.COMMITTED, parentCommitted
-                    .getPersistenceState());
-
-            assertNotNull(parentHollow);
+            public void execute() {
+                child.commitChangesToParent();
 
-            // check that arc changes got recorded in the parent context
-            GraphDiff diffs = context.internalGraphManager().getDiffs();
+                // * all modified child objects must be in committed state now
+                // * all modifications should be propagated to the parent
+                // * no actual commit should occur.
+
+                assertEquals(PersistenceState.COMMITTED, childNew.getPersistenceState());
+                assertEquals(PersistenceState.COMMITTED, childModified
+                        .getPersistenceState());
+                assertEquals(PersistenceState.COMMITTED, childCommitted
+                        .getPersistenceState());
+                assertEquals(PersistenceState.HOLLOW, childHollow.getPersistenceState());
+
+                ClientMtTable1 parentNew = (ClientMtTable1) context
+                        .getGraphManager()
+                        .getNode(childNew.getObjectId());
+                final ClientMtTable1 parentModified = (ClientMtTable1) context
+                        .getGraphManager()
+                        .getNode(childModified.getObjectId());
+                ClientMtTable1 parentCommitted = (ClientMtTable1) context
+                        .getGraphManager()
+                        .getNode(childCommitted.getObjectId());
+                ClientMtTable1 parentHollow = (ClientMtTable1) context
+                        .getGraphManager()
+                        .getNode(childHollow.getObjectId());
+
+                assertNotNull(parentNew);
+                assertEquals(PersistenceState.NEW, parentNew.getPersistenceState());
+                assertEquals("NNN", parentNew.getGlobalAttribute1());
+
+                assertNotNull(parentModified);
+                assertEquals(PersistenceState.MODIFIED, parentModified
+                        .getPersistenceState());
+                assertEquals("MMM", parentModified.getGlobalAttribute1());
+
+                assertNotNull(parentCommitted);
+                assertEquals(PersistenceState.COMMITTED, parentCommitted
+                        .getPersistenceState());
+
+                assertNotNull(parentHollow);
+
+                // check that arc changes got recorded in the parent context
+                GraphDiff diffs = context.internalGraphManager().getDiffs();
+
+                final int[] modifiedProperties = new int[1];
+
+                diffs.apply(new GraphChangeHandler() {
+
+                    public void arcCreated(
+                            Object nodeId,
+                            Object targetNodeId,
+                            Object arcId) {
 
-            final int[] modifiedProperties = new int[1];
-
-            diffs.apply(new GraphChangeHandler() {
-
-                public void arcCreated(Object nodeId, Object targetNodeId, Object arcId) {
-
-                }
-
-                public void arcDeleted(Object nodeId, Object targetNodeId, Object arcId) {
+                    }
 
-                }
+                    public void arcDeleted(
+                            Object nodeId,
+                            Object targetNodeId,
+                            Object arcId) {
 
-                public void nodeCreated(Object nodeId) {
+                    }
 
-                }
+                    public void nodeCreated(Object nodeId) {
 
-                public void nodeIdChanged(Object nodeId, Object newId) {
-                }
+                    }
 
-                public void nodePropertyChanged(
-                        Object nodeId,
-                        String property,
-                        Object oldValue,
-                        Object newValue) {
+                    public void nodeIdChanged(Object nodeId, Object newId) {
+                    }
 
-                    if (nodeId.equals(parentModified.getObjectId())) {
-                        modifiedProperties[0]++;
+                    public void nodePropertyChanged(
+                            Object nodeId,
+                            String property,
+                            Object oldValue,
+                            Object newValue) {
+
+                        if (nodeId.equals(parentModified.getObjectId())) {
+                            modifiedProperties[0]++;
+                        }
                     }
-                }
 
-                public void nodeRemoved(Object nodeId) {
+                    public void nodeRemoved(Object nodeId) {
 
-                }
-            });
+                    }
+                });
 
-            assertEquals(1, modifiedProperties[0]);
-        }
-        finally {
-            unblockQueries();
-        }
+                assertEquals(1, modifiedProperties[0]);
+            }
+        });
     }
 
     public void testCommitChangesToParentDeleted() throws Exception {
-        deleteTestData();
-
         context.newObject(ClientMtTable1.class);
         context.newObject(ClientMtTable1.class);
         context.newObject(ClientMtTable1.class);
@@ -538,7 +547,7 @@ public class NestedCayenneContextTest ex
 
         // make sure we fetch in predictable order
         SelectQuery query = new SelectQuery(ClientMtTable1.class);
-        List objects = child.performQuery(query);
+        List<?> objects = child.performQuery(query);
 
         assertEquals(4, objects.size());
 
@@ -567,8 +576,6 @@ public class NestedCayenneContextTest ex
     }
 
     public void testCommitChanges() throws Exception {
-        deleteTestData();
-
         context.newObject(ClientMtTable1.class);
         context.newObject(ClientMtTable1.class);
         context.newObject(ClientMtTable1.class);
@@ -579,7 +586,7 @@ public class NestedCayenneContextTest ex
 
         // make sure we fetch in predictable order
         SelectQuery query = new SelectQuery(ClientMtTable1.class);
-        List objects = child.performQuery(query);
+        List<?> objects = child.performQuery(query);
 
         assertEquals(4, objects.size());
 
@@ -638,7 +645,6 @@ public class NestedCayenneContextTest ex
     }
 
     public void testAddRemove() throws Exception {
-        deleteTestData();
         ObjectContext child = context.createChildContext();
 
         ClientMtTable1 a = child.newObject(ClientMtTable1.class);
@@ -663,7 +669,6 @@ public class NestedCayenneContextTest ex
     }
 
     public void testChangeRel() throws Exception {
-        deleteTestData();
         ObjectContext child = context.createChildContext();
 
         ClientMtTable1 a = child.newObject(ClientMtTable1.class);
@@ -695,15 +700,12 @@ public class NestedCayenneContextTest ex
     }
 
     public void testCAY1183() throws Exception {
-        deleteTestData();
-
         ClientMtTable1 parentMt = context.newObject(ClientMtTable1.class);
         context.commitChanges();
 
         ObjectContext child = context.createChildContext();
-        ClientMtTable1 childMt = (ClientMtTable1) Cayenne.objectForPK(
-                child,
-                parentMt.getObjectId());
+        ClientMtTable1 childMt = (ClientMtTable1) Cayenne.objectForPK(child, parentMt
+                .getObjectId());
         childMt.setGlobalAttribute1("1183");
         ClientMtTable2 childMt2 = child.newObject(ClientMtTable2.class);
         childMt2.setGlobalAttribute("1183");
@@ -716,8 +718,6 @@ public class NestedCayenneContextTest ex
     }
 
     public void testCAY1194() throws Exception {
-        deleteTestData();
-
         ClientMtTable1 parentMt = context.newObject(ClientMtTable1.class);
         ObjectContext child = context.createChildContext();
 
@@ -742,8 +742,6 @@ public class NestedCayenneContextTest ex
     }
 
     public void testCommitChangesToParentOneToMany() throws Exception {
-        deleteTestData();
-
         ObjectContext child = context.createChildContext();
 
         ClientMtTable1 master = child.newObject(ClientMtTable1.class);
@@ -803,8 +801,6 @@ public class NestedCayenneContextTest ex
     }
 
     public void testCommitChangesToParentOneToOne() throws Exception {
-        deleteTestData();
-
         ObjectContext child = context.createChildContext();
 
         ClientMtTooneMaster master = child.newObject(ClientMtTooneMaster.class);

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/exp/ValueInjectorTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/exp/ValueInjectorTest.java?rev=1104640&r1=1104639&r2=1104640&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/exp/ValueInjectorTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/exp/ValueInjectorTest.java Wed May 18 00:29:49 2011
@@ -19,14 +19,20 @@
 package org.apache.cayenne.exp;
 
 import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.remote.RemoteCayenneCase;
 import org.apache.cayenne.testdo.mt.ClientMtTable1Subclass;
 import org.apache.cayenne.testdo.mt.MtTable1Subclass;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
 
+@UseServerRuntime("cayenne-multi-tier.xml")
 public class ValueInjectorTest extends RemoteCayenneCase {
+    
+    @Inject
+    private ObjectContext context;
+    
     public void test() {
-        ObjectContext context = createDataContext();
         ObjEntity entity = context.getEntityResolver().lookupObjEntity(MtTable1Subclass.class);
         Expression qualifier = entity.getDeclaredQualifier();
         

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/CayenneContextDeletionTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/CayenneContextDeletionTest.java?rev=1104640&r1=1104639&r2=1104640&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/CayenneContextDeletionTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/CayenneContextDeletionTest.java Wed May 18 00:29:49 2011
@@ -1,34 +1,37 @@
-/*****************************************************************
- *   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.remote;
-
-import org.apache.cayenne.testdo.mt.ClientMtTable1;
-
-public class CayenneContextDeletionTest extends RemoteCayenneCase {
-    public void testDeletion() {
-        ClientMtTable1 obj = context.newObject(ClientMtTable1.class);
-        context.commitChanges();
-        
-        context.deleteObject(obj);
-        
-        //now check that the object is unregistered
-        context.commitChanges();
-        assertNull(context.getGraphManager().getNode(obj.getObjectId()));
-    }
-}
+/*****************************************************************
+ *   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.remote;
+
+import org.apache.cayenne.testdo.mt.ClientMtTable1;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+
+@UseServerRuntime("cayenne-multi-tier.xml")
+public class CayenneContextDeletionTest extends RemoteCayenneCase {
+
+    public void testDeletion() {
+        ClientMtTable1 object = context.newObject(ClientMtTable1.class);
+        context.commitChanges();
+
+        context.deleteObject(object);
+
+        // now check that the object is unregistered
+        context.commitChanges();
+        assertNull(context.getGraphManager().getNode(object.getObjectId()));
+    }
+}

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/LightSuperClassTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/LightSuperClassTest.java?rev=1104640&r1=1104639&r2=1104640&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/LightSuperClassTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/LightSuperClassTest.java Wed May 18 00:29:49 2011
@@ -19,38 +19,78 @@
 package org.apache.cayenne.remote;
 
 import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.RefreshQuery;
 import org.apache.cayenne.query.SelectQuery;
+import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.persistent.Continent;
 import org.apache.cayenne.testdo.persistent.Country;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+
+/**
+ * Test for entites that are implemented in same class on client and server
+ */
+@UseServerRuntime("cayenne-multi-tier.xml")
+public class LightSuperClassTest extends RemoteCayenneCase {
+
+    @Inject
+    private DBHelper dbHelper;
+
+    @Inject
+    private ObjectContext context;
+
+    private boolean server;
+
+    @Override
+    public void setUpAfterInjection() throws Exception {
+        super.setUpAfterInjection();
+
+        dbHelper.deleteAll("CONTINENT");
+        dbHelper.deleteAll("COUNTRY");
+    }
+
+    @Override
+    public void runBare() throws Throwable {
+        server = true;
+        super.runBare();
+        server = false;
+
+        // testing ROP with all serialization policies
+        runBareSimple();
+    }
+
+    private ObjectContext createContext() {
+        if (server) {
+            return context;
+        }
+        else {
+            return createROPContext();
+        }
+    }
 
-public class LightSuperClassTest extends PersistentCase {
-     
     public void testServer() throws Exception {
-        deleteTestData();
-        
         ObjectContext context = createContext();
         Continent continent = context.newObject(Continent.class);
         continent.setName("Europe");
-        
+
         Country country = new Country();
         context.registerNewObject(country);
-        
-        //TODO: setting property before object creation does not work on ROP (CAY-1320)
+
+        // TODO: setting property before object creation does not work on ROP (CAY-1320)
         country.setName("Russia");
-        
+
         country.setContinent(continent);
         assertEquals(continent.getCountries().size(), 1);
-        
+
         context.commitChanges();
-        
+
         context.deleteObject(country);
         assertEquals(continent.getCountries().size(), 0);
         continent.setName("Australia");
-        
+
         context.commitChanges();
         context.performQuery(new RefreshQuery());
-        
+
         assertEquals(context.performQuery(new SelectQuery(Country.class)).size(), 0);
         assertEquals(context.performQuery(new SelectQuery(Continent.class)).size(), 1);
     }

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextLocalTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextLocalTest.java?rev=1104640&r1=1104639&r2=1104640&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextLocalTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextLocalTest.java Wed May 18 00:29:49 2011
@@ -24,8 +24,11 @@ import org.apache.cayenne.BaseContext;
 import org.apache.cayenne.query.QueryCacheStrategy;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
 
+@UseServerRuntime("cayenne-multi-tier.xml")
 public class NestedObjectContextLocalTest extends RemoteCayenneCase {
+
     public void testLocalCacheStaysLocal() {
 
         SelectQuery query = new SelectQuery(ClientMtTable1.class);

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextParentEventsTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextParentEventsTest.java?rev=1104640&r1=1104639&r2=1104640&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextParentEventsTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextParentEventsTest.java Wed May 18 00:29:49 2011
@@ -20,20 +20,34 @@
 package org.apache.cayenne.remote;
 
 import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
 
+@UseServerRuntime("cayenne-multi-tier.xml")
 public class NestedObjectContextParentEventsTest extends RemoteCayenneCase {
 
+    @Inject
+    private DBHelper dbHelper;
+
+    @Override
+    public void setUpAfterInjection() throws Exception {
+        super.setUpAfterInjection();
+
+        dbHelper.deleteAll("MT_TABLE2");
+        dbHelper.deleteAll("MT_TABLE1");
+    }
+
     public void testParentUpdatedId() throws Exception {
-        deleteTestData();
-        
         ObjectContext child = context.createChildContext();
 
         ClientMtTable1 ac = child.newObject(ClientMtTable1.class);
         ac.setGlobalAttribute1("X");
         child.commitChangesToParent();
 
-        ClientMtTable1 ap = (ClientMtTable1) context.getGraphManager().getNode(ac.getObjectId());
+        ClientMtTable1 ap = (ClientMtTable1) context.getGraphManager().getNode(
+                ac.getObjectId());
         assertNotNull(ap);
 
         assertTrue(ap.getObjectId().isTemporary());

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextPeerEventsTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextPeerEventsTest.java?rev=1104640&r1=1104639&r2=1104640&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextPeerEventsTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextPeerEventsTest.java Wed May 18 00:29:49 2011
@@ -21,14 +21,27 @@ package org.apache.cayenne.remote;
 
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.ObjectId;
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.testdo.mt.ClientMtTable2;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
 
+@UseServerRuntime("cayenne-multi-tier.xml")
 public class NestedObjectContextPeerEventsTest extends RemoteCayenneCase {
+    
+    @Inject
+    private DBHelper dbHelper;
+    
+    @Override
+    public void setUpAfterInjection() throws Exception {
+        super.setUpAfterInjection();
+        
+        dbHelper.deleteAll("MT_TABLE2");
+        dbHelper.deleteAll("MT_TABLE1");
+    }
 
     public void testPeerObjectUpdatedTempOID() throws Exception {
-        deleteTestData();
-        
         ObjectContext peer1 = context.createChildContext();
         ClientMtTable1 a1 = peer1.newObject(ClientMtTable1.class);
         a1.setGlobalAttribute1("Y");
@@ -46,8 +59,6 @@ public class NestedObjectContextPeerEven
     }
 
     public void testPeerObjectUpdatedSimpleProperty() throws Exception {
-        deleteTestData();
-
         ClientMtTable1 a = context.newObject(ClientMtTable1.class);
         a.setGlobalAttribute1("X");
         context.commitChanges();
@@ -68,8 +79,6 @@ public class NestedObjectContextPeerEven
     }
 
     public void testPeerObjectUpdatedToOneRelationship() throws Exception {
-        deleteTestData();
-
         ClientMtTable1 a = context.newObject(ClientMtTable1.class);
         ClientMtTable1 altA = context.newObject(ClientMtTable1.class);
 
@@ -99,8 +108,6 @@ public class NestedObjectContextPeerEven
     }
 
     public void testPeerObjectUpdatedToManyRelationship() throws Exception {
-        deleteTestData();
-
         ClientMtTable1 a = context.newObject(ClientMtTable1.class);
         a.setGlobalAttribute1("X");
 

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextRollbackTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextRollbackTest.java?rev=1104640&r1=1104639&r2=1104640&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextRollbackTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/NestedObjectContextRollbackTest.java Wed May 18 00:29:49 2011
@@ -20,7 +20,9 @@ package org.apache.cayenne.remote;
 
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
 
+@UseServerRuntime("cayenne-multi-tier.xml")
 public class NestedObjectContextRollbackTest extends RemoteCayenneCase {
 
     public void testRollbackChanges() {

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/ROPPrefetchToManyMapTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/ROPPrefetchToManyMapTest.java?rev=1104640&r1=1104639&r2=1104640&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/ROPPrefetchToManyMapTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/ROPPrefetchToManyMapTest.java Wed May 18 00:29:49 2011
@@ -20,14 +20,32 @@ package org.apache.cayenne.remote;
 
 import org.apache.cayenne.Cayenne;
 import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.RefreshQuery;
 import org.apache.cayenne.query.SelectQuery;
+import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.mt.ClientMtMapToMany;
 import org.apache.cayenne.testdo.mt.ClientMtMapToManyTarget;
+import org.apache.cayenne.unit.di.DataChannelInterceptor;
+import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
 
+@UseServerRuntime("cayenne-multi-tier.xml")
 public class ROPPrefetchToManyMapTest extends RemoteCayenneCase {
+    
+    @Inject
+    private DBHelper dbHelper;
+    
+    @Inject
+    private DataChannelInterceptor queryInterceptor;
+    
+    @Override
+    public void setUpAfterInjection() throws Exception {
+        dbHelper.deleteAll("MT_MAP_TO_MANY_TARGET");
+        dbHelper.deleteAll("MT_MAP_TO_MANY");        
+    }
+    
     public void test() throws Exception {
-        deleteTestData();
         ObjectContext context = createROPContext();
         
         ClientMtMapToMany map = context.newObject(ClientMtMapToMany.class);
@@ -40,14 +58,13 @@ public class ROPPrefetchToManyMapTest ex
         SelectQuery query = new SelectQuery(ClientMtMapToMany.class);
         query.addPrefetch("targets");
         
-        map = (ClientMtMapToMany) Cayenne.objectForQuery(context, query);
+        final ClientMtMapToMany mapToMany = (ClientMtMapToMany) Cayenne.objectForQuery(context, query);
         
-        try {
-            blockQueries();
-            assertEquals(map.getTargets().size(), 1);
-        }
-        finally {
-            unblockQueries();
-        }
+        queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
+            
+            public void execute() {
+                assertEquals(mapToMany.getTargets().size(), 1);
+            }
+        });
     }
 }

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RelationshipChangeTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RelationshipChangeTest.java?rev=1104640&r1=1104639&r2=1104640&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RelationshipChangeTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RelationshipChangeTest.java Wed May 18 00:29:49 2011
@@ -20,10 +20,12 @@ package org.apache.cayenne.remote;
 
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.testdo.mt.ClientMtTable2;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
 
 /**
  * This is a test primarily for CAY-1118
  */
+@UseServerRuntime("cayenne-multi-tier.xml")
 public class RelationshipChangeTest extends RemoteCayenneCase {
 
     public void testNullify() {

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RemoteCallbacksTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RemoteCallbacksTest.java?rev=1104640&r1=1104639&r2=1104640&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RemoteCallbacksTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RemoteCallbacksTest.java Wed May 18 00:29:49 2011
@@ -21,13 +21,16 @@ package org.apache.cayenne.remote;
 import org.apache.cayenne.LifecycleListener;
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.testdo.mt.ClientMtLifecycles;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
 
+@UseServerRuntime("cayenne-multi-tier.xml")
 public class RemoteCallbacksTest extends RemoteCayenneCase implements LifecycleListener {
     private int added, loaded, prePersisted, postPersisted, preRemoved, postRemoved, preUpdated, postUpdated;
     
     @Override
-    public void setUp() throws Exception {
-        super.setUp();
+    public void setUpAfterInjection() throws Exception {
+        super.setUpAfterInjection();
+        
         added = 0;
         loaded = 0;
         prePersisted = 0;

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RemoteCayenneCase.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RemoteCayenneCase.java?rev=1104640&r1=1104639&r2=1104640&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RemoteCayenneCase.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RemoteCayenneCase.java Wed May 18 00:29:49 2011
@@ -1,86 +1,77 @@
-/*****************************************************************
- *   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.remote;
-
-import org.apache.cayenne.CayenneContext;
-import org.apache.cayenne.access.ClientServerChannel;
-import org.apache.cayenne.access.DataContext;
-import org.apache.cayenne.cache.MapQueryCache;
-import org.apache.cayenne.event.DefaultEventManager;
-import org.apache.cayenne.remote.service.LocalConnection;
-import org.apache.cayenne.unit.AccessStack;
-import org.apache.cayenne.unit.CayenneCase;
-import org.apache.cayenne.unit.CayenneResources;
-import org.apache.cayenne.unit.UnitLocalConnection;
-
-/**
- * JUnit case to test ROP functionality
- */
-public abstract class RemoteCayenneCase extends CayenneCase {
-
-    protected CayenneContext context;
-
-    protected DataContext parentDataContext;
-
-    /**
-     * Used serialization policy. Per CAY-979 we're testing on all policies
-     */
-    protected int serializationPolicy;
-
-    @Override
-    public void runBare() throws Throwable {
-        serializationPolicy = LocalConnection.HESSIAN_SERIALIZATION;
-        runBareSimple();
-        serializationPolicy = LocalConnection.JAVA_SERIALIZATION;
-        runBareSimple();
-        serializationPolicy = LocalConnection.NO_SERIALIZATION;
-        runBareSimple();
-    }
-
-    protected void runBareSimple() throws Throwable {
-        super.runBare();
-    }
-
-    @Override
-    public void setUp() throws Exception {
-        parentDataContext = createDataContext();
-        context = createROPContext();
-    }
-
-    protected CayenneContext createROPContext() {
-        ClientServerChannel clientServerChannel = new ClientServerChannel(
-                parentDataContext);
-        UnitLocalConnection connection = new UnitLocalConnection(
-                clientServerChannel,
-                serializationPolicy);
-        ClientChannel channel = new ClientChannel(connection, false,
-        // we want events, but we don't want thread eaks, so creating single threaded EM.
-                // TODO: replace with container managed ClientCase.
-                new DefaultEventManager(0),
-                false);
-        CayenneContext context = new CayenneContext(channel, true, true);
-        context.setQueryCache(new MapQueryCache(10));
-        return context;
-    }
-
-    @Override
-    protected AccessStack buildAccessStack() {
-        return CayenneResources.getResources().getAccessStack(MULTI_TIER_ACCESS_STACK);
-    }
-}
+/*****************************************************************
+ *   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.remote;
+
+import org.apache.cayenne.CayenneContext;
+import org.apache.cayenne.access.ClientServerChannel;
+import org.apache.cayenne.access.DataContext;
+import org.apache.cayenne.cache.MapQueryCache;
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.event.DefaultEventManager;
+import org.apache.cayenne.remote.service.LocalConnection;
+import org.apache.cayenne.unit.UnitLocalConnection;
+import org.apache.cayenne.unit.di.server.ServerCase;
+
+public abstract class RemoteCayenneCase extends ServerCase {
+
+    protected CayenneContext context;
+
+    @Inject
+    protected DataContext parentDataContext;
+
+    /**
+     * Used serialization policy. Per CAY-979 we're testing on all policies
+     */
+    protected int serializationPolicy;
+
+    @Override
+    public void runBare() throws Throwable {
+        serializationPolicy = LocalConnection.HESSIAN_SERIALIZATION;
+        runBareSimple();
+        serializationPolicy = LocalConnection.JAVA_SERIALIZATION;
+        runBareSimple();
+        serializationPolicy = LocalConnection.NO_SERIALIZATION;
+        runBareSimple();
+    }
+
+    protected void runBareSimple() throws Throwable {
+        super.runBare();
+    }
+
+    @Override
+    public void setUpAfterInjection() throws Exception {
+        context = createROPContext();
+    }
+
+    protected CayenneContext createROPContext() {
+        ClientServerChannel clientServerChannel = new ClientServerChannel(
+                parentDataContext);
+        UnitLocalConnection connection = new UnitLocalConnection(
+                clientServerChannel,
+                serializationPolicy);
+        ClientChannel channel = new ClientChannel(connection, false,
+        // we want events, but we don't want thread leaks, so creating single threaded EM.
+                // TODO: replace with container managed ClientCase.
+                new DefaultEventManager(0),
+                false);
+        CayenneContext context = new CayenneContext(channel, true, true);
+        context.setQueryCache(new MapQueryCache(10));
+        return context;
+    }
+}

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RemoteRollbackTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RemoteRollbackTest.java?rev=1104640&r1=1104639&r2=1104640&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RemoteRollbackTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RemoteRollbackTest.java Wed May 18 00:29:49 2011
@@ -21,11 +21,14 @@ package org.apache.cayenne.remote;
 import org.apache.cayenne.PersistenceState;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.testdo.mt.ClientMtTable2;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
 
 /**
  * This is a test primarily for CAY-1103
  */
+@UseServerRuntime("cayenne-multi-tier.xml")
 public class RemoteRollbackTest extends RemoteCayenneCase {
+    
     public void testRollbackNew() {
         ClientMtTable1 o1 = context.newObject(ClientMtTable1.class);
         o1.setGlobalAttribute1("a");