1
2
3
4
5
6
7
8
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
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
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
111 }
112 }
113 }