1 7 8 package org.jboss.cache.pojo.rollback; 9 10 import junit.framework.TestCase; 11 import junit.framework.Test; 12 import junit.framework.TestSuite; 13 import org.apache.commons.logging.Log; 14 import org.apache.commons.logging.LogFactory; 15 import org.jboss.cache.pojo.PojoCache; 16 import org.jboss.cache.pojo.PojoCacheFactory; 17 import org.jboss.cache.pojo.interceptors.PojoFailedTxMockupInterceptor; 18 import org.jboss.cache.pojo.test.Person; 19 import org.jboss.cache.transaction.DummyTransactionManager; 20 import org.jboss.aop.proxy.ClassProxy; 21 22 import javax.transaction.TransactionManager ; 23 import java.util.ArrayList ; 24 25 30 31 public class ListUndoTest extends TestCase 32 { 33 Log log_ = LogFactory.getLog(ListUndoTest.class); 34 PojoCache cache_; 35 TransactionManager tx_mgr; 36 37 public ListUndoTest(String name) 38 { 39 super(name); 40 } 41 42 protected void setUp() throws Exception 43 { 44 super.setUp(); 45 log_.info("setUp() ...."); 46 String configFile = "META-INF/local-service.xml"; 47 boolean toStart = false; 48 cache_ = PojoCacheFactory.createCache(configFile, toStart); 49 cache_.start(); 50 tx_mgr = DummyTransactionManager.getInstance(); 51 52 } 53 54 protected void tearDown() throws Exception 55 { 56 super.tearDown(); 57 cache_.stop(); 58 } 59 60 62 private void setTxRollback(boolean isTrue) 63 { 64 PojoFailedTxMockupInterceptor.TX_ROLLBACK = isTrue; 65 } 66 67 public void testSimple() throws Exception 68 { 69 ArrayList list = new ArrayList (); 70 list.add("test1"); 71 72 setTxRollback(true); 73 cache_.attach("/a", list); 74 assertFalse("Should not have cache interceptor ", isProxy(list)); 75 76 cache_.attach("/a", list); 77 } 78 79 public void testSimpleTxWithRollback1() throws Exception 80 { 81 log_.info("testSimpleTxWithRollback1() ...."); 82 Person test = new Person(); 83 test.setName("Ben"); 84 test.setAge(10); 85 ArrayList list = new ArrayList (); 86 list.add("English"); 87 test.setLanguages(list); 88 89 setTxRollback(true); 90 cache_.attach("/a", test); 91 assertFalse("Should not have cache interceptor ", isProxy(test.getLanguages())); 92 93 cache_.attach("/a", test); 94 } 95 96 private boolean isProxy(Object pojo) 97 { 98 if(pojo instanceof ClassProxy) return true; 99 return false; 100 } 101 102 public void testSimpleTxWithRollback2() throws Exception 103 { 104 log_.info("testSimpleTxWithRollback1() ...."); 105 Person test = new Person(); 106 test.setName("Ben"); 107 test.setAge(10); 108 ArrayList list = new ArrayList (); 109 list.add("English"); 110 test.setLanguages(list); 111 112 cache_.attach("/a", test); 113 114 setTxRollback(true); 115 cache_.detach("/a"); 116 117 assertTrue("Should still have cache interceptor ", isProxy(test.getLanguages())); 118 cache_.detach("/a"); 119 } 120 121 public static Test suite() throws Exception 122 { 123 return new TestSuite(ListUndoTest.class); 124 } 125 126 127 public static void main(String [] args) throws Exception 128 { 129 junit.textui.TestRunner.run(ListUndoTest.suite()); 130 } 131 132 } 133 | Popular Tags |