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