1
2
3
4
5
6
7
8
9
10 package org.mule.expression;
11
12 import org.mule.api.MuleMessage;
13 import org.mule.api.expression.ExpressionEvaluator;
14 import org.mule.tck.junit4.AbstractMuleContextTestCase;
15
16 import org.junit.Test;
17
18 import static org.junit.Assert.assertEquals;
19 import static org.junit.Assert.assertNull;
20
21 public class ExpressionConfigTestCase extends AbstractMuleContextTestCase
22 {
23 @Test
24 public void testConfig() throws Exception
25 {
26 ExpressionConfig config = new ExpressionConfig("foo=bar", "header", null, "$[", "]");
27 config.validate(muleContext.getExpressionManager());
28 assertEquals("$[header:foo=bar]", config.getFullExpression(muleContext.getExpressionManager()));
29
30 config = new ExpressionConfig("foo,bar", "headers", null);
31 config.validate(muleContext.getExpressionManager());
32 assertEquals("#[headers:foo,bar]", config.getFullExpression(muleContext.getExpressionManager()));
33
34 config = new ExpressionConfig();
35 config.parse("#[attachment:baz]");
36 config.validate(muleContext.getExpressionManager());
37 assertEquals("attachment", config.getEvaluator());
38 assertEquals("baz", config.getExpression());
39 assertNull(config.getCustomEvaluator());
40 }
41
42 @Test
43 public void testCustomConfig() throws Exception
44 {
45 muleContext.getExpressionManager().registerEvaluator(new ExpressionEvaluator()
46 {
47 public Object evaluate(String expression, MuleMessage message) { return null; }
48
49 public void setName(String name) { }
50
51 public String getName() { return "customEval"; }
52 });
53
54 ExpressionConfig config = new ExpressionConfig("foo,bar", "custom", "customEval");
55 config.validate(muleContext.getExpressionManager());
56 assertEquals("#[customEval:foo,bar]", config.getFullExpression(muleContext.getExpressionManager()));
57 }
58 }