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