View Javadoc

1   /*
2    * $Id: CustomExpressionEvaluatorTestCase.java 19191 2010-08-25 21:05:23Z tcarlson $
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.ExpressionEvaluator;
16  import org.mule.tck.AbstractMuleTestCase;
17  
18  import java.util.Map;
19  
20  /**
21   * Tests a custom expression evaluator using direct registration with the manager.
22   */
23  public class CustomExpressionEvaluatorTestCase extends AbstractMuleTestCase
24  {
25  
26      public void testCustomExpressionEvaluator()
27      {
28          muleContext.getExpressionManager().registerEvaluator(new FooExpressionEvaluator());
29  
30          Object result = muleContext.getExpressionManager().evaluate("#[foo:abc]",
31              new DefaultMuleMessage("test", (Map) null, muleContext));
32          assertNotNull(result);
33          assertEquals("Wrong evaluation result", "testabc", result);
34      }
35  
36      public static class FooExpressionEvaluator implements ExpressionEvaluator
37      {
38  
39          public Object evaluate(String expression, MuleMessage message)
40          {
41              return message.getPayload() + expression;
42          }
43  
44          public void setName(String name)
45          {
46              throw new UnsupportedOperationException("setName");
47          }
48  
49          public String getName()
50          {
51              return "foo";
52          }
53      }
54  
55  }