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/19 03:48:14 UTC
svn commit: r1124503 - in
/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test:
java/org/apache/cayenne/access/NestedDataContextReadTest.java
resources/dml/access.NestedDataContextReadTest.xml
Author: aadamchik
Date: Thu May 19 01:48:13 2011
New Revision: 1124503
URL: http://svn.apache.org/viewvc?rev=1124503&view=rev
Log:
CAY-1565 CayenneCase unit tests conversion(5)
patches by Dzmitry Kazimirchyk - NestedDataContextReadTest
Removed:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/dml/access.NestedDataContextReadTest.xml
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextReadTest.java
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextReadTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextReadTest.java?rev=1124503&r1=1124502&r2=1124503&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextReadTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextReadTest.java Thu May 19 01:48:13 2011
@@ -30,31 +30,94 @@ import org.apache.cayenne.ObjectContext;
import org.apache.cayenne.ObjectId;
import org.apache.cayenne.PersistenceState;
import org.apache.cayenne.Persistent;
+import org.apache.cayenne.di.Inject;
import org.apache.cayenne.query.ObjectIdQuery;
import org.apache.cayenne.query.SelectQuery;
import org.apache.cayenne.query.SortOrder;
+import org.apache.cayenne.test.jdbc.DBHelper;
+import org.apache.cayenne.test.jdbc.TableHelper;
import org.apache.cayenne.testdo.testmap.Artist;
import org.apache.cayenne.testdo.testmap.Painting;
-import org.apache.cayenne.unit.CayenneCase;
+import org.apache.cayenne.unit.di.DataChannelInterceptor;
+import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+
+@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+public class NestedDataContextReadTest extends ServerCase {
+
+ @Inject
+ private DataContext context;
+
+ @Inject
+ private DataChannelInterceptor queryInterceptor;
+
+ @Inject
+ private DBHelper dbHelper;
+
+ private TableHelper tArtist;
+ private TableHelper tPainting;
+
+ @Override
+ protected void setUpAfterInjection() throws Exception {
+ dbHelper.deleteAll("PAINTING_INFO");
+ dbHelper.deleteAll("PAINTING");
+ dbHelper.deleteAll("ARTIST_EXHIBIT");
+ dbHelper.deleteAll("ARTIST_GROUP");
+ dbHelper.deleteAll("ARTIST");
+
+ tArtist = new TableHelper(dbHelper, "ARTIST");
+ tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
+
+ tPainting = new TableHelper(dbHelper, "PAINTING");
+ tPainting.setColumns(
+ "PAINTING_ID",
+ "PAINTING_TITLE",
+ "ARTIST_ID",
+ "ESTIMATED_PRICE");
+ }
+
+ private void createArtistsDataSet() throws Exception {
+ tArtist.insert(33001, "artist1");
+ tArtist.insert(33002, "artist2");
+ tArtist.insert(33003, "artist3");
+ tArtist.insert(33004, "artist4");
+ }
-public class NestedDataContextReadTest extends CayenneCase {
+ private void createRelationshipDataSet() throws Exception {
+ tArtist.insert(33001, "artist1");
+ tArtist.insert(33002, "artist2");
+ tArtist.insert(33003, "artist3");
+ tArtist.insert(33004, "artist4");
+ tPainting.insert(33001, "P_artist1", 33001, 3000);
+ tPainting.insert(33002, "P_artist2", 33002, 3000);
+ tPainting.insert(33003, "P_artist3", 33003, 3000);
+ tPainting.insert(33004, "P_artist4", 33004, 3000);
+ tPainting.insert(33005, "P_artist5", null, 3000);
+ }
+
+ private void createPrefetchingDataSet() throws Exception {
+ tArtist.insert(33001, "artist1");
+ tArtist.insert(33002, "artist2");
+ tPainting.insert(33001, "P_artist1", 33001, 3000);
+ tPainting.insert(33006, "P_artist6", 33001, 3000);
+ }
public void testCreateChildDataContext() {
- DataContext parent = createDataContext();
- parent.setValidatingObjectsOnCommit(true);
+ context.setValidatingObjectsOnCommit(true);
- ObjectContext child1 = parent.createChildContext();
+ ObjectContext child1 = context.createChildContext();
assertNotNull(child1);
- assertSame(parent, child1.getChannel());
+ assertSame(context, child1.getChannel());
assertTrue(((DataContext) child1).isValidatingObjectsOnCommit());
- parent.setValidatingObjectsOnCommit(false);
+ context.setValidatingObjectsOnCommit(false);
- ObjectContext child2 = parent.createChildContext();
+ ObjectContext child2 = context.createChildContext();
assertNotNull(child2);
- assertSame(parent, child2.getChannel());
+ assertSame(context, child2.getChannel());
assertFalse(((DataContext) child2).isValidatingObjectsOnCommit());
// second level of nesting
@@ -66,19 +129,17 @@ public class NestedDataContextReadTest e
}
public void testLocalObjectSynchronize() throws Exception {
- deleteTestData();
- createTestData("testArtists");
+ createArtistsDataSet();
- DataContext context = createDataContext();
- ObjectContext childContext = context.createChildContext();
+ final ObjectContext childContext = context.createChildContext();
- Persistent _new = context.newObject(Artist.class);
+ final Persistent _new = context.newObject(Artist.class);
- Persistent hollow = context.localObject(new ObjectId(
+ final Persistent hollow = context.localObject(new ObjectId(
"Artist",
Artist.ARTIST_ID_PK_COLUMN,
33001), null);
- DataObject committed = (DataObject) Cayenne.objectForQuery(
+ final DataObject committed = (DataObject) Cayenne.objectForQuery(
context,
new ObjectIdQuery(new ObjectId(
"Artist",
@@ -86,14 +147,14 @@ public class NestedDataContextReadTest e
33002)));
int modifiedId = 33003;
- Artist modified = (Artist) Cayenne.objectForQuery(
+ final Artist modified = (Artist) Cayenne.objectForQuery(
context,
new ObjectIdQuery(new ObjectId(
"Artist",
Artist.ARTIST_ID_PK_COLUMN,
modifiedId)));
modified.setArtistName("M1");
- DataObject deleted = (DataObject) Cayenne.objectForQuery(
+ final DataObject deleted = (DataObject) Cayenne.objectForQuery(
context,
new ObjectIdQuery(new ObjectId(
"Artist",
@@ -109,69 +170,68 @@ public class NestedDataContextReadTest e
// now check how objects in different state behave
- blockQueries();
+ queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
- try {
+ public void execute() {
+ Persistent newPeer = childContext.localObject(_new.getObjectId(), _new);
- Persistent newPeer = childContext.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(childContext, newPeer.getObjectContext());
+ assertSame(context, _new.getObjectContext());
+
+ Persistent hollowPeer = childContext.localObject(
+ hollow.getObjectId(),
+ hollow);
+ assertEquals(PersistenceState.HOLLOW, hollowPeer.getPersistenceState());
+ assertEquals(hollow.getObjectId(), hollowPeer.getObjectId());
+ assertSame(childContext, hollowPeer.getObjectContext());
+ assertSame(context, hollow.getObjectContext());
+
+ Persistent committedPeer = childContext.localObject(committed
+ .getObjectId(), committed);
+ assertEquals(PersistenceState.COMMITTED, committedPeer
+ .getPersistenceState());
+ assertEquals(committed.getObjectId(), committedPeer.getObjectId());
+ assertSame(childContext, committedPeer.getObjectContext());
+ assertSame(context, committed.getObjectContext());
+
+ Artist modifiedPeer = (Artist) childContext.localObject(modified
+ .getObjectId(), modified);
+ assertEquals(PersistenceState.COMMITTED, modifiedPeer
+ .getPersistenceState());
+ assertEquals(modified.getObjectId(), modifiedPeer.getObjectId());
+ assertEquals("M1", modifiedPeer.getArtistName());
+ assertSame(childContext, modifiedPeer.getObjectContext());
+ assertSame(context, modified.getObjectContext());
+
+ Persistent deletedPeer = childContext.localObject(
+ deleted.getObjectId(),
+ deleted);
+ assertEquals(PersistenceState.COMMITTED, deletedPeer
+ .getPersistenceState());
+ assertEquals(deleted.getObjectId(), deletedPeer.getObjectId());
+ assertSame(childContext, deletedPeer.getObjectContext());
+ assertSame(context, deleted.getObjectContext());
- assertSame(childContext, newPeer.getObjectContext());
- assertSame(context, _new.getObjectContext());
-
- Persistent hollowPeer = childContext
- .localObject(hollow.getObjectId(), hollow);
- assertEquals(PersistenceState.HOLLOW, hollowPeer.getPersistenceState());
- assertEquals(hollow.getObjectId(), hollowPeer.getObjectId());
- assertSame(childContext, hollowPeer.getObjectContext());
- assertSame(context, hollow.getObjectContext());
-
- Persistent committedPeer = childContext.localObject(
- committed.getObjectId(),
- committed);
- assertEquals(PersistenceState.COMMITTED, committedPeer.getPersistenceState());
- assertEquals(committed.getObjectId(), committedPeer.getObjectId());
- assertSame(childContext, committedPeer.getObjectContext());
- assertSame(context, committed.getObjectContext());
-
- Artist modifiedPeer = (Artist) childContext.localObject(modified
- .getObjectId(), modified);
- assertEquals(PersistenceState.COMMITTED, modifiedPeer.getPersistenceState());
- assertEquals(modified.getObjectId(), modifiedPeer.getObjectId());
- assertEquals("M1", modifiedPeer.getArtistName());
- assertSame(childContext, modifiedPeer.getObjectContext());
- assertSame(context, modified.getObjectContext());
-
- Persistent deletedPeer = childContext.localObject(
- deleted.getObjectId(),
- deleted);
- assertEquals(PersistenceState.COMMITTED, deletedPeer.getPersistenceState());
- assertEquals(deleted.getObjectId(), deletedPeer.getObjectId());
- assertSame(childContext, deletedPeer.getObjectContext());
- assertSame(context, deleted.getObjectContext());
- }
- finally {
- unblockQueries();
- }
+ }
+ });
}
public void testLocalObjectsNoOverride() throws Exception {
- deleteTestData();
- createTestData("testArtists");
+ createArtistsDataSet();
- DataContext context = createDataContext();
- ObjectContext childContext = context.createChildContext();
+ final ObjectContext childContext = context.createChildContext();
int modifiedId = 33003;
- Artist modified = (Artist) Cayenne.objectForQuery(
+ final Artist modified = (Artist) Cayenne.objectForQuery(
context,
new ObjectIdQuery(new ObjectId(
"Artist",
Artist.ARTIST_ID_PK_COLUMN,
modifiedId)));
- Artist peerModified = (Artist) Cayenne.objectForQuery(
+ final Artist peerModified = (Artist) Cayenne.objectForQuery(
childContext,
new ObjectIdQuery(new ObjectId(
"Artist",
@@ -184,84 +244,73 @@ public class NestedDataContextReadTest e
assertEquals(PersistenceState.MODIFIED, modified.getPersistenceState());
assertEquals(PersistenceState.MODIFIED, peerModified.getPersistenceState());
- blockQueries();
+ queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
- try {
-
- Persistent peerModified2 = childContext.localObject(
- modified.getObjectId(),
- modified);
- assertSame(peerModified, peerModified2);
- assertEquals(PersistenceState.MODIFIED, peerModified2.getPersistenceState());
- assertEquals("M2", peerModified.getArtistName());
- assertEquals("M1", modified.getArtistName());
- }
- finally {
- unblockQueries();
- }
+ public void execute() {
+ Persistent peerModified2 = childContext.localObject(modified
+ .getObjectId(), modified);
+ assertSame(peerModified, peerModified2);
+ assertEquals(PersistenceState.MODIFIED, peerModified2
+ .getPersistenceState());
+ assertEquals("M2", peerModified.getArtistName());
+ assertEquals("M1", modified.getArtistName());
+ }
+ });
}
public void testLocalObjectRelationship() throws Exception {
- deleteTestData();
- DataContext context = createDataContext();
- ObjectContext childContext = context.createChildContext();
+ final ObjectContext childContext = context.createChildContext();
Artist _new = context.newObject(Artist.class);
- Painting _newP = context.newObject(Painting.class);
+ final Painting _newP = context.newObject(Painting.class);
_new.addToPaintingArray(_newP);
- blockQueries();
-
- try {
+ queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
- Painting painting = (Painting) childContext.localObject(_newP.getObjectId(), _newP);
- assertEquals(PersistenceState.COMMITTED, painting.getPersistenceState());
- assertNotNull(painting.getToArtist());
- assertEquals(PersistenceState.COMMITTED, painting.getToArtist().getPersistenceState());
- }
- finally {
- unblockQueries();
- }
+ public void execute() {
+ Painting painting = (Painting) childContext.localObject(_newP
+ .getObjectId(), _newP);
+ assertEquals(PersistenceState.COMMITTED, painting.getPersistenceState());
+ assertNotNull(painting.getToArtist());
+ assertEquals(PersistenceState.COMMITTED, painting
+ .getToArtist()
+ .getPersistenceState());
+ }
+ });
}
public void testSelect() throws Exception {
- deleteTestData();
- createTestData("testArtists");
+ createArtistsDataSet();
- DataContext parent = createDataContext();
- ObjectContext child = parent.createChildContext();
+ ObjectContext child = context.createChildContext();
// test how different object states appear in the child on select
- Persistent _new = parent.newObject(Artist.class);
+ Persistent _new = context.newObject(Artist.class);
- Persistent hollow = parent.localObject(new ObjectId(
+ Persistent hollow = context.localObject(new ObjectId(
"Artist",
Artist.ARTIST_ID_PK_COLUMN,
33001), null);
DataObject committed = (DataObject) Cayenne.objectForQuery(
- parent,
+ context,
new ObjectIdQuery(new ObjectId(
"Artist",
Artist.ARTIST_ID_PK_COLUMN,
33002)));
int modifiedId = 33003;
- Artist modified = (Artist) Cayenne.objectForQuery(
- parent,
- new ObjectIdQuery(new ObjectId(
- "Artist",
- Artist.ARTIST_ID_PK_COLUMN,
- modifiedId)));
+ Artist modified = (Artist) Cayenne.objectForQuery(context, new ObjectIdQuery(
+ new ObjectId("Artist", Artist.ARTIST_ID_PK_COLUMN, modifiedId)));
modified.setArtistName("MODDED");
DataObject deleted = (DataObject) Cayenne.objectForQuery(
- parent,
+ context,
new ObjectIdQuery(new ObjectId(
"Artist",
Artist.ARTIST_ID_PK_COLUMN,
33004)));
- parent.deleteObject(deleted);
+ context.deleteObject(deleted);
assertEquals(PersistenceState.HOLLOW, hollow.getPersistenceState());
assertEquals(PersistenceState.COMMITTED, committed.getPersistenceState());
@@ -269,10 +318,10 @@ public class NestedDataContextReadTest e
assertEquals(PersistenceState.DELETED, deleted.getPersistenceState());
assertEquals(PersistenceState.NEW, _new.getPersistenceState());
- List objects = child.performQuery(new SelectQuery(Artist.class));
+ List<?> objects = child.performQuery(new SelectQuery(Artist.class));
assertEquals("All but NEW object must have been included", 4, objects.size());
- Iterator it = objects.iterator();
+ Iterator<?> it = objects.iterator();
while (it.hasNext()) {
DataObject next = (DataObject) it.next();
assertEquals(PersistenceState.COMMITTED, next.getPersistenceState());
@@ -285,11 +334,9 @@ public class NestedDataContextReadTest e
}
public void testReadToOneRelationship() throws Exception {
- deleteTestData();
- createTestData("testReadRelationship");
+ createRelationshipDataSet();
- DataContext parent = createDataContext();
- ObjectContext child = parent.createChildContext();
+ final ObjectContext child = context.createChildContext();
// test how different object states appear in the child on select
@@ -300,38 +347,38 @@ public class NestedDataContextReadTest e
int newTargetSrcId = 33005;
Painting hollowTargetSrc = Cayenne.objectForPK(
- parent,
+ context,
Painting.class,
hollowTargetSrcId);
Artist hollowTarget = hollowTargetSrc.getToArtist();
Painting modifiedTargetSrc = Cayenne.objectForPK(
- parent,
+ context,
Painting.class,
modifiedTargetSrcId);
Artist modifiedTarget = modifiedTargetSrc.getToArtist();
modifiedTarget.setArtistName("M1");
- Painting deletedTargetSrc = Cayenne.objectForPK(
- parent,
+ final Painting deletedTargetSrc = Cayenne.objectForPK(
+ context,
Painting.class,
deletedTargetSrcId);
Artist deletedTarget = deletedTargetSrc.getToArtist();
deletedTargetSrc.setToArtist(null);
- parent.deleteObject(deletedTarget);
+ context.deleteObject(deletedTarget);
Painting committedTargetSrc = Cayenne.objectForPK(
- parent,
+ context,
Painting.class,
committedTargetSrcId);
Artist committedTarget = committedTargetSrc.getToArtist();
committedTarget.getArtistName();
- Painting newTargetSrc = Cayenne.objectForPK(
- parent,
+ final Painting newTargetSrc = Cayenne.objectForPK(
+ context,
Painting.class,
newTargetSrcId);
- Artist newTarget = parent.newObject(Artist.class);
+ Artist newTarget = context.newObject(Artist.class);
newTarget.setArtistName("N1");
newTargetSrc.setToArtist(newTarget);
@@ -350,59 +397,60 @@ public class NestedDataContextReadTest e
// run an ordered query, so we can address specific objects directly by index
SelectQuery q = new SelectQuery(Painting.class);
q.addOrdering(Painting.PAINTING_TITLE_PROPERTY, SortOrder.ASCENDING);
- List childSources = child.performQuery(q);
+ final List<?> childSources = child.performQuery(q);
assertEquals(5, childSources.size());
- blockQueries();
- try {
- Painting childHollowTargetSrc = (Painting) childSources.get(0);
- assertSame(child, childHollowTargetSrc.getObjectContext());
- Artist childHollowTarget = childHollowTargetSrc.getToArtist();
- assertNotNull(childHollowTarget);
- assertEquals(PersistenceState.HOLLOW, childHollowTarget.getPersistenceState());
- assertSame(child, childHollowTarget.getObjectContext());
-
- Artist childModifiedTarget = ((Painting) childSources.get(1)).getToArtist();
-
- assertEquals(PersistenceState.COMMITTED, childModifiedTarget
- .getPersistenceState());
- assertSame(child, childModifiedTarget.getObjectContext());
- assertEquals("M1", childModifiedTarget.getArtistName());
-
- Painting childDeletedTargetSrc = (Painting) childSources.get(2);
- // make sure we got the right object...
- assertEquals(deletedTargetSrc.getObjectId(), childDeletedTargetSrc
- .getObjectId());
- Artist childDeletedTarget = childDeletedTargetSrc.getToArtist();
- assertNull(childDeletedTarget);
-
- Artist childCommittedTarget = ((Painting) childSources.get(3)).getToArtist();
- assertEquals(PersistenceState.COMMITTED, childCommittedTarget
- .getPersistenceState());
- assertSame(child, childCommittedTarget.getObjectContext());
-
- Painting childNewTargetSrc = (Painting) childSources.get(4);
- // make sure we got the right object...
- assertEquals(newTargetSrc.getObjectId(), childNewTargetSrc.getObjectId());
- Artist childNewTarget = childNewTargetSrc.getToArtist();
- assertNotNull(childNewTarget);
- assertEquals(PersistenceState.COMMITTED, childNewTarget.getPersistenceState());
- assertSame(child, childNewTarget.getObjectContext());
- assertEquals("N1", childNewTarget.getArtistName());
- }
- finally {
- unblockQueries();
- }
+ queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
+
+ public void execute() {
+ Painting childHollowTargetSrc = (Painting) childSources.get(0);
+ assertSame(child, childHollowTargetSrc.getObjectContext());
+ Artist childHollowTarget = childHollowTargetSrc.getToArtist();
+ assertNotNull(childHollowTarget);
+ assertEquals(PersistenceState.HOLLOW, childHollowTarget
+ .getPersistenceState());
+ assertSame(child, childHollowTarget.getObjectContext());
+
+ Artist childModifiedTarget = ((Painting) childSources.get(1))
+ .getToArtist();
+
+ assertEquals(PersistenceState.COMMITTED, childModifiedTarget
+ .getPersistenceState());
+ assertSame(child, childModifiedTarget.getObjectContext());
+ assertEquals("M1", childModifiedTarget.getArtistName());
+
+ Painting childDeletedTargetSrc = (Painting) childSources.get(2);
+ // make sure we got the right object...
+ assertEquals(deletedTargetSrc.getObjectId(), childDeletedTargetSrc
+ .getObjectId());
+ Artist childDeletedTarget = childDeletedTargetSrc.getToArtist();
+ assertNull(childDeletedTarget);
+
+ Artist childCommittedTarget = ((Painting) childSources.get(3))
+ .getToArtist();
+ assertEquals(PersistenceState.COMMITTED, childCommittedTarget
+ .getPersistenceState());
+ assertSame(child, childCommittedTarget.getObjectContext());
+
+ Painting childNewTargetSrc = (Painting) childSources.get(4);
+ // make sure we got the right object...
+ assertEquals(newTargetSrc.getObjectId(), childNewTargetSrc.getObjectId());
+ Artist childNewTarget = childNewTargetSrc.getToArtist();
+ assertNotNull(childNewTarget);
+ assertEquals(PersistenceState.COMMITTED, childNewTarget
+ .getPersistenceState());
+ assertSame(child, childNewTarget.getObjectContext());
+ assertEquals("N1", childNewTarget.getArtistName());
+ }
+ });
}
public void testPrefetchingToOne() throws Exception {
- deleteTestData();
- createTestData("testPrefetching");
+ createPrefetchingDataSet();
- DataContext parent = createDataContext();
- ObjectContext child = parent.createChildContext();
+ final ObjectContext child = context.createChildContext();
- ObjectId prefetchedId = new ObjectId(
+ final ObjectId prefetchedId = new ObjectId(
"Artist",
Artist.ARTIST_ID_PK_COLUMN,
new Integer(33001));
@@ -411,78 +459,73 @@ public class NestedDataContextReadTest e
q.addOrdering(Painting.PAINTING_TITLE_PROPERTY, SortOrder.ASCENDING);
q.addPrefetch(Painting.TO_ARTIST_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()) {
- Painting o = (Painting) it.next();
- assertEquals(PersistenceState.COMMITTED, o.getPersistenceState());
- assertSame(child, o.getObjectContext());
+ // blockQueries();
- Artist o1 = o.getToArtist();
- assertNotNull(o1);
- assertEquals(PersistenceState.COMMITTED, o1.getPersistenceState());
- assertSame(child, o1.getObjectContext());
- assertEquals(prefetchedId, o1.getObjectId());
+ queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
+
+ public void execute() {
+ assertEquals(2, results.size());
+ Iterator<?> it = results.iterator();
+ while (it.hasNext()) {
+ Painting o = (Painting) it.next();
+ assertEquals(PersistenceState.COMMITTED, o.getPersistenceState());
+ assertSame(child, o.getObjectContext());
+
+ Artist o1 = o.getToArtist();
+ assertNotNull(o1);
+ assertEquals(PersistenceState.COMMITTED, o1.getPersistenceState());
+ assertSame(child, o1.getObjectContext());
+ assertEquals(prefetchedId, o1.getObjectId());
+ }
}
- }
- finally {
- unblockQueries();
- }
+ });
}
public void testPrefetchingToMany() throws Exception {
- deleteTestData();
- createTestData("testPrefetching");
+ createPrefetchingDataSet();
- DataContext parent = createDataContext();
- ObjectContext child = parent.createChildContext();
+ final ObjectContext child = context.createChildContext();
SelectQuery q = new SelectQuery(Artist.class);
q.addOrdering(Artist.ARTIST_NAME_PROPERTY, SortOrder.ASCENDING);
q.addPrefetch(Artist.PAINTING_ARRAY_PROPERTY);
- List results = child.performQuery(q);
+ final List<?> results = child.performQuery(q);
- blockQueries();
- try {
+ queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
- Artist o1 = (Artist) results.get(0);
- assertEquals(PersistenceState.COMMITTED, o1.getPersistenceState());
- assertSame(child, o1.getObjectContext());
+ public void execute() {
+ Artist o1 = (Artist) results.get(0);
+ assertEquals(PersistenceState.COMMITTED, o1.getPersistenceState());
+ assertSame(child, o1.getObjectContext());
- List children1 = o1.getPaintingArray();
+ List<?> children1 = o1.getPaintingArray();
- assertEquals(2, children1.size());
- Iterator it = children1.iterator();
- while (it.hasNext()) {
- Painting o = (Painting) it.next();
- assertEquals(PersistenceState.COMMITTED, o.getPersistenceState());
- assertSame(child, o.getObjectContext());
+ assertEquals(2, children1.size());
+ Iterator<?> it = children1.iterator();
+ while (it.hasNext()) {
+ Painting o = (Painting) it.next();
+ assertEquals(PersistenceState.COMMITTED, o.getPersistenceState());
+ assertSame(child, o.getObjectContext());
- assertEquals(o1, o.getToArtist());
- }
+ assertEquals(o1, o.getToArtist());
+ }
- Artist o2 = (Artist) results.get(1);
- assertEquals(PersistenceState.COMMITTED, o2.getPersistenceState());
- assertSame(child, o2.getObjectContext());
+ Artist o2 = (Artist) results.get(1);
+ assertEquals(PersistenceState.COMMITTED, o2.getPersistenceState());
+ assertSame(child, o2.getObjectContext());
- List children2 = o2.getPaintingArray();
+ List<?> children2 = o2.getPaintingArray();
- assertEquals(0, children2.size());
- }
- finally {
- unblockQueries();
- }
+ assertEquals(0, children2.size());
+ }
+ });
}
public void testObjectFromDataRow() throws Exception {
- deleteTestData();
- DataContext context = createDataContext();
DataContext childContext = (DataContext) context.createChildContext();
DataRow row = new DataRow(8);
@@ -490,7 +533,7 @@ public class NestedDataContextReadTest e
row.put("ARTIST_NAME", "A");
row.put("DATE_OF_BIRTH", new Date());
- Artist artist = childContext.objectFromDataRow(Artist.class, row, true);
+ Artist artist = childContext.objectFromDataRow(Artist.class, row);
assertNotNull(artist);
assertEquals(PersistenceState.COMMITTED, artist.getPersistenceState());
assertSame(childContext, artist.getObjectContext());