1   /*
2    * $Id: FunctionExpressionEvaluatorTestCase.java 11292 2008-03-09 12:12:25Z rossmason $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.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.util.expression.FunctionExpressionEvaluator;
14  import org.mule.util.expression.ExpressionEvaluatorManager;
15  import org.mule.api.MuleMessage;
16  import org.mule.tck.AbstractMuleTestCase;
17  
18  import java.net.InetAddress;
19  import java.sql.Timestamp;
20  import java.util.Date;
21  
22  public class FunctionExpressionEvaluatorTestCase extends AbstractMuleTestCase
23  {
24      public void testFunctions() throws Exception
25      {
26          MuleMessage message = new DefaultMuleMessage("test");
27          FunctionExpressionEvaluator extractor = new FunctionExpressionEvaluator();
28          Object o = extractor.evaluate("uuid", message);
29          assertNotNull(o);
30          o = extractor.evaluate("now", message);
31          assertNotNull(o);
32          assertTrue(o instanceof Timestamp);
33  
34          o = extractor.evaluate("date", message);
35          assertNotNull(o);
36          assertTrue(o instanceof Date);
37  
38          o = extractor.evaluate("hostname", message);
39          assertNotNull(o);
40          assertEquals(InetAddress.getLocalHost().getHostName(), o);
41  
42          o = extractor.evaluate("ip", message);
43          assertNotNull(o);
44          assertEquals(InetAddress.getLocalHost().getHostAddress(), o);
45  
46          try
47          {
48              o = extractor.evaluate("bork", message);
49              fail("bork is not a valid function");
50          }
51          catch (Exception e)
52          {
53              //expected
54          }
55      }
56  
57      public void testFunctionsFromExtractorManager() throws Exception
58      {
59          MuleMessage message = new DefaultMuleMessage("test");
60          Object o = ExpressionEvaluatorManager.evaluate("function:uuid", message);
61          assertNotNull(o);
62          o = ExpressionEvaluatorManager.evaluate("function:now", message);
63          assertNotNull(o);
64          assertTrue(o instanceof Timestamp);
65  
66          o = ExpressionEvaluatorManager.evaluate("function:date", message);
67          assertNotNull(o);
68          assertTrue(o instanceof Date);
69  
70          o = ExpressionEvaluatorManager.evaluate("function:hostname", message);
71          assertNotNull(o);
72          assertEquals(InetAddress.getLocalHost().getHostName(), o);
73  
74          o = ExpressionEvaluatorManager.evaluate("function:ip", message);
75          assertNotNull(o);
76          assertEquals(InetAddress.getLocalHost().getHostAddress(), o);
77  
78          try
79          {
80              o = ExpressionEvaluatorManager.evaluate("function:bork", message);
81              fail("bork is not a valid function");
82          }
83          catch (Exception e)
84          {
85              //expected
86          }
87      }
88  }