1
2
3
4
5
6
7
8
9
10
11 package org.mule;
12
13 import org.mule.api.MuleMessage;
14 import org.mule.api.transport.PropertyScope;
15 import org.mule.module.client.MuleClient;
16 import org.mule.tck.FunctionalTestCase;
17 import org.mule.test.filters.FilterCounter;
18
19
20
21
22
23
24 public class Mule4412TestCase extends FunctionalTestCase
25 {
26 private int RECEIVE_TIMEOUT_MS = 3000;
27
28 protected String getConfigResources()
29 {
30 return "mule-4412.xml";
31 }
32
33 @Override
34 protected void doSetUp() throws Exception
35 {
36 super.doSetUp();
37
38 FilterCounter.counter.set(0);
39 }
40
41 @Override
42 protected void doTearDown() throws Exception
43 {
44 super.doTearDown();
45
46 FilterCounter.counter.set(0);
47 }
48
49
50
51
52
53
54 public void testFilterOnce() throws Exception
55 {
56 DefaultMuleMessage msg = new DefaultMuleMessage(TEST_MESSAGE, muleContext);
57 msg.setOutboundProperty("pass", "true");
58 MuleClient client = new MuleClient(muleContext);
59 client.send("vm://async", msg);
60 MuleMessage reply = client.request("vm://asyncResponse", RECEIVE_TIMEOUT_MS);
61 int times = FilterCounter.counter.get();
62 assertTrue("did not filter one time as expected, times filtered " + times, times == 1);
63 assertNotNull(reply);
64 assertEquals("wrong message received : " + reply.getPayloadAsString(), TEST_MESSAGE,
65 reply.getPayloadAsString());
66 assertEquals("'pass' property value not correct", "true", reply.getInboundProperty("pass"));
67
68
69 assertNull(client.request("vm://asyncResponse", RECEIVE_TIMEOUT_MS));
70 }
71
72
73
74
75
76
77 public void testWrongPropertyKey() throws Exception
78 {
79 DefaultMuleMessage msg = new DefaultMuleMessage(TEST_MESSAGE, muleContext);
80 msg.setProperty("fail", "true", PropertyScope.INVOCATION);
81 MuleClient client = new MuleClient(muleContext);
82 client.send("vm://async", msg);
83 MuleMessage reply = client.request("vm://asyncResponse", RECEIVE_TIMEOUT_MS);
84 assertNull(reply);
85 assertTrue("should not have filtered", FilterCounter.counter.get() == 0);
86 }
87
88
89
90
91
92
93
94 public void testWrongPropertyValue() throws Exception
95 {
96 DefaultMuleMessage msg = new DefaultMuleMessage(TEST_MESSAGE, muleContext);
97 msg.setInboundProperty("pass", "false");
98 MuleClient client = new MuleClient(muleContext);
99 client.send("vm://async", msg);
100 MuleMessage reply = client.request("vm://asyncResponse", RECEIVE_TIMEOUT_MS);
101 assertNull(reply);
102 assertTrue("should not have filtered", FilterCounter.counter.get() == 0);
103 }
104
105
106
107
108
109
110
111 public void testNoProperty() throws Exception
112 {
113 DefaultMuleMessage msg = new DefaultMuleMessage(TEST_MESSAGE, muleContext);
114 MuleClient client = new MuleClient(muleContext);
115 client.send("vm://async", msg);
116 MuleMessage reply = client.request("vm://asyncResponse", RECEIVE_TIMEOUT_MS);
117 assertNull(reply);
118 assertTrue("should not have filtered", FilterCounter.counter.get() == 0);
119 }
120 }