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