View Javadoc

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