View Javadoc

1   /*
2    * $Id: MapPayloadExpressionEvaluatorTestCase.java 20297 2010-11-22 18:49:18Z aperepel $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
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          // direct match
41          Object result = eval.evaluate("foo", message);
42          assertEquals("moo", result);
43  
44          // direct match, optional
45          result = eval.evaluate("bar?", message);
46          assertEquals("mar", result);
47  
48          // direct match with * inline
49          result = eval.evaluate("ba?z", message);
50          assertEquals("maz", result);
51  
52          // no match, optional
53          result = eval.evaluate("fool?", message);
54          assertNull(result);
55  
56          try
57          {
58              // no match, required
59              eval.evaluate("fool", message);
60              fail("Should've failed with an exception.");
61          }
62          catch (RequiredValueException rex)
63          {
64              // expected
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          // direct match
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  }