1
2
3
4
5
6
7
8
9
10 package org.mule.expression;
11
12 import org.mule.DefaultMuleMessage;
13 import org.mule.RequestContext;
14 import org.mule.api.MuleEvent;
15 import org.mule.api.MuleMessage;
16 import org.mule.api.MuleRuntimeException;
17 import org.mule.tck.AbstractMuleTestCase;
18 import org.mule.tck.testmodels.fruit.Apple;
19
20 public class MuleContextExpressionEvaluatorTestCase extends AbstractMuleTestCase
21 {
22 @Override
23 protected void doSetUp() throws Exception
24 {
25 MuleEvent event = getTestEvent("testing",
26 getTestService("apple", Apple.class),
27 getTestInboundEndpoint("test", "test://foo"));
28 RequestContext.setEvent(event);
29 }
30
31 public void testExpressions() throws Exception
32 {
33 MuleMessage message = new DefaultMuleMessage("test", muleContext);
34 MuleContextExpressionEvaluator extractor = new MuleContextExpressionEvaluator();
35 extractor.setMuleContext(muleContext);
36
37 Object o = extractor.evaluate("serviceName", message);
38 assertEquals("apple", o);
39
40 o = extractor.evaluate("modelName", message);
41 assertNotNull(o);
42
43 o = extractor.evaluate("inboundEndpoint", message);
44 assertEquals("test://foo", o.toString());
45
46 o = extractor.evaluate("serverId", message);
47 assertNotNull(o);
48
49 o = extractor.evaluate("clusterId", message);
50 assertNotNull(o);
51
52 o = extractor.evaluate("domainId", message);
53 assertNotNull(o);
54
55 o = extractor.evaluate("workingDir", message);
56 assertNotNull(o);
57
58 try
59 {
60 o = extractor.evaluate("bork", message);
61 fail("bork is not a valid mule context value");
62 }
63 catch (Exception e)
64 {
65
66 }
67 }
68
69 public void testExpressionsFromExtractorManager() throws Exception
70 {
71 MuleMessage message = new DefaultMuleMessage("test", muleContext);
72 Object o = muleContext.getExpressionManager().evaluate("context:serviceName", message);
73 assertEquals("apple", o);
74
75 o = muleContext.getExpressionManager().evaluate("context:modelName", message);
76 assertNotNull(o);
77
78 o = muleContext.getExpressionManager().evaluate("context:inboundEndpoint", message);
79 assertEquals("test://foo", o.toString());
80
81 o = muleContext.getExpressionManager().evaluate("context:serverId", message);
82 assertNotNull(o);
83
84 o = muleContext.getExpressionManager().evaluate("context:clusterId", message);
85 assertNotNull(o);
86
87 o = muleContext.getExpressionManager().evaluate("context:domainId", message);
88 assertNotNull(o);
89
90 o = muleContext.getExpressionManager().evaluate("context:workingDir", message);
91 assertNotNull(o);
92
93 try
94 {
95 o = muleContext.getExpressionManager().evaluate("context:bork", message);
96 fail("bork is not a valid mule context value");
97 }
98 catch (Exception e)
99 {
100
101 }
102 }
103
104 public void testMissingEventContext() throws Exception
105 {
106 RequestContext.clear();
107
108 MuleMessage message = new DefaultMuleMessage("test", muleContext);
109 MuleContextExpressionEvaluator extractor = new MuleContextExpressionEvaluator();
110 extractor.setMuleContext(muleContext);
111
112 Object o = extractor.evaluate("serverId", message);
113 assertNotNull(o);
114
115 try
116 {
117 o = extractor.evaluate("serviceName", message);
118 fail("There is no current event context");
119 }
120 catch (MuleRuntimeException e)
121 {
122
123 }
124
125 }
126 }