View Javadoc

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