KickJava   Java API By Example, From Geeks To Geeks.

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


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.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 JavaDoc;
23 import java.util.HashSet JavaDoc;
24
25 /**
26  * Additional basic tests
27  *
28  * @author Ben Wang
29  */

30
31 public class SetUndoTest extends TestCase
32 {
33    Log log_ = LogFactory.getLog(SetUndoTest.class);
34    PojoCache cache_;
35    TransactionManager tx_mgr;
36
37    public SetUndoTest(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    private void setTxRollback(boolean isTrue)
63    {
64       PojoFailedTxMockupInterceptor.TX_ROLLBACK = isTrue;
65    }
66
67    public void testSimple() throws Exception JavaDoc
68    {
69       HashSet JavaDoc set = new HashSet JavaDoc();
70       set.add("test1");
71
72       setTxRollback(true);
73       cache_.attach("/a", set);
74       assertFalse("Should not have cache interceptor ", isProxy(set));
75
76       cache_.attach("/a", set);
77    }
78
79    public void testSimpleTxWithRollback1() throws Exception JavaDoc
80    {
81       log_.info("testSimpleTxWithRollback1() ....");
82       Person test = new Person();
83       test.setName("Ben");
84       test.setAge(10);
85       HashSet JavaDoc set = new HashSet JavaDoc();
86       set.add("English");
87       test.setSkills(set);
88
89       setTxRollback(true);
90       cache_.attach("/a", test);
91       assertFalse("Should not have cache interceptor ", isProxy(test.getSkills()));
92
93       cache_.attach("/a", test);
94    }
95
96    private boolean isProxy(Object JavaDoc pojo)
97    {
98       if(pojo instanceof ClassProxy) return true;
99       return false;
100    }
101
102    public void testSimpleTxWithRollback2() throws Exception JavaDoc
103    {
104       log_.info("testSimpleTxWithRollback1() ....");
105       Person test = new Person();
106       test.setName("Ben");
107       test.setAge(10);
108       HashSet JavaDoc set = new HashSet JavaDoc();
109       set.add("English");
110       test.setSkills(set);
111
112       cache_.attach("/a", test);
113
114       setTxRollback(true);
115       cache_.detach("/a");
116
117       assertTrue("Should still have cache interceptor ", isProxy(test.getSkills()));
118       cache_.detach("/a");
119    }
120
121    public static Test suite() throws Exception JavaDoc
122    {
123       return new TestSuite(SetUndoTest.class);
124    }
125
126
127    public static void main(String JavaDoc[] args) throws Exception JavaDoc
128    {
129       junit.textui.TestRunner.run(SetUndoTest.suite());
130    }
131
132 }
133
Popular Tags