1
2
3
4
5
6
7
8
9
10
11 package org.mule.test.integration.message;
12
13 import org.mule.DefaultMuleMessage;
14 import org.mule.api.MuleMessage;
15 import org.mule.api.client.LocalMuleClient;
16
17 import java.util.Arrays;
18 import java.util.Collection;
19
20 import org.junit.Test;
21 import org.junit.runners.Parameterized.Parameters;
22
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertNull;
25
26 public class VmPropertyScopeTestCase extends AbstractPropertyScopeTestCase
27 {
28 @Parameters
29 public static Collection<Object[]> parameters()
30 {
31 return Arrays.asList(new Object[][]{
32 {ConfigVariant.SERVICE, "org/mule/test/message/vm-property-scope-service.xml"},
33 {ConfigVariant.FLOW, "org/mule/test/message/vm-property-scope-flow.xml"}});
34 }
35
36 public VmPropertyScopeTestCase(ConfigVariant variant, String configResources)
37 {
38 super(variant, configResources);
39 }
40
41 @Test
42 public void testRequestResponseChain() throws Exception
43 {
44 LocalMuleClient client = muleContext.getClient();
45 MuleMessage message = new DefaultMuleMessage("test", muleContext);
46 message.setOutboundProperty("foo", "fooValue");
47
48 MuleMessage result = client.send("inbound2", message);
49 assertEquals("test bar", result.getPayload());
50 assertEquals("fooValue", result.<Object> getInboundProperty("foo4"));
51 }
52
53 @Test
54 public void testOneWay() throws Exception
55 {
56 LocalMuleClient client = muleContext.getClient();
57 MuleMessage message = new DefaultMuleMessage("test", muleContext);
58 message.setOutboundProperty("foo", "fooValue");
59
60 client.dispatch("vm://queueIn", message);
61 MuleMessage result = client.request("vm://queueOut", 2000);
62 assertEquals("test bar", result.getPayload());
63 assertEquals("fooValue", result.<Object> getInboundProperty("foo2"));
64 }
65
66 @Test
67 public void testRRToOneWay() throws Exception
68 {
69 LocalMuleClient client = muleContext.getClient();
70 MuleMessage message = new DefaultMuleMessage("test", muleContext);
71 message.setOutboundProperty("foo", "rrfooValue");
72
73 MuleMessage echo = client.send("vm://rrQueueIn", message);
74 MuleMessage result = client.request("vm://rrQueueOut", 2000);
75 assertEquals("test baz", result.getPayload());
76 assertEquals("rrfooValue", result.<Object> getInboundProperty("foo2"));
77 }
78
79 @Test
80 public void testSimpleQueueAccess() throws Exception
81 {
82 LocalMuleClient client = muleContext.getClient();
83 MuleMessage message = new DefaultMuleMessage("test", muleContext);
84 message.setOutboundProperty("foo", "rrfooValue");
85
86 client.dispatch("vm://notInConfig", message);
87 MuleMessage result = client.request("vm://notInConfig", 2000);
88 assertEquals("test", result.getPayload());
89 assertEquals("rrfooValue", result.<Object> getInboundProperty("foo"));
90 }
91 }