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.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
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
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
121 }
122 }
123 }