1
2
3
4
5
6
7
8
9
10
11 package org.mule.expression;
12
13 import org.mule.DefaultMuleMessage;
14 import org.mule.api.MuleMessage;
15 import org.mule.api.expression.RequiredValueException;
16 import org.mule.tck.AbstractMuleTestCase;
17
18 import java.util.HashMap;
19 import java.util.Map;
20
21 public class MapPayloadExpressionEvaluatorTestCase extends AbstractMuleTestCase
22 {
23
24 private Map<String, String> props = new HashMap<String, String>(3);
25
26 @Override
27 public void doSetUp()
28 {
29 props.clear();
30 props.put("foo", "moo");
31 props.put("bar", "mar");
32 props.put("ba?z", "maz");
33 }
34
35 public void testExpressions() throws Exception
36 {
37 MapPayloadExpressionEvaluator eval = new MapPayloadExpressionEvaluator();
38 MuleMessage message = new DefaultMuleMessage(props, (Map) null, muleContext);
39
40
41 Object result = eval.evaluate("foo", message);
42 assertEquals("moo", result);
43
44
45 result = eval.evaluate("bar?", message);
46 assertEquals("mar", result);
47
48
49 result = eval.evaluate("ba?z", message);
50 assertEquals("maz", result);
51
52
53 result = eval.evaluate("fool?", message);
54 assertNull(result);
55
56 try
57 {
58
59 eval.evaluate("fool", message);
60 fail("Should've failed with an exception.");
61 }
62 catch (RequiredValueException rex)
63 {
64
65 assertTrue(rex.getMessage().contains("fool"));
66 }
67
68
69 }
70
71 public void testMultipleExpressions() throws Exception
72 {
73 MapPayloadExpressionEvaluator eval = new MapPayloadExpressionEvaluator();
74 MuleMessage message = new DefaultMuleMessage(props, (Map) null, muleContext);
75
76
77 Object result = eval.evaluate("foo,bar?,ba?z,fool?", message);
78 assertNotNull(result);
79 assertTrue(result instanceof Map);
80 assertEquals(3, ((Map)result).size());
81
82 assertEquals("moo", ((Map)result).get("foo"));
83 assertEquals("mar", ((Map)result).get("bar"));
84 assertEquals("maz", ((Map)result).get("ba?z"));
85 assertNull(((Map)result).get("fool?"));
86 }
87
88 }