1
2
3
4
5
6
7
8
9
10
11 package org.mule.test.integration.client;
12
13 import org.mule.api.MuleMessage;
14 import org.mule.module.client.MuleClient;
15 import org.mule.tck.junit4.FunctionalTestCase;
16 import org.mule.transport.jms.JmsConstants;
17
18 import java.util.HashMap;
19 import java.util.Map;
20
21 import org.junit.Test;
22
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertNotNull;
25 import static org.junit.Assert.assertTrue;
26
27 public class MuleClientJmsTestCase extends FunctionalTestCase
28 {
29
30 public static final int INTERATIONS = 1;
31
32 @Override
33 protected String getConfigResources()
34 {
35 return "org/mule/test/integration/client/test-client-jms-mule-config.xml";
36 }
37
38 @Test
39 public void testClientSendDirect() throws Exception
40 {
41 MuleClient client = new MuleClient(muleContext);
42
43 MuleMessage message = client.sendDirect("TestReceiverUMO", null, "Test Client Send message", null);
44 assertNotNull(message);
45 assertEquals("Received: Test Client Send message", message.getPayload());
46 }
47
48 @Test
49 public void testClientDispatchDirect() throws Exception
50 {
51 MuleClient client = new MuleClient(muleContext);
52
53 client.dispatchDirect("TestReceiverUMO", "Test Client dispatch message", null);
54 }
55
56 @Test
57 public void testClientSend() throws Exception
58 {
59 MuleClient client = new MuleClient(muleContext);
60
61 MuleMessage message = client.send(getDispatchUrl(), "Test Client Send message", null);
62 assertNotNull(message);
63 assertEquals("Received: Test Client Send message", message.getPayload());
64 }
65
66 @Test
67 public void testClientMultiSend() throws Exception
68 {
69 MuleClient client = new MuleClient(muleContext);
70
71 for (int i = 0; i < INTERATIONS; i++)
72 {
73 MuleMessage message = client.send(getDispatchUrl(), "Test Client Send message " + i, null);
74 assertNotNull(message);
75 assertEquals("Received: Test Client Send message " + i, message.getPayload());
76 }
77 }
78
79 @Test
80 public void testClientMultiDispatch() throws Exception
81 {
82 MuleClient client = new MuleClient(muleContext);
83
84 int i = 0;
85
86 client.dispatch(getDispatchUrl(), "Test Client Send message " + i, null);
87 long start = System.currentTimeMillis();
88 for (i = 0; i < INTERATIONS; i++)
89 {
90 client.dispatch(getDispatchUrl(), "Test Client Send message " + i, null);
91 }
92 long time = System.currentTimeMillis() - start;
93 logger.debug(i + " took " + time + "ms to process");
94 Thread.sleep(1000);
95 }
96
97 @Test
98 public void testClientDispatchAndReceiveOnReplyTo() throws Exception
99 {
100 MuleClient client = new MuleClient(muleContext);
101
102 Map props = new HashMap();
103 props.put(JmsConstants.JMS_REPLY_TO, "replyTo.queue");
104
105 long start = System.currentTimeMillis();
106 int i = 0;
107 for (i = 0; i < INTERATIONS; i++)
108 {
109 logger.debug("Sending message " + i);
110 client.dispatch(getDispatchUrl(), "Test Client Dispatch message " + i, props);
111 }
112 long time = System.currentTimeMillis() - start;
113 logger.debug("It took " + time + " ms to send " + i + " messages");
114
115 Thread.sleep(5000);
116 start = System.currentTimeMillis();
117 for (i = 0; i < INTERATIONS; i++)
118 {
119 MuleMessage message = client.request("jms://replyTo.queue", 5000);
120 assertNotNull("message should not be null from Reply queue", message);
121 logger.debug("Count is " + i);
122 logger.debug("ReplyTo Message is: " + message.getPayloadAsString());
123 assertTrue(message.getPayloadAsString().startsWith("Received"));
124 }
125 time = System.currentTimeMillis() - start;
126 logger.debug("It took " + time + "ms to receive " + i + " messages");
127 }
128
129 public String getDispatchUrl()
130 {
131 return "jms://test.queue";
132 }
133 }