View Javadoc

1   /*
2    * $Id: FunctionExpressionEvaluatorTestCase.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.tck.AbstractMuleTestCase;
15  import org.mule.tck.testmodels.fruit.Apple;
16  
17  import java.net.InetAddress;
18  import java.sql.Timestamp;
19  import java.util.Date;
20  
21  public class FunctionExpressionEvaluatorTestCase extends AbstractMuleTestCase
22  {
23      public void testFunctions() throws Exception
24      {
25          MuleMessage message = new DefaultMuleMessage(new Apple(), muleContext);
26          FunctionExpressionEvaluator extractor = new FunctionExpressionEvaluator();
27          Object o = extractor.evaluate("uuid", message);
28          assertNotNull(o);
29          o = extractor.evaluate("now", message);
30          assertNotNull(o);
31          assertTrue(o instanceof Timestamp);
32  
33          o = extractor.evaluate("date", message);
34          assertNotNull(o);
35          assertTrue(o instanceof Date);
36  
37          o = extractor.evaluate("hostname", message);
38          assertNotNull(o);
39          assertEquals(InetAddress.getLocalHost().getHostName(), o);
40  
41          o = extractor.evaluate("ip", message);
42          assertNotNull(o);
43          assertEquals(InetAddress.getLocalHost().getHostAddress(), o);
44  
45          o = extractor.evaluate("payloadClass", message);
46          assertNotNull(o);
47          assertEquals(Apple.class.getName(), o);
48  
49          o = extractor.evaluate("shortPayloadClass", message);
50          assertNotNull(o);
51          assertEquals("Apple", o);
52  
53          try
54          {
55              extractor.evaluate("bork", message);
56              fail("bork is not a valid function");
57          }
58          catch (IllegalArgumentException e)
59          {
60              //expected
61          }
62      }
63  
64      public void testFunctionsFromExtractorManager() throws Exception
65      {
66          MuleMessage message = new DefaultMuleMessage(new Apple(), muleContext);
67          Object o = muleContext.getExpressionManager().evaluate("function:uuid", message);
68          assertNotNull(o);
69          o = muleContext.getExpressionManager().evaluate("function:now", message);
70          assertNotNull(o);
71          assertTrue(o instanceof Timestamp);
72  
73          o = muleContext.getExpressionManager().evaluate("function:date", message);
74          assertNotNull(o);
75          assertTrue(o instanceof Date);
76  
77          o = muleContext.getExpressionManager().evaluate("function:hostname", message);
78          assertNotNull(o);
79          assertEquals(InetAddress.getLocalHost().getHostName(), o);
80  
81          o = muleContext.getExpressionManager().evaluate("function:ip", message);
82          assertNotNull(o);
83          assertEquals(InetAddress.getLocalHost().getHostAddress(), o);
84  
85          o = muleContext.getExpressionManager().evaluate("function:payloadClass", message);
86          assertNotNull(o);
87          assertEquals(Apple.class.getName(), o);
88  
89          o = muleContext.getExpressionManager().evaluate("function:shortPayloadClass", message);
90          assertNotNull(o);
91          assertEquals("Apple", o);
92  
93          try
94          {
95              muleContext.getExpressionManager().evaluate("function:bork", message);
96              fail("bork is not a valid function");
97          }
98          catch (IllegalArgumentException e)
99          {
100             //expected
101         }
102 
103         try
104         {
105             muleContext.getExpressionManager().evaluate("function:", message);
106             fail("'Empty string' is not a valid function");
107         }
108         catch (IllegalArgumentException e)
109         {
110             //expected
111         }
112     }
113 }