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.AbstractMuleTestCase;
16 import org.mule.util.expression.ExpressionEvaluatorManager;
17 import org.mule.util.expression.MessageExpressionEvaluator;
18
19 import java.util.ArrayList;
20 import java.util.List;
21
22 public class MessageExpressionEvaluatorTestCase extends AbstractMuleTestCase
23 {
24 public void testUsingEvaluatorDirectly() throws Exception
25 {
26 MessageExpressionEvaluator eval = new MessageExpressionEvaluator();
27 MuleMessage message = new DefaultMuleMessage("test");
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, new ArrayList(1));
43 assertNotNull(result);
44 assertTrue(result instanceof List);
45
46 result = eval.evaluate(null, null);
47 assertNull(result);
48
49 assertEquals(message.getUniqueId(), eval.evaluate("id", message));
50 assertEquals(message.getUniqueId(), eval.evaluate("correlationId", message));
51 assertEquals(new Integer(1), eval.evaluate("correlationSequence", message));
52 assertEquals(new Integer(2), eval.evaluate("correlationGroupSize", message));
53 assertEquals("foo", eval.evaluate("replyTo", message));
54 assertEquals(e, eval.evaluate("exception", message));
55 assertEquals("UTF-8", eval.evaluate("encoding", message));
56 assertEquals("test", eval.evaluate("payload", message));
57
58 try
59 {
60 eval.evaluate("xxx", message);
61 fail("xxx is not a supported expresion");
62 }
63 catch (Exception e1)
64 {
65
66 }
67 }
68
69
70
71
72
73
74 public void testUsingManager() throws Exception
75 {
76 MuleMessage message = new DefaultMuleMessage("test");
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(), ExpressionEvaluatorManager.evaluate("${message:id}", message));
87 assertEquals(message.getUniqueId(), ExpressionEvaluatorManager.evaluate("${message:correlationId}", message));
88 assertEquals(new Integer(1), ExpressionEvaluatorManager.evaluate("${message:correlationSequence}", message));
89 assertEquals(new Integer(2), ExpressionEvaluatorManager.evaluate("${message:correlationGroupSize}", message));
90 assertEquals("foo", ExpressionEvaluatorManager.evaluate("${message:replyTo}", message));
91 assertEquals(e, ExpressionEvaluatorManager.evaluate("${message:exception}", message));
92 assertEquals("UTF-8", ExpressionEvaluatorManager.evaluate("${message:encoding}", message));
93 assertEquals("test", ExpressionEvaluatorManager.evaluate("${message:payload}", message));
94
95 try
96 {
97 ExpressionEvaluatorManager.evaluate("${message:xxx}", message, true);
98 fail("xxx is not a supported expresion");
99 }
100 catch (Exception e1)
101 {
102
103 }
104 }
105 }