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 2006/05/17 01:00:45 UTC
svn commit: r407100 - in
/incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests:
java/org/objectstyle/cayenne/ java/org/objectstyle/cayenne/unit/
resources/dml/
Author: aadamchik
Date: Tue May 16 16:00:38 2006
New Revision: 407100
URL: http://svn.apache.org/viewcvs?rev=407100&view=rev
Log:
Refactoring tests as a part of CAY-548 investigation
Added:
incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/resources/dml/CayenneDataObjectFlattenedRelTst.xml
Modified:
incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/java/org/objectstyle/cayenne/CayenneDOTestBase.java
incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/java/org/objectstyle/cayenne/CayenneDataObjectFlattenedRelTst.java
incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/java/org/objectstyle/cayenne/unit/TestCaseDataFactory.java
Modified: incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/java/org/objectstyle/cayenne/CayenneDOTestBase.java
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/java/org/objectstyle/cayenne/CayenneDOTestBase.java?rev=407100&r1=407099&r2=407100&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/java/org/objectstyle/cayenne/CayenneDOTestBase.java (original)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/java/org/objectstyle/cayenne/CayenneDOTestBase.java Tue May 16 16:00:38 2006
@@ -74,8 +74,7 @@
public static final String galleryName = "my gallery";
public static final String textReview = "this painting sucks...";
public static final String paintingName = "painting about nothing";
- public static final String groupName = "a group";
-
+
static final byte[] paintingImage = new byte[] { 2, 3, 4, 5 };
protected DataContext ctxt;
Modified: incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/java/org/objectstyle/cayenne/CayenneDataObjectFlattenedRelTst.java
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/java/org/objectstyle/cayenne/CayenneDataObjectFlattenedRelTst.java?rev=407100&r1=407099&r2=407100&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/java/org/objectstyle/cayenne/CayenneDataObjectFlattenedRelTst.java (original)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/java/org/objectstyle/cayenne/CayenneDataObjectFlattenedRelTst.java Tue May 16 16:00:38 2006
@@ -62,8 +62,6 @@
import org.objectstyle.cayenne.access.DataContext;
import org.objectstyle.cayenne.exp.ExpressionFactory;
import org.objectstyle.cayenne.query.SelectQuery;
-import org.objectstyle.cayenne.unit.TestCaseDataFactory;
-import org.objectstyle.cayenne.util.Util;
/**
* Test case for objects with flattened relationships.
@@ -71,48 +69,40 @@
* @author Andrei Adamchik
*/
// TODO: redefine all test cases in terms of entities in "relationships" map
-// and merge this test case with FlattenedRelationshipsTst that inherits
+// and merge this test case with FlattenedRelationshipsTst that inherits
// from RelationshipTestCase.
public class CayenneDataObjectFlattenedRelTst extends CayenneDOTestBase {
public void testReadFlattenedRelationship() throws Exception {
- //Test no groups
- TestCaseDataFactory.createArtistBelongingToGroups(artistName, new String[] {
- });
-
- Artist a1 = fetchArtist();
+ createTestData("testReadFlattenedRelationship");
+ Artist a1 = (Artist) DataObjectUtils.objectForPK(ctxt, Artist.class, 33001);
List groupList = a1.getGroupArray();
assertNotNull(groupList);
assertEquals(0, groupList.size());
}
public void testReadFlattenedRelationship2() throws Exception {
- //Test no groups
- TestCaseDataFactory.createArtistBelongingToGroups(
- artistName,
- new String[] { groupName });
+ createTestData("testReadFlattenedRelationship2");
- Artist a1 = fetchArtist();
+ Artist a1 = (Artist) DataObjectUtils.objectForPK(ctxt, Artist.class, 33001);
List groupList = a1.getGroupArray();
assertNotNull(groupList);
assertEquals(1, groupList.size());
- assertEquals(
- PersistenceState.COMMITTED,
- ((ArtGroup) groupList.get(0)).getPersistenceState());
- assertEquals(groupName, ((ArtGroup) groupList.get(0)).getName());
+ assertEquals(PersistenceState.COMMITTED, ((ArtGroup) groupList.get(0))
+ .getPersistenceState());
+ assertEquals("g1", ((ArtGroup) groupList.get(0)).getName());
}
public void testAddToFlattenedRelationship() throws Exception {
- TestCaseDataFactory.createArtist(artistName);
- TestCaseDataFactory.createUnconnectedGroup(groupName);
- Artist a1 = fetchArtist();
+ createTestData("testAddToFlattenedRelationship");
+
+ Artist a1 = (Artist) DataObjectUtils.objectForPK(ctxt, Artist.class, 33001);
assertEquals(0, a1.getGroupArray().size());
- SelectQuery q =
- new SelectQuery(
- ArtGroup.class,
- ExpressionFactory.matchExp("name", groupName));
+ SelectQuery q = new SelectQuery(ArtGroup.class, ExpressionFactory.matchExp(
+ "name",
+ "g1"));
List results = ctxt.performQuery(q);
assertEquals(1, results.size());
@@ -123,33 +113,30 @@
List groupList = a1.getGroupArray();
assertEquals(1, groupList.size());
- assertEquals(groupName, ((ArtGroup) groupList.get(0)).getName());
+ assertEquals("g1", ((ArtGroup) groupList.get(0)).getName());
- //Ensure that the commit doesn't fail
+ // Ensure that the commit doesn't fail
a1.getDataContext().commitChanges();
- //and check again
+ // and check again
assertFalse(ctxt.hasChanges());
// refetch artist with a different context
ctxt = createDataContext();
- a1 = fetchArtist();
+ a1 = (Artist) DataObjectUtils.objectForPK(ctxt, Artist.class, 33001);
groupList = a1.getGroupArray();
assertEquals(1, groupList.size());
- assertEquals(groupName, ((ArtGroup) groupList.get(0)).getName());
+ assertEquals("g1", ((ArtGroup) groupList.get(0)).getName());
}
- //Test case to show up a bug in committing more than once
+ // Test case to show up a bug in committing more than once
public void testDoubleCommitAddToFlattenedRelationship() throws Exception {
- TestCaseDataFactory.createArtistBelongingToGroups(artistName, new String[] {
- });
- TestCaseDataFactory.createUnconnectedGroup(groupName);
- Artist a1 = fetchArtist();
-
- SelectQuery q =
- new SelectQuery(
- ArtGroup.class,
- ExpressionFactory.matchExp("name", groupName));
+ createTestData("testDoubleCommitAddToFlattenedRelationship");
+ Artist a1 = (Artist) DataObjectUtils.objectForPK(ctxt, Artist.class, 33001);
+
+ SelectQuery q = new SelectQuery(ArtGroup.class, ExpressionFactory.matchExp(
+ "name",
+ "g1"));
List results = ctxt.performQuery(q);
assertEquals(1, results.size());
@@ -158,13 +145,13 @@
List groupList = a1.getGroupArray();
assertEquals(1, groupList.size());
- assertEquals(groupName, ((ArtGroup) groupList.get(0)).getName());
+ assertEquals("g1", ((ArtGroup) groupList.get(0)).getName());
- //Ensure that the commit doesn't fail
+ // Ensure that the commit doesn't fail
a1.getDataContext().commitChanges();
try {
- //The bug caused the second commit to fail (the link record
+ // The bug caused the second commit to fail (the link record
// was inserted again)
a1.getDataContext().commitChanges();
}
@@ -176,10 +163,8 @@
}
public void testRemoveFromFlattenedRelationship() throws Exception {
- TestCaseDataFactory.createArtistBelongingToGroups(
- artistName,
- new String[] { groupName });
- Artist a1 = fetchArtist();
+ createTestData("testRemoveFromFlattenedRelationship");
+ Artist a1 = (Artist) DataObjectUtils.objectForPK(ctxt, Artist.class, 33001);
ArtGroup group = (ArtGroup) a1.getGroupArray().get(0);
a1.removeFromGroupArray(group);
@@ -187,27 +172,26 @@
List groupList = a1.getGroupArray();
assertEquals(0, groupList.size());
- //Ensure that the commit doesn't fail
+ // Ensure that the commit doesn't fail
a1.getDataContext().commitChanges();
- //and check again
+ // and check again
groupList = a1.getGroupArray();
assertEquals(0, groupList.size());
}
- //Shows up a possible bug in ordering of deletes, when a flattened relationships link record is deleted
+ // 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.
public void testRemoveFlattenedRelationshipAndRootRecord() throws Exception {
- TestCaseDataFactory.createArtistBelongingToGroups(
- artistName,
- new String[] { groupName });
- Artist a1 = fetchArtist();
+ createTestData("testRemoveFlattenedRelationshipAndRootRecord");
+ Artist a1 = (Artist) DataObjectUtils.objectForPK(ctxt, Artist.class, 33001);
DataContext dc = a1.getDataContext();
ArtGroup group = (ArtGroup) a1.getGroupArray().get(0);
- a1.removeFromGroupArray(group); //Cause the delete of the link record
+ a1.removeFromGroupArray(group); // Cause the delete of the link record
- dc.deleteObject(a1); //Cause the deletion of the artist
+ dc.deleteObject(a1); // Cause the deletion of the artist
try {
dc.commitChanges();
@@ -218,42 +202,44 @@
}
}
- /* Catches a bug in the flattened relationship registration which just inserted/deleted willy-nilly,
- * even if unneccessary */
- public void testAddRemoveAddFlattenedRelationship() throws Exception {
- String specialGroupName = "Special Group2";
- TestCaseDataFactory.createArtistBelongingToGroups(artistName, new String[] {
- });
- TestCaseDataFactory.createUnconnectedGroup(specialGroupName);
- Artist a1 = fetchArtist();
-
- SelectQuery q =
- new SelectQuery(
- ArtGroup.class,
- ExpressionFactory.matchExp("name", specialGroupName));
+ public void testAddRemoveFlattenedRelationship1() throws Exception {
+ createTestData("testAddRemoveFlattenedRelationship1");
+ Artist a1 = (Artist) DataObjectUtils.objectForPK(ctxt, Artist.class, 33001);
+
+ SelectQuery q = new SelectQuery(ArtGroup.class, ExpressionFactory.matchExp(
+ "name",
+ "g1"));
List results = ctxt.performQuery(q);
assertEquals(1, results.size());
ArtGroup group = (ArtGroup) results.get(0);
a1.addToGroupArray(group);
group.removeFromArtistArray(a1);
- //a1.addToGroupArray(group);
+ blockQueries();
try {
ctxt.commitChanges();
}
- catch (Exception e) {
- Util.unwindException(e).printStackTrace();
- fail("Should not have thrown the exception " + e.getMessage());
+ finally {
+ unblockQueries();
}
+ }
- ctxt = createDataContext();
- results = ctxt.performQuery(q);
- assertEquals(1, results.size());
+ public void testAddRemoveFlattenedRelationship2() throws Exception {
+
+ createTestData("testAddRemoveFlattenedRelationship2");
+ Artist a1 = (Artist) DataObjectUtils.objectForPK(ctxt, Artist.class, 33001);
+
+ SelectQuery q = new SelectQuery(ArtGroup.class);
+ List results = ctxt.performQuery(q);
+ assertEquals(2, results.size());
+
+ ArtGroup g1 = (ArtGroup) results.get(0);
+ ArtGroup g2 = (ArtGroup) results.get(1);
+ a1.addToGroupArray(g1);
+ a1.addToGroupArray(g2);
+ a1.removeFromGroupArray(g1);
- group = (ArtGroup) results.get(0);
- assertEquals(0, group.getArtistArray().size());
- //a1 = fetchArtist();
- //assertTrue(group.getArtistArray().contains(a1));
+ ctxt.commitChanges();
}
}
Modified: incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/java/org/objectstyle/cayenne/unit/TestCaseDataFactory.java
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/java/org/objectstyle/cayenne/unit/TestCaseDataFactory.java?rev=407100&r1=407099&r2=407100&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/java/org/objectstyle/cayenne/unit/TestCaseDataFactory.java (original)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/java/org/objectstyle/cayenne/unit/TestCaseDataFactory.java Tue May 16 16:00:38 2006
@@ -74,22 +74,6 @@
conn.commit();
}
- public static void createArtist(String artistName) throws Exception {
-
- Connection conn = CayenneTestResources
- .getResources()
- .getDataSource()
- .getConnection();
-
- try {
- conn.setAutoCommit(false);
- createArtist(conn, artistName);
- }
- finally {
- conn.close();
- }
- }
-
public static void createArtistWithPainting(
String artistName,
String[] paintingNames,
@@ -138,63 +122,4 @@
conn.close();
}
}
-
- public static void createArtistBelongingToGroups(
- String artistName,
- String[] groupNames) throws Exception {
- Connection conn = CayenneTestResources
- .getResources()
- .getDataSource()
- .getConnection();
-
- try {
- conn.setAutoCommit(false);
- createArtist(conn, artistName);
- String insertGroup = "INSERT INTO ARTGROUP (GROUP_ID, NAME) VALUES (?,?)";
- String insertLink = "INSERT INTO ARTIST_GROUP (GROUP_ID, ARTIST_ID) VALUES (?,?)";
- PreparedStatement groupStmt = conn.prepareStatement(insertGroup);
- PreparedStatement linkStmt = conn.prepareStatement(insertLink);
-
- int len = groupNames.length;
- if (len > 0) {
- for (int i = 0; i < len; i++) {
- groupStmt.setInt(1, i + 1);
- groupStmt.setString(2, groupNames[i]);
- groupStmt.executeUpdate();
-
- linkStmt.setInt(1, i + 1); // group id
- linkStmt.setInt(2, 1); // artist id
- linkStmt.executeUpdate();
- }
- groupStmt.close();
- linkStmt.close();
- conn.commit();
- }
- }
- finally {
- conn.close();
- }
- }
-
- public static void createUnconnectedGroup(String groupName) throws Exception {
- Connection conn = CayenneTestResources
- .getResources()
- .getDataSource()
- .getConnection();
-
- try {
- conn.setAutoCommit(false);
- String insertGroup = "INSERT INTO ARTGROUP (GROUP_ID, NAME) VALUES (?,?)";
- PreparedStatement groupStmt = conn.prepareStatement(insertGroup);
- groupStmt.setInt(1, 1);
- groupStmt.setString(2, groupName);
- groupStmt.executeUpdate();
- groupStmt.close();
- conn.commit();
- }
- finally {
- conn.close();
- }
- }
-
}
Added: incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/resources/dml/CayenneDataObjectFlattenedRelTst.xml
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/resources/dml/CayenneDataObjectFlattenedRelTst.xml?rev=407100&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/resources/dml/CayenneDataObjectFlattenedRelTst.xml (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/resources/dml/CayenneDataObjectFlattenedRelTst.xml Tue May 16 16:00:38 2006
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
+
+<beans default-lazy-init="true">
+ <!-- ======================================= -->
+ <!-- Named Queries -->
+ <!-- ======================================= -->
+
+ <!-- ARTIST -->
+ <bean id="A1" class="org.objectstyle.cayenne.unit.util.UpdatingSQLTemplate">
+ <constructor-arg type="java.lang.Class"><value>org.objectstyle.art.Artist</value></constructor-arg>
+ <constructor-arg><value>
+ insert into ARTIST (ARTIST_ID, ARTIST_NAME) values (33001, 'artist1')
+ </value></constructor-arg>
+ </bean>
+
+ <!-- ARTGROUP -->
+ <bean id="AG1" class="org.objectstyle.cayenne.unit.util.UpdatingSQLTemplate">
+ <constructor-arg type="java.lang.Class"><value>org.objectstyle.art.ArtGroup</value></constructor-arg>
+ <constructor-arg><value>
+ INSERT INTO ARTGROUP (GROUP_ID, NAME) VALUES (1,'g1')
+ </value></constructor-arg>
+ </bean>
+
+ <bean id="AG2" class="org.objectstyle.cayenne.unit.util.UpdatingSQLTemplate">
+ <constructor-arg type="java.lang.Class"><value>org.objectstyle.art.ArtGroup</value></constructor-arg>
+ <constructor-arg><value>
+ INSERT INTO ARTGROUP (GROUP_ID, NAME) VALUES (2,'g2')
+ </value></constructor-arg>
+ </bean>
+
+
+ <!-- ARTIST_GROUP -->
+ <bean id="AGG1" class="org.objectstyle.cayenne.unit.util.UpdatingSQLTemplate">
+ <constructor-arg type="java.lang.Class"><value>org.objectstyle.art.ArtGroup</value></constructor-arg>
+ <constructor-arg><value>
+ INSERT INTO ARTIST_GROUP (ARTIST_ID, GROUP_ID) VALUES (33001,1)
+ </value></constructor-arg>
+ </bean>
+
+
+ <!-- ======================================= -->
+ <!-- Data Sets -->
+ <!-- ======================================= -->
+
+ <bean id="testReadFlattenedRelationship" class="java.util.ArrayList">
+ <constructor-arg>
+ <list>
+ <ref bean="A1"/>
+ <ref bean="AG1"/>
+ </list>
+ </constructor-arg>
+ </bean>
+
+ <bean id="testReadFlattenedRelationship2" class="java.util.ArrayList">
+ <constructor-arg>
+ <list>
+ <ref bean="A1"/>
+ <ref bean="AG1"/>
+ <ref bean="AGG1"/>
+ </list>
+ </constructor-arg>
+ </bean>
+
+ <bean id="testAddToFlattenedRelationship" class="java.util.ArrayList">
+ <constructor-arg>
+ <list>
+ <ref bean="A1"/>
+ <ref bean="AG1"/>
+ </list>
+ </constructor-arg>
+ </bean>
+
+
+ <bean id="testDoubleCommitAddToFlattenedRelationship" class="java.util.ArrayList">
+ <constructor-arg>
+ <list>
+ <ref bean="A1"/>
+ <ref bean="AG1"/>
+ </list>
+ </constructor-arg>
+ </bean>
+
+ <bean id="testRemoveFromFlattenedRelationship" class="java.util.ArrayList">
+ <constructor-arg>
+ <list>
+ <ref bean="A1"/>
+ <ref bean="AG1"/>
+ <ref bean="AGG1"/>
+ </list>
+ </constructor-arg>
+ </bean>
+
+ <bean id="testRemoveFlattenedRelationshipAndRootRecord" class="java.util.ArrayList">
+ <constructor-arg>
+ <list>
+ <ref bean="A1"/>
+ <ref bean="AG1"/>
+ <ref bean="AGG1"/>
+ </list>
+ </constructor-arg>
+ </bean>
+
+ <bean id="testAddRemoveFlattenedRelationship1" class="java.util.ArrayList">
+ <constructor-arg>
+ <list>
+ <ref bean="A1"/>
+ <ref bean="AG1"/>
+ </list>
+ </constructor-arg>
+ </bean>
+
+ <bean id="testAddRemoveFlattenedRelationship2" class="java.util.ArrayList">
+ <constructor-arg>
+ <list>
+ <ref bean="A1"/>
+ <ref bean="AG1"/>
+ <ref bean="AG2"/>
+ </list>
+ </constructor-arg>
+ </bean>
+</beans>
\ No newline at end of file