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