1
2
3
4
5
6
7 package org.mule.transport.jms.integration;
8
9 import javax.jms.JMSException;
10 import javax.jms.Message;
11 import javax.jms.MessageConsumer;
12 import javax.jms.MessageProducer;
13 import javax.jms.Session;
14
15 import org.junit.Test;
16
17 import static org.junit.Assert.assertNotNull;
18
19
20
21
22 public class JmsClientAcknowledgeTransactionTestCase extends AbstractJmsFunctionalTestCase
23 {
24
25 @Override
26 protected String getConfigResources()
27 {
28 return "integration/jms-client-acknowledge-tx.xml";
29 }
30
31 @Test
32 public void testJmsClientAcknowledgeTransaction() throws Exception
33 {
34 send(scenarioAcknowledge);
35 receive(scenarioWithoutAcknowledge);
36 receive(scenarioAcknowledge);
37 receive(scenarioNotReceive);
38 }
39
40 Scenario scenarioAcknowledge = new NonTransactedScenario()
41 {
42 @Override
43 public int getAcknowledge()
44 {
45 return Session.CLIENT_ACKNOWLEDGE;
46 }
47
48 public void send(Session session, MessageProducer producer) throws JMSException
49 {
50 producer.send(session.createTextMessage(DEFAULT_INPUT_MESSAGE));
51 }
52
53 public Message receive(Session session, MessageConsumer consumer) throws JMSException
54 {
55 Message message = consumer.receive(getTimeout());
56 assertNotNull(message);
57 message.acknowledge();
58 return message;
59 }
60 };
61
62 Scenario scenarioWithoutAcknowledge = new NonTransactedScenario()
63 {
64 @Override
65 public int getAcknowledge()
66 {
67 return Session.CLIENT_ACKNOWLEDGE;
68 }
69 };
70 }