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