View Javadoc

1   /*
2    * $Id: SpringTransactionFactoryTestCase.java 22387 2011-07-12 03:53:36Z dirk.olmes $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
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  //        TransactionCoordination.getInstance().bindTransaction(tx);
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  //        TransactionCoordination.getInstance().bindTransaction(tx);
56          tx.rollback();
57      }
58  
59  }