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