View Javadoc

1   /*
2    * $Id: JmsClientAcknowledgeTransactionTestCase.java 22431 2011-07-18 07:40:35Z 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.transport.jms.integration;
12  
13  import javax.jms.JMSException;
14  import javax.jms.Message;
15  import javax.jms.MessageConsumer;
16  import javax.jms.MessageProducer;
17  import javax.jms.Session;
18  
19  import org.junit.Test;
20  
21  import static org.junit.Assert.assertNotNull;
22  
23  /**
24   * Test jms using JmsClientAcknowledgeTransactionFactory
25   */
26  public class JmsClientAcknowledgeTransactionTestCase extends AbstractJmsFunctionalTestCase
27  {
28  
29      @Override
30      protected String getConfigResources()
31      {
32          return "integration/jms-client-acknowledge-tx.xml";
33      }
34  
35      @Test
36      public void testJmsClientAcknowledgeTransaction() throws Exception
37      {
38          send(scenarioAcknowledge);
39          receive(scenarioWithoutAcknowledge);
40          receive(scenarioAcknowledge);
41          receive(scenarioNotReceive);
42      }
43  
44      Scenario scenarioAcknowledge = new NonTransactedScenario()
45      {
46          @Override
47          public int getAcknowledge()
48          {
49              return Session.CLIENT_ACKNOWLEDGE;
50          }
51  
52          @Override
53          public void send(Session session, MessageProducer producer) throws JMSException
54          {
55              producer.send(session.createTextMessage(DEFAULT_INPUT_MESSAGE));
56          }
57  
58          @Override
59          public Message receive(Session session, MessageConsumer consumer) throws JMSException
60          {
61              Message message = consumer.receive(getTimeout());
62              assertNotNull(message);
63              message.acknowledge();
64              return message;
65          }
66      };
67  
68      Scenario scenarioWithoutAcknowledge = new NonTransactedScenario()
69      {
70          @Override
71          public int getAcknowledge()
72          {
73              return Session.CLIENT_ACKNOWLEDGE;
74          }
75      };
76  }