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