KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > cache > pojo > rollback > LocalTxUndoTest


1 /*
2  * JBoss, Home of Professional Open Source
3  *
4  * Distributable under LGPL license.
5  * See terms of license at gnu.org.
6  */

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.test.Person;
16 import org.jboss.cache.pojo.interceptors.dynamic.CacheFieldInterceptor;
17 import org.jboss.cache.pojo.PojoCache;
18 import org.jboss.cache.pojo.PojoCacheFactory;
19 import org.jboss.cache.transaction.DummyTransactionManager;
20 import org.jboss.aop.Advised;
21 import org.jboss.aop.advice.Interceptor;
22
23 import javax.transaction.TransactionManager JavaDoc;
24
25 /**
26  * Additional basic tests
27  *
28  * @author Ben Wang
29  */

30
31 public class LocalTxUndoTest extends TestCase
32 {
33    Log log_ = LogFactory.getLog(LocalTxUndoTest.class);
34    PojoCache cache_;
35    TransactionManager tx_mgr;
36
37    public LocalTxUndoTest(String JavaDoc name)
38    {
39       super(name);
40    }
41
42    protected void setUp() throws Exception JavaDoc
43    {
44       super.setUp();
45       log_.info("setUp() ....");
46       String JavaDoc 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 JavaDoc
55    {
56       super.tearDown();
57       cache_.stop();
58    }
59
60 // public void testDummy() {}
61

62    public void testSimpleTxWithRollback1() throws Exception JavaDoc
63    {
64       log_.info("testSimpleTxWithRollback1() ....");
65       Person test = new Person();
66       test.setName("Ben");
67       test.setAge(10);
68
69       tx_mgr.begin();
70       cache_.attach("/a", test);
71       tx_mgr.getTransaction().rollback();
72       assertFalse("Should not have cache interceptor ", hasCacheInterceptor(test));
73
74       cache_.attach("/a", test);
75    }
76
77    private boolean hasCacheInterceptor(Object JavaDoc pojo)
78    {
79       Interceptor[] interceptors = ((Advised)pojo)._getInstanceAdvisor().getInterceptors();
80       for(int i=0; i < interceptors.length; i++)
81       {
82          if(interceptors[i] instanceof CacheFieldInterceptor)
83             return true;
84       }
85       return false;
86    }
87
88    public void testSimpleTxWithRollback2() throws Exception JavaDoc
89    {
90       log_.info("testSimpleTxWithRollback2() ....");
91       Person test = new Person();
92       test.setName("Ben");
93       test.setAge(10);
94       cache_.attach("/a", test);
95
96       tx_mgr.begin();
97       cache_.detach("/a");
98       tx_mgr.getTransaction().rollback();
99
100       assertTrue("Should still have cache interceptor ", hasCacheInterceptor(test));
101       cache_.detach("/a");
102    }
103
104    public void testSimpleTxWithRollback3() throws Exception JavaDoc
105    {
106       log_.info("testSimpleTxWithRollback3() ....");
107       Person test = new Person();
108       test.setName("Ben");
109       test.setAge(10);
110       tx_mgr.begin();
111       cache_.attach("/a", test);
112       cache_.detach("/a");
113       tx_mgr.getTransaction().rollback();
114
115       assertFalse("Should not have cache interceptor ", hasCacheInterceptor(test));
116    }
117
118    public static Test suite() throws Exception JavaDoc
119    {
120       return new TestSuite(LocalTxUndoTest.class);
121    }
122
123
124    public static void main(String JavaDoc[] args) throws Exception JavaDoc
125    {
126       junit.textui.TestRunner.run(LocalTxUndoTest.suite());
127    }
128
129 }
130
Popular Tags