Author: aadamchik Date: Sun Apr 24 11:31:47 2011 New Revision: 1096311 URL: http://svn.apache.org/viewvc?rev=1096311&view=rev Log: CAY-1560 CayenneCase tests conversion
patches by Dzmitry Kazimirchyk: FlattenedPrefetchTest.patch Removed: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/dml/access.FlattenedPrefetchTest.xml Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/FlattenedPrefetchTest.java Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/FlattenedPrefetchTest.java URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/FlattenedPrefetchTest.java?rev=1096311&r1=1096310&r2=1096311&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/FlattenedPrefetchTest.java (original) +++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/FlattenedPrefetchTest.java Sun Apr 24 11:31:47 2011 @@ -20,158 +20,204 @@ package org.apache.cayenne.access; import java.util.HashSet; -import java.util.Iterator; import java.util.List; import java.util.Set; +import org.apache.cayenne.ObjectContext; import org.apache.cayenne.PersistenceState; import org.apache.cayenne.ValueHolder; +import org.apache.cayenne.di.Inject; import org.apache.cayenne.query.PrefetchTreeNode; import org.apache.cayenne.query.SelectQuery; +import org.apache.cayenne.test.jdbc.DBHelper; +import org.apache.cayenne.test.jdbc.TableHelper; import org.apache.cayenne.testdo.testmap.ArtGroup; 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; /** */ -public class FlattenedPrefetchTest extends CayenneCase { +@UseServerRuntime(ServerCase.TESTMAP_PROJECT) +public class FlattenedPrefetchTest extends ServerCase { + + @Inject + protected DataChannelInterceptor queryInterceptor; + + @Inject + protected ObjectContext context; + + @Inject + protected DBHelper dbHelper; + + protected TableHelper tArtist; + protected TableHelper tPainting; + protected TableHelper tArtgroup; + protected TableHelper tArtistGroup; @Override - protected void setUp() throws Exception { - super.setUp(); + protected void setUpAfterInjection() throws Exception { + dbHelper.deleteAll("ARTIST"); + dbHelper.deleteAll("PAINTING"); + dbHelper.deleteAll("ARTGROUP"); + dbHelper.deleteAll("ARTIST_GROUP"); + + 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"); - deleteTestData(); + tArtgroup = new TableHelper(dbHelper, "ARTGROUP"); + tArtgroup.setColumns("GROUP_ID", "NAME"); + + tArtistGroup = new TableHelper(dbHelper, "ARTIST_GROUP"); + tArtistGroup.setColumns("ARTIST_ID", "GROUP_ID"); } - public void testManyToMany() throws Exception { + protected void createPrefetchDataSet1() throws Exception { + tArtgroup.insert(33001, "group1"); + tArtgroup.insert(33002, "group2"); + tArtist.insert(33001, "artist1"); + tArtist.insert(33002, "artist2"); + tArtist.insert(33003, "artist3"); + tArtistGroup.insert(33001, 33001); + tArtistGroup.insert(33001, 33002); + tArtistGroup.insert(33002, 33002); + tArtistGroup.insert(33003, 33002); + } - createTestData("testPrefetch1"); + protected void createPrefetchDataSet2() throws Exception { + tArtgroup.insert(33001, "group1"); + tArtgroup.insert(33002, "group2"); + tArtist.insert(33001, "artist1"); + tArtist.insert(33002, "artist2"); + tArtist.insert(33003, "artist3"); + tArtistGroup.insert(33001, 33001); + tArtistGroup.insert(33001, 33002); + tArtistGroup.insert(33002, 33002); + tArtistGroup.insert(33003, 33002); + tPainting.insert(33001, "P_artist11", 33001, 1000); + tPainting.insert(33002, "P_artist12", 33001, 2000); + tPainting.insert(33003, "P_artist21", 33002, 3000); + } + + public void testManyToMany() throws Exception { + createPrefetchDataSet1(); SelectQuery q = new SelectQuery(Artist.class); q.addPrefetch(Artist.GROUP_ARRAY_PROPERTY); - DataContext context = createDataContext(); + final List<Artist> objects = context.performQuery(q); - List objects = context.performQuery(q); + queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() { - blockQueries(); - try { + public void execute() { + assertEquals(3, objects.size()); - assertEquals(3, objects.size()); + for (Artist a : objects) { + List<ArtGroup> list = a.getGroupArray(); - Iterator it = objects.iterator(); - while (it.hasNext()) { - Artist a = (Artist) it.next(); - List list = a.getGroupArray(); + assertNotNull(list); + assertFalse( + "artist's groups not resolved: " + a, + ((ValueHolder) list).isFault()); + assertTrue(list.size() > 0); - assertNotNull(list); - assertFalse("artist's groups not resolved: " + a, ((ValueHolder) list).isFault()); - assertTrue(list.size() > 0); + for (ArtGroup g : list) { + assertEquals(PersistenceState.COMMITTED, g.getPersistenceState()); + } - Iterator children = list.iterator(); - while (children.hasNext()) { - ArtGroup g = (ArtGroup) children.next(); - assertEquals(PersistenceState.COMMITTED, g.getPersistenceState()); + // assert no duplicates + Set<ArtGroup> s = new HashSet<ArtGroup>(list); + assertEquals(s.size(), list.size()); } - - // assert no duplicates - Set s = new HashSet(list); - assertEquals(s.size(), list.size()); } - } - finally { - unblockQueries(); - } + }); } public void testMultiPrefetch() throws Exception { - createTestData("testPrefetch2"); + createPrefetchDataSet2(); SelectQuery q = new SelectQuery(Painting.class); q.addPrefetch(Painting.TO_ARTIST_PROPERTY); q.addPrefetch(Painting.TO_ARTIST_PROPERTY + '.' + Artist.GROUP_ARRAY_PROPERTY); - DataContext context = createDataContext(); + final List<Painting> objects = context.performQuery(q); - List objects = context.performQuery(q); + queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() { - blockQueries(); + public void execute() { + assertEquals(3, objects.size()); - try { - assertEquals(3, objects.size()); - - Iterator it = objects.iterator(); - while (it.hasNext()) { - Painting p = (Painting) it.next(); - Artist a = p.getToArtist(); - assertEquals(PersistenceState.COMMITTED, a.getPersistenceState()); - - List list = a.getGroupArray(); - assertNotNull(list); - assertFalse("artist's groups not resolved: " + a, ((ValueHolder)list).isFault()); - assertTrue(list.size() > 0); - - Iterator children = list.iterator(); - while (children.hasNext()) { - ArtGroup g = (ArtGroup) children.next(); - assertEquals(PersistenceState.COMMITTED, g.getPersistenceState()); + for (Painting p : objects) { + Artist a = p.getToArtist(); + assertEquals(PersistenceState.COMMITTED, a.getPersistenceState()); + + List<ArtGroup> list = a.getGroupArray(); + assertNotNull(list); + assertFalse( + "artist's groups not resolved: " + a, + ((ValueHolder) list).isFault()); + assertTrue(list.size() > 0); + + for (ArtGroup g : list) { + assertEquals(PersistenceState.COMMITTED, g.getPersistenceState()); + } + + // assert no duplicates + Set<ArtGroup> s = new HashSet<ArtGroup>(list); + assertEquals(s.size(), list.size()); } - - // assert no duplicates - Set s = new HashSet(list); - assertEquals(s.size(), list.size()); } - } - finally { - unblockQueries(); - } + }); } public void testJointManyToMany() throws Exception { - createTestData("testPrefetch1"); + createPrefetchDataSet1(); SelectQuery q = new SelectQuery(Artist.class); q.addPrefetch(Artist.GROUP_ARRAY_PROPERTY).setSemantics( PrefetchTreeNode.JOINT_PREFETCH_SEMANTICS); - DataContext context = createDataContext(); - - List objects = context.performQuery(q); + final List<Artist> objects = context.performQuery(q); - blockQueries(); + queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() { - try { + public void execute() { + assertEquals(3, objects.size()); - assertEquals(3, objects.size()); + for (Artist a : objects) { + List<ArtGroup> list = a.getGroupArray(); - Iterator it = objects.iterator(); - while (it.hasNext()) { - Artist a = (Artist) it.next(); - List list = a.getGroupArray(); + assertNotNull(list); + assertFalse( + "artist's groups not resolved: " + a, + ((ValueHolder) list).isFault()); + assertTrue(list.size() > 0); - assertNotNull(list); - assertFalse("artist's groups not resolved: " + a, ((ValueHolder) list).isFault()); - assertTrue(list.size() > 0); + for (ArtGroup g : list) { + assertEquals(PersistenceState.COMMITTED, g.getPersistenceState()); + } - Iterator children = list.iterator(); - while (children.hasNext()) { - ArtGroup g = (ArtGroup) children.next(); - assertEquals(PersistenceState.COMMITTED, g.getPersistenceState()); + // assert no duplicates + Set<ArtGroup> s = new HashSet<ArtGroup>(list); + assertEquals(s.size(), list.size()); } - - // assert no duplicates - Set s = new HashSet(list); - assertEquals(s.size(), list.size()); } - } - finally { - unblockQueries(); - } + }); + } public void testJointMultiPrefetch() throws Exception { - createTestData("testPrefetch2"); + createPrefetchDataSet2(); SelectQuery q = new SelectQuery(Painting.class); q.addPrefetch(Painting.TO_ARTIST_PROPERTY).setSemantics( @@ -181,39 +227,34 @@ public class FlattenedPrefetchTest exten Painting.TO_ARTIST_PROPERTY + '.' + Artist.GROUP_ARRAY_PROPERTY) .setSemantics(PrefetchTreeNode.JOINT_PREFETCH_SEMANTICS); - DataContext context = createDataContext(); + final List<Painting> objects = context.performQuery(q); - List objects = context.performQuery(q); + queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() { - blockQueries(); - try { - assertEquals(3, objects.size()); - - Iterator it = objects.iterator(); - while (it.hasNext()) { - Painting p = (Painting) it.next(); - Artist a = p.getToArtist(); - assertEquals(PersistenceState.COMMITTED, a.getPersistenceState()); - - List list = a.getGroupArray(); - assertNotNull(list); - assertFalse("artist's groups not resolved: " + a, ((ValueHolder) list).isFault()); - assertTrue(list.size() > 0); - - Iterator children = list.iterator(); - while (children.hasNext()) { - ArtGroup g = (ArtGroup) children.next(); - assertEquals(PersistenceState.COMMITTED, g.getPersistenceState()); - } + public void execute() { + assertEquals(3, objects.size()); + + for (Painting p : objects) { + Artist a = p.getToArtist(); + assertEquals(PersistenceState.COMMITTED, a.getPersistenceState()); + + List<ArtGroup> list = a.getGroupArray(); + assertNotNull(list); + assertFalse( + "artist's groups not resolved: " + a, + ((ValueHolder) list).isFault()); + assertTrue(list.size() > 0); - // assert no duplicates + for (ArtGroup g : list) { + assertEquals(PersistenceState.COMMITTED, g.getPersistenceState()); + } - Set s = new HashSet(list); - assertEquals(s.size(), list.size()); + // assert no duplicates + + Set<ArtGroup> s = new HashSet<ArtGroup>(list); + assertEquals(s.size(), list.size()); + } } - } - finally { - unblockQueries(); - } + }); } }