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
22
23
24 public class JmsClientAcknowledgeTransactionTestCase extends AbstractJmsFunctionalTestCase
25 {
26 @Override
27 protected String getConfigResources()
28 {
29 return "integration/jms-client-acknowledge-tx.xml";
30 }
31
32 @Test
33 public void testJmsClientAcknowledgeTransaction() throws Exception
34 {
35 send(scenarioAcknowledge);
36 receive(scenarioWithoutAcknowledge);
37 receive(scenarioAcknowledge);
38 receive(scenarioNotReceive);
39 }
40
41 Scenario scenarioAcknowledge = new NonTransactedScenario()
42 {
43 @Override
44 public int getAcknowledge()
45 {
46 return Session.CLIENT_ACKNOWLEDGE;
47 }
48
49 public void send(Session session, MessageProducer producer) throws JMSException
50 {
51 producer.send(session.createTextMessage(DEFAULT_INPUT_MESSAGE));
52 }
53
54 public Message receive(Session session, MessageConsumer consumer) throws JMSException
55 {
56 Message message = consumer.receive(getTimeout());
57 assertNotNull(message);
58 message.acknowledge();
59 return message;
60 }
61 };
62
63 Scenario scenarioWithoutAcknowledge = new NonTransactedScenario()
64 {
65 @Override
66 public int getAcknowledge()
67 {
68 return Session.CLIENT_ACKNOWLEDGE;
69 }
70 };
71 }