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