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/02/23 16:19:13 UTC

svn commit: r1073773 - in /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test: java/org/apache/cayenne/ resources/dml/

Author: aadamchik
Date: Wed Feb 23 15:19:13 2011
New Revision: 1073773

URL: http://svn.apache.org/viewvc?rev=1073773&view=rev
Log:
tests cleanup

switching to DI

Removed:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/dml/CDOCollectionRelationshipTest.xml
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/dml/CayenneDataObjectFlattenedRelTest.xml
Modified:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CDOCollectionRelationshipTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CayenneDataObjectFlattenedRelTest.java

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CDOCollectionRelationshipTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CDOCollectionRelationshipTest.java?rev=1073773&r1=1073772&r2=1073773&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CDOCollectionRelationshipTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CDOCollectionRelationshipTest.java Wed Feb 23 15:19:13 2011
@@ -20,29 +20,49 @@ package org.apache.cayenne;
 
 import java.util.Collection;
 
+import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.query.RefreshQuery;
 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.relationship.CollectionToMany;
 import org.apache.cayenne.testdo.relationship.CollectionToManyTarget;
-import org.apache.cayenne.unit.RelationshipCase;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
 
-public class CDOCollectionRelationshipTest extends RelationshipCase {
+@UseServerRuntime(ServerCase.RELATIONSHIPS_PROJECT)
+public class CDOCollectionRelationshipTest extends ServerCase {
+
+    @Inject
+    private ObjectContext context;
+
+    @Inject
+    private DBHelper dbHelper;
 
     @Override
-    protected void setUp() throws Exception {
-        deleteTestData();
+    protected void setUpAfterInjection() throws Exception {
+        dbHelper.deleteAll("COLLECTION_TO_MANY_TARGET");
+        dbHelper.deleteAll("COLLECTION_TO_MANY");
+
+        TableHelper tCollectionToMany = new TableHelper(dbHelper, "COLLECTION_TO_MANY");
+        tCollectionToMany.setColumns("ID");
+
+        TableHelper tCollectionToManyTarget = new TableHelper(
+                dbHelper,
+                "COLLECTION_TO_MANY_TARGET");
+        tCollectionToManyTarget.setColumns("ID", "COLLECTION_TO_MANY_ID");
+
+        // single data set for all tests
+        tCollectionToMany.insert(1).insert(2);
+        tCollectionToManyTarget.insert(1, 1).insert(2, 1).insert(3, 1).insert(4, 2);
     }
 
     public void testReadToMany() throws Exception {
-        createTestData("prepare");
 
-        CollectionToMany o1 = Cayenne.objectForPK(
-                createDataContext(),
-                CollectionToMany.class,
-                1);
+        CollectionToMany o1 = Cayenne.objectForPK(context, CollectionToMany.class, 1);
 
-        Collection targets = o1.getTargets();
+        Collection<?> targets = o1.getTargets();
 
         assertNotNull(targets);
         assertTrue(((ValueHolder) targets).isFault());
@@ -64,16 +84,13 @@ public class CDOCollectionRelationshipTe
     }
 
     public void testReadToManyPrefetching() throws Exception {
-        createTestData("prepare");
 
         SelectQuery query = new SelectQuery(CollectionToMany.class, ExpressionFactory
                 .matchDbExp(CollectionToMany.ID_PK_COLUMN, new Integer(1)));
         query.addPrefetch(CollectionToMany.TARGETS_PROPERTY);
-        CollectionToMany o1 = (CollectionToMany) Cayenne.objectForQuery(
-                createDataContext(),
-                query);
+        CollectionToMany o1 = (CollectionToMany) Cayenne.objectForQuery(context, query);
 
-        Collection targets = o1.getTargets();
+        Collection<?> targets = o1.getTargets();
 
         assertFalse(((ValueHolder) targets).isFault());
 
@@ -95,20 +112,15 @@ public class CDOCollectionRelationshipTe
     }
 
     public void testAddToMany() throws Exception {
-        createTestData("prepare");
 
-        CollectionToMany o1 = Cayenne.objectForPK(
-                createDataContext(),
-                CollectionToMany.class,
-                1);
+        CollectionToMany o1 = Cayenne.objectForPK(context, CollectionToMany.class, 1);
 
-        Collection targets = o1.getTargets();
+        Collection<?> targets = o1.getTargets();
         assertNotNull(targets);
         assertEquals(3, targets.size());
 
-        CollectionToManyTarget newTarget = o1
-                .getObjectContext()
-                .newObject(CollectionToManyTarget.class);
+        CollectionToManyTarget newTarget = o1.getObjectContext().newObject(
+                CollectionToManyTarget.class);
 
         o1.addToTargets(newTarget);
         assertEquals(4, targets.size());
@@ -122,18 +134,16 @@ public class CDOCollectionRelationshipTe
     }
 
     public void testRemoveToMany() throws Exception {
-        createTestData("prepare");
 
-        CollectionToMany o1 = Cayenne.objectForPK(
-                createDataContext(),
-                CollectionToMany.class,
-                1);
+        CollectionToMany o1 = Cayenne.objectForPK(context, CollectionToMany.class, 1);
 
-        Collection targets = o1.getTargets();
+        Collection<?> targets = o1.getTargets();
         assertEquals(3, targets.size());
 
-        CollectionToManyTarget target = Cayenne
-                .objectForPK(o1.getObjectContext(), CollectionToManyTarget.class, 2);
+        CollectionToManyTarget target = Cayenne.objectForPK(
+                o1.getObjectContext(),
+                CollectionToManyTarget.class,
+                2);
         o1.removeFromTargets(target);
 
         assertEquals(2, targets.size());
@@ -148,20 +158,15 @@ public class CDOCollectionRelationshipTe
     }
 
     public void testAddToManyViaReverse() throws Exception {
-        createTestData("prepare");
 
-        CollectionToMany o1 = Cayenne.objectForPK(
-                createDataContext(),
-                CollectionToMany.class,
-                1);
+        CollectionToMany o1 = Cayenne.objectForPK(context, CollectionToMany.class, 1);
 
-        Collection targets = o1.getTargets();
+        Collection<?> targets = o1.getTargets();
         assertNotNull(targets);
         assertEquals(3, targets.size());
 
-        CollectionToManyTarget newTarget = o1
-                .getObjectContext()
-                .newObject(CollectionToManyTarget.class);
+        CollectionToManyTarget newTarget = o1.getObjectContext().newObject(
+                CollectionToManyTarget.class);
 
         newTarget.setCollectionToMany(o1);
         assertEquals(4, targets.size());

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CayenneDataObjectFlattenedRelTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CayenneDataObjectFlattenedRelTest.java?rev=1073773&r1=1073772&r2=1073773&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CayenneDataObjectFlattenedRelTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CayenneDataObjectFlattenedRelTest.java Wed Feb 23 15:19:13 2011
@@ -21,57 +21,99 @@ package org.apache.cayenne;
 
 import java.util.List;
 
-import org.apache.cayenne.access.DataContext;
 import org.apache.cayenne.access.MockDataNode;
+import org.apache.cayenne.configuration.server.ServerRuntime;
+import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.exp.ExpressionFactory;
 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.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;
 
-/**
- * Test case for objects with flattened relationships.
- * 
- */
-// TODO: redefine all test cases in terms of entities in "relationships" map
-// and merge this test case with FlattenedRelationshipsTst that inherits
-// from RelationshipTestCase.
-public class CayenneDataObjectFlattenedRelTest extends CayenneCase {
+@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+public class CayenneDataObjectFlattenedRelTest extends ServerCase {
+
+    @Inject
+    private ServerRuntime runtime;
+
+    @Inject
+    private ObjectContext context;
+
+    @Inject
+    private DBHelper dbHelper;
+
+    @Inject
+    private DataChannelInterceptor queryInterceptor;
+
+    private TableHelper tArtist;
+
+    private TableHelper tArtGroup;
+
+    private TableHelper tArtistGroup;
 
     @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        deleteTestData();
+    protected void setUpAfterInjection() throws Exception {
+        dbHelper.deleteAll("PAINTING_INFO");
+        dbHelper.deleteAll("PAINTING");
+        dbHelper.deleteAll("ARTIST_EXHIBIT");
+        dbHelper.deleteAll("ARTIST_GROUP");
+        dbHelper.deleteAll("ARTIST");
+        dbHelper.deleteAll("ARTGROUP");
+
+        tArtist = new TableHelper(dbHelper, "ARTIST");
+        tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
+
+        tArtGroup = new TableHelper(dbHelper, "ARTGROUP");
+        tArtGroup.setColumns("GROUP_ID", "NAME");
+
+        tArtistGroup = new TableHelper(dbHelper, "ARTIST_GROUP");
+        tArtistGroup.setColumns("ARTIST_ID", "GROUP_ID");
+    }
+
+    private void create1Artist1ArtGroupDataSet() throws Exception {
+        tArtist.insert(33001, "artist1");
+        tArtGroup.insert(1, "g1");
+    }
+
+    private void create1Artist2ArtGroupDataSet() throws Exception {
+        create1Artist1ArtGroupDataSet();
+        tArtGroup.insert(2, "g2");
+    }
+
+    private void create1Artist1ArtGroup1ArtistGroupDataSet() throws Exception {
+        create1Artist1ArtGroupDataSet();
+        tArtistGroup.insert(33001, 1);
     }
 
     public void testReadFlattenedRelationship() throws Exception {
-        DataContext context = createDataContext();
+        create1Artist1ArtGroupDataSet();
 
-        createTestData("testReadFlattenedRelationship");
         Artist a1 = Cayenne.objectForPK(context, Artist.class, 33001);
-        List groupList = a1.getGroupArray();
+        List<ArtGroup> groupList = a1.getGroupArray();
         assertNotNull(groupList);
         assertEquals(0, groupList.size());
     }
 
     public void testReadFlattenedRelationship2() throws Exception {
-        DataContext context = createDataContext();
 
-        createTestData("testReadFlattenedRelationship2");
+        create1Artist1ArtGroup1ArtistGroupDataSet();
 
         Artist a1 = Cayenne.objectForPK(context, Artist.class, 33001);
-        List groupList = a1.getGroupArray();
+        List<ArtGroup> groupList = a1.getGroupArray();
         assertNotNull(groupList);
         assertEquals(1, groupList.size());
-        assertEquals(PersistenceState.COMMITTED, ((ArtGroup) groupList.get(0))
-                .getPersistenceState());
-        assertEquals("g1", ((ArtGroup) groupList.get(0)).getName());
+        assertEquals(PersistenceState.COMMITTED, groupList.get(0).getPersistenceState());
+        assertEquals("g1", groupList.get(0).getName());
     }
 
     public void testAddToFlattenedRelationship() throws Exception {
 
-        createTestData("testAddToFlattenedRelationship");
-        DataContext context = createDataContext();
+        create1Artist1ArtGroupDataSet();
 
         Artist a1 = Cayenne.objectForPK(context, Artist.class, 33001);
         assertEquals(0, a1.getGroupArray().size());
@@ -79,7 +121,7 @@ public class CayenneDataObjectFlattenedR
         SelectQuery q = new SelectQuery(ArtGroup.class, ExpressionFactory.matchExp(
                 "name",
                 "g1"));
-        List results = context.performQuery(q);
+        List<?> results = context.performQuery(q);
         assertEquals(1, results.size());
 
         assertFalse(context.hasChanges());
@@ -87,7 +129,7 @@ public class CayenneDataObjectFlattenedR
         a1.addToGroupArray(group);
         assertTrue(context.hasChanges());
 
-        List groupList = a1.getGroupArray();
+        List<?> groupList = a1.getGroupArray();
         assertEquals(1, groupList.size());
         assertEquals("g1", ((ArtGroup) groupList.get(0)).getName());
 
@@ -98,8 +140,8 @@ public class CayenneDataObjectFlattenedR
         assertFalse(context.hasChanges());
 
         // refetch artist with a different context
-        context = createDataContext();
-        a1 = Cayenne.objectForPK(context, Artist.class, 33001);
+        ObjectContext context2 = runtime.getContext();
+        a1 = Cayenne.objectForPK(context2, Artist.class, 33001);
         groupList = a1.getGroupArray();
         assertEquals(1, groupList.size());
         assertEquals("g1", ((ArtGroup) groupList.get(0)).getName());
@@ -107,21 +149,20 @@ public class CayenneDataObjectFlattenedR
 
     // Test case to show up a bug in committing more than once
     public void testDoubleCommitAddToFlattenedRelationship() throws Exception {
-        createTestData("testDoubleCommitAddToFlattenedRelationship");
-        DataContext context = createDataContext();
+        create1Artist1ArtGroupDataSet();
 
         Artist a1 = Cayenne.objectForPK(context, Artist.class, 33001);
 
         SelectQuery q = new SelectQuery(ArtGroup.class, ExpressionFactory.matchExp(
                 "name",
                 "g1"));
-        List results = context.performQuery(q);
+        List<?> results = context.performQuery(q);
         assertEquals(1, results.size());
 
         ArtGroup group = (ArtGroup) results.get(0);
         a1.addToGroupArray(group);
 
-        List groupList = a1.getGroupArray();
+        List<?> groupList = a1.getGroupArray();
         assertEquals(1, groupList.size());
         assertEquals("g1", ((ArtGroup) groupList.get(0)).getName());
 
@@ -141,15 +182,14 @@ public class CayenneDataObjectFlattenedR
     }
 
     public void testRemoveFromFlattenedRelationship() throws Exception {
-        createTestData("testRemoveFromFlattenedRelationship");
-        DataContext context = createDataContext();
+        create1Artist1ArtGroup1ArtistGroupDataSet();
 
         Artist a1 = Cayenne.objectForPK(context, Artist.class, 33001);
 
         ArtGroup group = a1.getGroupArray().get(0);
         a1.removeFromGroupArray(group);
 
-        List groupList = a1.getGroupArray();
+        List<ArtGroup> groupList = a1.getGroupArray();
         assertEquals(0, groupList.size());
 
         // Ensure that the commit doesn't fail
@@ -160,12 +200,11 @@ public class CayenneDataObjectFlattenedR
         assertEquals(0, groupList.size());
     }
 
-    // Shows up a possible bug in ordering of deletes, when a flattened relationships link
-    // record is deleted
-    // at the same time (same transaction) as one of the record to which it links.
+    // Demonstrates a possible bug in ordering of deletes, when a flattened relationships
+    // link record is deleted at the same time (same transaction) as one of the record to
+    // which it links.
     public void testRemoveFlattenedRelationshipAndRootRecord() throws Exception {
-        DataContext context = createDataContext();
-        createTestData("testRemoveFlattenedRelationshipAndRootRecord");
+        create1Artist1ArtGroup1ArtistGroupDataSet();
         Artist a1 = Cayenne.objectForPK(context, Artist.class, 33001);
 
         ArtGroup group = a1.getGroupArray().get(0);
@@ -183,38 +222,35 @@ public class CayenneDataObjectFlattenedR
     }
 
     public void testAddRemoveFlattenedRelationship1() throws Exception {
-        DataContext context = createDataContext();
-        createTestData("testAddRemoveFlattenedRelationship1");
+        create1Artist1ArtGroupDataSet();
+
         Artist a1 = Cayenne.objectForPK(context, Artist.class, 33001);
 
         SelectQuery q = new SelectQuery(ArtGroup.class, ExpressionFactory.matchExp(
                 "name",
                 "g1"));
-        List results = context.performQuery(q);
+        List<?> results = context.performQuery(q);
         assertEquals(1, results.size());
 
         ArtGroup group = (ArtGroup) results.get(0);
         a1.addToGroupArray(group);
         group.removeFromArtistArray(a1);
 
-        blockQueries();
-        try {
-            context.commitChanges();
-        }
-        finally {
-            unblockQueries();
-        }
+        queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
+
+            public void execute() {
+                context.commitChanges();
+            }
+        });
     }
 
     public void testAddRemoveFlattenedRelationship2() throws Exception {
-        createTestData("testAddRemoveFlattenedRelationship2");
-
-        DataContext context = createDataContext();
+        create1Artist2ArtGroupDataSet();
 
         Artist a1 = Cayenne.objectForPK(context, Artist.class, 33001);
 
         SelectQuery q = new SelectQuery(ArtGroup.class);
-        List results = context.performQuery(q);
+        List<?> results = context.performQuery(q);
         assertEquals(2, results.size());
 
         ArtGroup g1 = (ArtGroup) results.get(0);
@@ -223,17 +259,20 @@ public class CayenneDataObjectFlattenedR
         a1.addToGroupArray(g2);
 
         // test that there is no delete query issued when a flattened join is first
-        // added
-        // and then deleted AND there are some other changes (CAY-548)
+        // added and then deleted AND there are some other changes (CAY-548)
         a1.removeFromGroupArray(g1);
 
-        MockDataNode engine = MockDataNode.interceptNode(getDomain(), getNode());
+        MockDataNode nodeWrapper = MockDataNode.interceptNode(
+                runtime.getDataDomain(),
+                runtime.getDataDomain().getDataNodes().iterator().next());
         try {
             context.commitChanges();
-            assertEquals(1, engine.getRunCount());
+
         }
         finally {
-            engine.stopInterceptNode();
+            nodeWrapper.stopInterceptNode();
         }
+
+        assertEquals(1, nodeWrapper.getRunCount());
     }
 }