1
2
3
4
5
6
7
8
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
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 }