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");