[jboss-cvs] JBossCache/tests-50/functional/org/jboss/cache/pojo/rollback ...
Ben Wang
bwang at jboss.com
Sun Sep 17 04:02:49 EDT 2006
User: bwang
Date: 06/09/17 04:02:49
Modified: tests-50/functional/org/jboss/cache/pojo/rollback
MapTxUndoTest.java
Log:
JIRA JBCACHE-763 Collection rollback.
Revision Changes Path
1.3 +43 -0 JBossCache/tests-50/functional/org/jboss/cache/pojo/rollback/MapTxUndoTest.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: MapTxUndoTest.java
===================================================================
RCS file: /cvsroot/jboss/JBossCache/tests-50/functional/org/jboss/cache/pojo/rollback/MapTxUndoTest.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- MapTxUndoTest.java 8 Sep 2006 07:55:59 -0000 1.2
+++ MapTxUndoTest.java 17 Sep 2006 08:02:49 -0000 1.3
@@ -21,6 +21,7 @@
import javax.transaction.TransactionManager;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Map;
/**
* Additional basic tests
@@ -133,6 +134,48 @@
assertFalse("Should not have cache interceptor ", isProxy(test.getHobbies()));
}
+ /**
+ * Contributed by Niztan Niv
+ * @throws Exception
+ */
+ public void testNestedMapWithRollback() throws Exception
+ {
+ // create cached data objects
+ Map obj1 = new HashMap();
+ obj1.put("id", "1");
+ cache_.attach("objs/1", obj1);
+ obj1 = (Map) cache_.find("objs/1");
+
+ Map obj2 = new HashMap();
+ obj2.put("id", "2");
+ cache_.attach("objs/2", obj2);
+ obj2 = (Map) cache_.find("objs/2");
+
+ // create cached collection of data objects
+ Map indexMap = new HashMap();
+ cache_.attach("objsIndex", indexMap);
+ indexMap = (Map) cache_.find("objsIndex");
+
+ // initialize collection by adding a data object
+ final String KEY = "KEY";
+ indexMap.put(KEY, obj1);
+
+ Object beforeModify = indexMap.get(KEY);
+ System.out.println("beforeModify: " + beforeModify + ", data object id: " + ((Map)beforeModify).get("id"));
+
+ // modify the collection by replacing the first data object with the second
+ // and then roll-back the transaction
+ tx_mgr.begin();
+ indexMap.put(KEY, obj2);
+ tx_mgr.rollback();
+
+ Object afterRollback = indexMap.get(KEY);
+ System.out.println("afterRollback: " + afterRollback + ", data object id: " + ((Map)afterRollback).get("id"));
+
+ // check if state of collection was restored
+ assertEquals(beforeModify, afterRollback);
+ }
+
public static Test suite() throws Exception
{
return new TestSuite(MapTxUndoTest.class);
More information about the jboss-cvs-commits
mailing list