1
2
3
4
5
6
7 package org.mule.expression;
8
9 import org.mule.DefaultMuleMessage;
10 import org.mule.api.MuleMessage;
11 import org.mule.message.DefaultExceptionPayload;
12 import org.mule.tck.junit4.AbstractMuleContextTestCase;
13
14 import org.junit.Test;
15
16 import static org.junit.Assert.assertEquals;
17 import static org.junit.Assert.assertNotNull;
18 import static org.junit.Assert.assertNull;
19 import static org.junit.Assert.fail;
20
21 public class MessageExpressionEvaluatorTestCase extends AbstractMuleContextTestCase
22 {
23 @Test
24 public void testUsingEvaluatorDirectly() throws Exception
25 {
26 MessageExpressionEvaluator eval = new MessageExpressionEvaluator();
27 MuleMessage message = new DefaultMuleMessage("test", muleContext);
28 message.setCorrelationId(message.getUniqueId());
29 message.setCorrelationSequence(1);
30 message.setCorrelationGroupSize(2);
31 message.setReplyTo("foo");
32 message.setEncoding("UTF-8");
33 Exception e = new Exception("dummy");
34 message.setExceptionPayload(new DefaultExceptionPayload(e));
35
36
37 Object result = eval.evaluate(null, message);
38 assertNotNull(result);
39 assertEquals(message, result);
40
41
42 result = eval.evaluate(null, null);
43 assertNull(result);
44
45 assertEquals(message.getUniqueId(), eval.evaluate("id", message));
46 assertEquals(message.getUniqueId(), eval.evaluate("correlationId", message));
47 assertEquals(new Integer(1), eval.evaluate("correlationSequence", message));
48 assertEquals(new Integer(2), eval.evaluate("correlationGroupSize", message));
49 assertEquals("foo", eval.evaluate("replyTo", message));
50 assertEquals(e, eval.evaluate("exception", message));
51 assertEquals("UTF-8", eval.evaluate("encoding", message));
52 assertEquals("test", eval.evaluate("payload", message));
53
54 try
55 {
56 eval.evaluate("xxx", message);
57 fail("xxx is not a supported expresion");
58 }
59 catch (Exception e1)
60 {
61
62 }
63 }
64
65
66
67
68
69
70 @Test
71 public void testUsingManager() throws Exception
72 {
73 MuleMessage message = new DefaultMuleMessage("test", muleContext);
74 message.setCorrelationId(message.getUniqueId());
75 message.setCorrelationSequence(1);
76 message.setCorrelationGroupSize(2);
77 message.setReplyTo("foo");
78 message.setEncoding("UTF-8");
79 Exception e = new Exception("dummy");
80 message.setExceptionPayload(new DefaultExceptionPayload(e));
81
82
83 assertEquals(message.getUniqueId(), muleContext.getExpressionManager().evaluate("#[message:id]", message));
84 assertEquals(message.getUniqueId(), muleContext.getExpressionManager().evaluate("#[message:correlationId]", message));
85 assertEquals(new Integer(1), muleContext.getExpressionManager().evaluate("#[message:correlationSequence]", message));
86 assertEquals(new Integer(2), muleContext.getExpressionManager().evaluate("#[message:correlationGroupSize]", message));
87 assertEquals("foo", muleContext.getExpressionManager().evaluate("#[message:replyTo]", message));
88 assertEquals(e, muleContext.getExpressionManager().evaluate("#[message:exception]", message));
89 assertEquals("UTF-8", muleContext.getExpressionManager().evaluate("#[message:encoding]", message));
90 assertEquals("test", muleContext.getExpressionManager().evaluate("#[message:payload]", message));
91
92 try
93 {
94 muleContext.getExpressionManager().evaluate("#[message:xxx]", message, true);
95 fail("xxx is not a supported expresion");
96 }
97 catch (Exception e1)
98 {
99
100 }
101 }
102 }