1
2
3
4
5
6
7
8
9
10
11 package org.mule.test.integration.messaging.meps;
12
13 import org.mule.DefaultMuleMessage;
14 import org.mule.api.MuleMessage;
15 import org.mule.api.service.Service;
16 import org.mule.module.client.MuleClient;
17 import org.mule.tck.FunctionalTestCase;
18 import org.mule.transport.NullPayload;
19
20
21 public class InOptionalOutOutOnlyAsyncRouterTestCase extends FunctionalTestCase
22 {
23 public static final long TIMEOUT = 3000;
24
25 protected String getConfigResources()
26 {
27 return "org/mule/test/integration/messaging/meps/pattern_In-Optional-Out_Out-Only-Async-Router.xml";
28 }
29
30 public void testExchange() throws Exception
31 {
32 MuleClient client = new MuleClient(muleContext);
33
34 MuleMessage result = client.send("inboundEndpoint", "some data", null);
35 assertNotNull(result);
36 assertEquals(NullPayload.getInstance(), result.getPayload());
37 assertNull(result.getExceptionPayload());
38
39 DefaultMuleMessage msg = new DefaultMuleMessage("some data", muleContext);
40 msg.setOutboundProperty("foo", "bar");
41 result = client.send("inboundEndpoint", msg);
42 assertNotNull(result);
43 assertEquals("got it!", result.getPayloadAsString());
44
45 Service async = muleContext.getRegistry().lookupService("In-Out_Out-Only-Async-Service");
46 Service external = muleContext.getRegistry().lookupService("ExternalApp");
47
48 assertEquals(2, async.getStatistics().getProcessedEvents());
49 assertEquals(1, external.getStatistics().getProcessedEvents());
50 }
51 }
52