1
2
3
4
5
6
7
8
9
10
11 package org.mule.test.integration.spring.events.async;
12
13 import org.mule.api.MuleEventContext;
14 import org.mule.api.MuleMessage;
15 import org.mule.module.client.MuleClient;
16 import org.mule.tck.DynamicPortTestCase;
17 import org.mule.tck.functional.EventCallback;
18 import org.mule.test.integration.spring.events.Order;
19 import org.mule.test.integration.spring.events.OrderManagerBean;
20
21 import edu.emory.mathcs.backport.java.util.concurrent.atomic.AtomicInteger;
22
23
24
25
26
27
28 public class SpringEventsJmsAsyncExampleTestCase extends DynamicPortTestCase
29 {
30 final AtomicInteger eventCount = new AtomicInteger(0);
31
32 @Override
33 protected void doSetUp() throws Exception
34 {
35 super.doSetUp();
36 eventCount.set(0);
37 }
38
39 @Override
40 protected String getConfigResources()
41 {
42 return "org/mule/test/integration/spring/events/async/mule-events-example-async-app-context.xml";
43 }
44
45 public void testReceiveAsWebService() throws Exception
46 {
47 MuleClient client = new MuleClient(muleContext);
48 OrderManagerBean orderManager = (OrderManagerBean) muleContext.getRegistry().lookupObject("orderManagerBean");
49 assertNotNull(orderManager);
50 EventCallback callback = new EventCallback()
51 {
52 public void eventReceived(MuleEventContext context, Object o) throws Exception
53 {
54 eventCount.incrementAndGet();
55 }
56 };
57 orderManager.setEventCallback(callback);
58
59 Order order = new Order("Sausage and Mash");
60
61 client.dispatch("axis:http://localhost:" + getPorts().get(0) + "/mule/orderManager?method=processOrderAsync", order, null);
62
63 MuleMessage result = client.request("jms://processed.queue", 10000);
64 assertNotNull(result);
65 assertEquals("Order 'Sausage and Mash' Processed Async", result.getPayload());
66 }
67
68 @Override
69 protected int getNumPortsToFind()
70 {
71 return 1;
72 }
73 }