1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport.jms.reliability;
12
13 import javax.jms.JMSException;
14 import javax.jms.Message;
15 import javax.jms.MessageListener;
16 import javax.jms.Session;
17
18 import org.junit.Test;
19
20 import static org.junit.Assert.assertNotNull;
21 import static org.junit.Assert.assertNull;
22 import static org.junit.Assert.fail;
23
24 public class JmsAcknowledgementTestCase extends AbstractJmsReliabilityTestCase
25 {
26 @Override
27 protected String getConfigResources()
28 {
29 return "reliability/activemq-config.xml";
30 }
31
32 @Test
33 public void testAutoAckSync() throws Exception
34 {
35 acknowledgeMode = Session.AUTO_ACKNOWLEDGE;
36 putMessageOnQueue("sanity");
37
38 Message msg = readMessageFromQueue("sanity");
39 assertNotNull(msg);
40
41 msg = readMessageFromQueue("sanity");
42 assertNull(msg);
43 }
44
45 @Test
46 public void testClientAckSync() throws Exception
47 {
48 acknowledgeMode = Session.CLIENT_ACKNOWLEDGE;
49 putMessageOnQueue("sanity");
50
51 Message msg = readMessageFromQueue("sanity");
52 assertNotNull(msg);
53 closeConsumer();
54
55
56 msg = readMessageFromQueue("sanity");
57 assertNotNull(msg);
58
59 msg.acknowledge();
60 closeConsumer();
61
62
63 msg = readMessageFromQueue("sanity");
64 assertNull(msg);
65 }
66
67 @Test
68 public void testAutoAckAsync() throws Exception
69 {
70 acknowledgeMode = Session.AUTO_ACKNOWLEDGE;
71
72 listenOnQueue("sanity", new MessageListener()
73 {
74 @Override
75 public void onMessage(Message message)
76 {
77
78 }
79 });
80 putMessageOnQueue("sanity");
81 Thread.sleep(500);
82 closeConsumer();
83
84
85 Message msg = readMessageFromQueue("sanity");
86 assertNull(msg);
87 }
88
89 @Test
90 public void testAutoAckAsyncWithException() throws Exception
91 {
92 acknowledgeMode = Session.AUTO_ACKNOWLEDGE;
93
94 listenOnQueue("sanity", new MessageListener()
95 {
96 @Override
97 public void onMessage(Message message)
98 {
99 try
100 {
101 session.recover();
102 }
103 catch (JMSException e)
104 {
105 fail(e.getMessage());
106 }
107 }
108 });
109 putMessageOnQueue("sanity");
110 Thread.sleep(500);
111 closeConsumer();
112
113
114 Message msg = readMessageFromQueue("sanity");
115 assertNotNull(msg);
116 }
117
118 @Test
119 public void testClientAckAsync() throws Exception
120 {
121 acknowledgeMode = Session.CLIENT_ACKNOWLEDGE;
122
123 listenOnQueue("sanity", new MessageListener()
124 {
125 @Override
126 public void onMessage(Message message)
127 {
128 try
129 {
130
131 message.acknowledge();
132 }
133 catch (JMSException e)
134 {
135 fail(e.getMessage());
136 }
137 }
138 });
139 putMessageOnQueue("sanity");
140 Thread.sleep(500);
141 closeConsumer();
142
143
144 Message msg = readMessageFromQueue("sanity");
145 assertNull(msg);
146 }
147
148 @Test
149 public void testClientAckAsyncWithException() throws Exception
150 {
151 acknowledgeMode = Session.CLIENT_ACKNOWLEDGE;
152
153 listenOnQueue("sanity", new MessageListener()
154 {
155 @Override
156 public void onMessage(Message message)
157 {
158
159 }
160 });
161 putMessageOnQueue("sanity");
162 Thread.sleep(500);
163 closeConsumer();
164
165
166 Message msg = readMessageFromQueue("sanity");
167 assertNotNull(msg);
168 }
169 }