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 import org.mule.util.expression.ExpressionEvaluatorManager;
20 import org.mule.util.expression.MuleContextExpressionEvaluator;
21
22 public class MuleContextExpressionEvaluatorTestCase extends AbstractMuleTestCase
23 {
24
25 protected void doSetUp() throws Exception
26 {
27 MuleEvent event = getTestEvent("testing",
28 getTestService("apple", Apple.class),
29 getTestInboundEndpoint("test", "test://foo"));
30 RequestContext.setEvent(event);
31 }
32
33 public void testExpressions() throws Exception
34 {
35 MuleMessage message = new DefaultMuleMessage("test");
36 MuleContextExpressionEvaluator extractor = new MuleContextExpressionEvaluator();
37
38 Object o = extractor.evaluate("serviceName", message);
39 assertEquals("apple", o);
40
41 o = extractor.evaluate("modelName", message);
42 assertNotNull(o);
43
44 o = extractor.evaluate("inboundEndpoint", message);
45 assertEquals("test://foo", o.toString());
46
47 o = extractor.evaluate("serverId", message);
48 assertNotNull(o);
49
50 o = extractor.evaluate("clusterId", message);
51 assertNotNull(o);
52
53 o = extractor.evaluate("domainId", message);
54 assertNotNull(o);
55
56 o = extractor.evaluate("workingDir", message);
57 assertNotNull(o);
58
59 try
60 {
61 o = extractor.evaluate("bork", message);
62 fail("bork is not a valid mule context value");
63 }
64 catch (Exception e)
65 {
66
67 }
68 }
69
70 public void testExpressionsFromExtractorManager() throws Exception
71 {
72 MuleMessage message = new DefaultMuleMessage("test");
73 Object o = ExpressionEvaluatorManager.evaluate("mule:serviceName", message);
74 assertEquals("apple", o);
75
76 o = ExpressionEvaluatorManager.evaluate("mule:modelName", message);
77 assertNotNull(o);
78
79 o = ExpressionEvaluatorManager.evaluate("mule:inboundEndpoint", message);
80 assertEquals("test://foo", o.toString());
81
82 o = ExpressionEvaluatorManager.evaluate("mule:serverId", message);
83 assertNotNull(o);
84
85 o = ExpressionEvaluatorManager.evaluate("mule:clusterId", message);
86 assertNotNull(o);
87
88 o = ExpressionEvaluatorManager.evaluate("mule:domainId", message);
89 assertNotNull(o);
90
91 o = ExpressionEvaluatorManager.evaluate("mule:workingDir", message);
92 assertNotNull(o);
93
94 try
95 {
96 o = ExpressionEvaluatorManager.evaluate("mule:bork", message);
97 fail("bork is not a valid mule context value");
98 }
99 catch (Exception e)
100 {
101
102 }
103 }
104
105 public void testMissingEventContext() throws Exception
106 {
107 RequestContext.clear();
108
109 MuleMessage message = new DefaultMuleMessage("test");
110 MuleContextExpressionEvaluator extractor = new MuleContextExpressionEvaluator();
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 }