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();
-        }
+        });
     }
 }


Reply via email to