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/06/26 15:26:23 UTC
svn commit: r417187 - in
/incubator/cayenne/main/trunk/cayenne/cayenne-java/src:
cayenne/java/org/objectstyle/cayenne/ObjectContextChangeLog.java
tests/java/org/objectstyle/cayenne/CayenneContextDeleteRulesTst.java
Author: aadamchik
Date: Mon Jun 26 06:26:23 2006
New Revision: 417187
URL: http://svn.apache.org/viewvc?rev=417187&view=rev
Log:
CAY-551
Modified:
incubator/cayenne/main/trunk/cayenne/cayenne-java/src/cayenne/java/org/objectstyle/cayenne/ObjectContextChangeLog.java
incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/java/org/objectstyle/cayenne/CayenneContextDeleteRulesTst.java
Modified: incubator/cayenne/main/trunk/cayenne/cayenne-java/src/cayenne/java/org/objectstyle/cayenne/ObjectContextChangeLog.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne/cayenne-java/src/cayenne/java/org/objectstyle/cayenne/ObjectContextChangeLog.java?rev=417187&r1=417186&r2=417187&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-java/src/cayenne/java/org/objectstyle/cayenne/ObjectContextChangeLog.java (original)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-java/src/cayenne/java/org/objectstyle/cayenne/ObjectContextChangeLog.java Mon Jun 26 06:26:23 2006
@@ -65,6 +65,8 @@
import java.util.List;
import java.util.Map;
+import org.objectstyle.cayenne.graph.ArcCreateOperation;
+import org.objectstyle.cayenne.graph.ArcDeleteOperation;
import org.objectstyle.cayenne.graph.CompoundDiff;
import org.objectstyle.cayenne.graph.GraphDiff;
import org.objectstyle.cayenne.graph.NodeDiff;
@@ -94,6 +96,16 @@
if (nodeId.equals(((NodeDiff) next).getNodeId())) {
it.remove();
+ }
+ else if (next instanceof ArcCreateOperation) {
+ if (nodeId.equals(((ArcCreateOperation) next).getTargetNodeId())) {
+ it.remove();
+ }
+ }
+ else if (next instanceof ArcDeleteOperation) {
+ if (nodeId.equals(((ArcDeleteOperation) next).getTargetNodeId())) {
+ it.remove();
+ }
}
}
}
Modified: incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/java/org/objectstyle/cayenne/CayenneContextDeleteRulesTst.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/java/org/objectstyle/cayenne/CayenneContextDeleteRulesTst.java?rev=417187&r1=417186&r2=417187&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/java/org/objectstyle/cayenne/CayenneContextDeleteRulesTst.java (original)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-java/src/tests/java/org/objectstyle/cayenne/CayenneContextDeleteRulesTst.java Mon Jun 26 06:26:23 2006
@@ -148,4 +148,25 @@
// And be sure that the commit works afterwards, just for sanity
context.commitChanges();
}
+
+ public void testCascadeToOneNewObject() {
+ CayenneContext context = createClientContext();
+
+ ClientMtDeleteRule related = (ClientMtDeleteRule) context
+ .newObject(ClientMtDeleteRule.class);
+ context.commitChanges();
+
+ ClientMtDeleteCascade object = (ClientMtDeleteCascade) context
+ .newObject(ClientMtDeleteCascade.class);
+ object.setName("object");
+ object.setCascade(related);
+
+ context.deleteObject(object);
+ assertEquals(PersistenceState.TRANSIENT, object.getPersistenceState());
+ assertEquals(PersistenceState.DELETED, related.getPersistenceState());
+ assertFalse(context.deletedObjects().contains(object));
+ assertTrue(context.deletedObjects().contains(related));
+
+ context.commitChanges();
+ }
}