View Javadoc

1   /*
2    * $Id: MessageExpressionEvaluatorTestCase.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  package org.mule.expression;
11  
12  import org.mule.DefaultMuleMessage;
13  import org.mule.api.MuleMessage;
14  import org.mule.message.DefaultExceptionPayload;
15  import org.mule.tck.AbstractMuleTestCase;
16  
17  public class MessageExpressionEvaluatorTestCase extends AbstractMuleTestCase
18  {
19      public void testUsingEvaluatorDirectly() throws Exception
20      {
21          MessageExpressionEvaluator eval = new MessageExpressionEvaluator();
22          MuleMessage message = new DefaultMuleMessage("test", muleContext);
23          message.setCorrelationId(message.getUniqueId());
24          message.setCorrelationSequence(1);
25          message.setCorrelationGroupSize(2);
26          message.setReplyTo("foo");
27          message.setEncoding("UTF-8");
28          Exception e = new Exception("dummy");
29          message.setExceptionPayload(new DefaultExceptionPayload(e));
30  
31          //no expression
32          Object result = eval.evaluate(null, message);
33          assertNotNull(result);
34          assertEquals(message, result);
35  
36          //no expression
37          result = eval.evaluate(null, null);
38          assertNull(result);
39  
40          assertEquals(message.getUniqueId(), eval.evaluate("id", message));
41          assertEquals(message.getUniqueId(), eval.evaluate("correlationId", message));
42          assertEquals(new Integer(1), eval.evaluate("correlationSequence", message));
43          assertEquals(new Integer(2), eval.evaluate("correlationGroupSize", message));
44          assertEquals("foo", eval.evaluate("replyTo", message));
45          assertEquals(e, eval.evaluate("exception", message));
46          assertEquals("UTF-8", eval.evaluate("encoding", message));
47          assertEquals("test", eval.evaluate("payload", message));
48  
49          try
50          {
51              eval.evaluate("xxx", message);
52              fail("xxx is not a supported expresion");
53          }
54          catch (Exception e1)
55          {
56              //Exprected
57          }
58      }
59  
60      /**
61       * Make sure the evaluator gets registered properly
62       *
63       * @throws Exception if the test fails
64       */
65      public void testUsingManager() throws Exception
66      {
67          MuleMessage message = new DefaultMuleMessage("test", muleContext);
68          message.setCorrelationId(message.getUniqueId());
69          message.setCorrelationSequence(1);
70          message.setCorrelationGroupSize(2);
71          message.setReplyTo("foo");
72          message.setEncoding("UTF-8");
73          Exception e = new Exception("dummy");
74          message.setExceptionPayload(new DefaultExceptionPayload(e));
75  
76  
77          assertEquals(message.getUniqueId(), muleContext.getExpressionManager().evaluate("#[message:id]", message));
78          assertEquals(message.getUniqueId(), muleContext.getExpressionManager().evaluate("#[message:correlationId]", message));
79          assertEquals(new Integer(1), muleContext.getExpressionManager().evaluate("#[message:correlationSequence]", message));
80          assertEquals(new Integer(2), muleContext.getExpressionManager().evaluate("#[message:correlationGroupSize]", message));
81          assertEquals("foo", muleContext.getExpressionManager().evaluate("#[message:replyTo]", message));
82          assertEquals(e, muleContext.getExpressionManager().evaluate("#[message:exception]", message));
83          assertEquals("UTF-8", muleContext.getExpressionManager().evaluate("#[message:encoding]", message));
84          assertEquals("test", muleContext.getExpressionManager().evaluate("#[message:payload]", message));
85  
86          try
87          {
88              muleContext.getExpressionManager().evaluate("#[message:xxx]", message, true);
89              fail("xxx is not a supported expresion");
90          }
91          catch (Exception e1)
92          {
93              //Expected
94          }
95      }
96  }