1
2
3
4
5
6
7 package org.mule.module.spring.transaction;
8
9 import org.mule.api.transaction.Transaction;
10 import org.mule.tck.junit4.AbstractMuleContextTestCase;
11
12 import com.mockobjects.dynamic.C;
13 import com.mockobjects.dynamic.Mock;
14
15 import org.junit.Test;
16 import org.springframework.transaction.PlatformTransactionManager;
17 import org.springframework.transaction.TransactionStatus;
18
19 public class SpringTransactionFactoryTestCase extends AbstractMuleContextTestCase
20 {
21
22 @Test
23 public void testCommit() throws Exception
24 {
25 Mock mockPTM = new Mock(PlatformTransactionManager.class);
26 Mock mockTS = new Mock(TransactionStatus.class);
27 mockPTM.expectAndReturn("getTransaction", C.same(null), mockTS.proxy());
28 mockPTM.expect("commit", C.same(mockTS.proxy()));
29
30 SpringTransactionFactory factory = new SpringTransactionFactory();
31 factory.setManager((PlatformTransactionManager)mockPTM.proxy());
32
33 Transaction tx = factory.beginTransaction(muleContext);
34
35 tx.commit();
36 }
37
38 @Test
39 public void testRollback() throws Exception
40 {
41 Mock mockPTM = new Mock(PlatformTransactionManager.class);
42 Mock mockTS = new Mock(TransactionStatus.class);
43 mockPTM.expectAndReturn("getTransaction", C.same(null), mockTS.proxy());
44 mockPTM.expect("rollback", C.same(mockTS.proxy()));
45 mockTS.expect("setRollbackOnly");
46
47 SpringTransactionFactory factory = new SpringTransactionFactory();
48 factory.setManager((PlatformTransactionManager)mockPTM.proxy());
49
50 Transaction tx = factory.beginTransaction(muleContext);
51
52 tx.rollback();
53 }
54
55 }