View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
6    */
7   package org.mule.transport.jms.integration.transactions.local;
8   
9   import org.mule.transport.jms.integration.AbstractJmsSingleTransactionSingleServiceTestCase;
10  
11  import org.junit.Test;
12  
13  /**
14   * Test all combinations of (inbound) ALWAYS_JOIN.  They should all fail.
15   */
16  public class JmsSingleTransactionSingleServiceAlwaysJoinConfigurationTestCase extends
17      AbstractJmsSingleTransactionSingleServiceTestCase
18  {
19  
20      @Override
21      protected String getConfigResources()
22      {
23          return "integration/transactions/local/jms-single-tx-single-service-always-join.xml";
24      }
25  
26      @Test
27      public void testNone() throws Exception
28      {
29          scenarioCommit.setInputDestinationName(JMS_QUEUE_INPUT_CONF_A);
30          scenarioRollback.setInputDestinationName(JMS_QUEUE_INPUT_CONF_A);
31          scenarioNotReceive.setInputDestinationName(JMS_QUEUE_INPUT_CONF_A);
32          scenarioCommit.setOutputDestinationName(JMS_QUEUE_OUTPUT_CONF_A);
33          scenarioRollback.setOutputDestinationName(JMS_QUEUE_OUTPUT_CONF_A);
34          scenarioNotReceive.setOutputDestinationName(JMS_QUEUE_OUTPUT_CONF_A);
35  
36          runTransactionFail("testNone");
37      }
38  
39      @Test
40      public void testAlwaysBegin() throws Exception
41      {
42          scenarioCommit.setInputDestinationName(JMS_QUEUE_INPUT_CONF_B);
43          scenarioRollback.setInputDestinationName(JMS_QUEUE_INPUT_CONF_B);
44          scenarioNotReceive.setInputDestinationName(JMS_QUEUE_INPUT_CONF_B);
45          scenarioCommit.setOutputDestinationName(JMS_QUEUE_OUTPUT_CONF_B);
46          scenarioRollback.setOutputDestinationName(JMS_QUEUE_OUTPUT_CONF_B);
47          scenarioNotReceive.setOutputDestinationName(JMS_QUEUE_OUTPUT_CONF_B);
48  
49          runTransactionFail("testAlwaysBegin");
50      }
51  
52      @Test
53      public void testBeginOrJoin() throws Exception
54      {
55          scenarioCommit.setInputDestinationName(JMS_QUEUE_INPUT_CONF_C);
56          scenarioRollback.setInputDestinationName(JMS_QUEUE_INPUT_CONF_C);
57          scenarioNotReceive.setInputDestinationName(JMS_QUEUE_INPUT_CONF_C);
58          scenarioCommit.setOutputDestinationName(JMS_QUEUE_OUTPUT_CONF_C);
59          scenarioRollback.setOutputDestinationName(JMS_QUEUE_OUTPUT_CONF_C);
60          scenarioNotReceive.setOutputDestinationName(JMS_QUEUE_OUTPUT_CONF_C);
61  
62          runTransactionFail("testBeginOrJoin");
63      }
64  
65      @Test
66      public void testAlwaysJoin() throws Exception
67      {
68          scenarioCommit.setInputDestinationName(JMS_QUEUE_INPUT_CONF_D);
69          scenarioRollback.setInputDestinationName(JMS_QUEUE_INPUT_CONF_D);
70          scenarioNotReceive.setInputDestinationName(JMS_QUEUE_INPUT_CONF_D);
71          scenarioCommit.setOutputDestinationName(JMS_QUEUE_OUTPUT_CONF_D);
72          scenarioRollback.setOutputDestinationName(JMS_QUEUE_OUTPUT_CONF_D);
73          scenarioNotReceive.setOutputDestinationName(JMS_QUEUE_OUTPUT_CONF_D);
74  
75          runTransactionFail("testAlwaysJoin");
76      }
77  
78      @Test
79      public void testJoinIfPossible() throws Exception
80      {
81          scenarioCommit.setInputDestinationName(JMS_QUEUE_INPUT_CONF_E);
82          scenarioRollback.setInputDestinationName(JMS_QUEUE_INPUT_CONF_E);
83          scenarioNotReceive.setInputDestinationName(JMS_QUEUE_INPUT_CONF_E);
84          scenarioCommit.setOutputDestinationName(JMS_QUEUE_OUTPUT_CONF_E);
85          scenarioRollback.setOutputDestinationName(JMS_QUEUE_OUTPUT_CONF_E);
86          scenarioNotReceive.setOutputDestinationName(JMS_QUEUE_OUTPUT_CONF_E);
87  
88          runTransactionFail("testJoinIfPossible");
89      }
90  }