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
16 import java.sql.Timestamp;
17
18 public class ExpressionManagerTestCase extends AbstractMuleTestCase
19 {
20 public void testManager() throws Exception
21 {
22 MuleMessage message = new DefaultMuleMessage("test", muleContext);
23 Object o = muleContext.getExpressionManager().evaluate("function:uuid", message);
24 assertNotNull(o);
25 o = muleContext.getExpressionManager().evaluate("function:now", message);
26 assertNotNull(o);
27 assertTrue(o instanceof Timestamp);
28 }
29
30 public void testRegistration() throws Exception
31 {
32
33
34
35
36
37
38
39
40
41
42
43 try
44 {
45 muleContext.getExpressionManager().registerEvaluator(null);
46 fail("null extractor");
47 }
48 catch (IllegalArgumentException e)
49 {
50
51 }
52 assertNull(muleContext.getExpressionManager().unregisterEvaluator(null));
53
54 }
55
56
57 public void testValidator() throws Exception
58 {
59
60 assertFalse(muleContext.getExpressionManager().isValidExpression("http://${bean:user}:${bean:password}@${header:host}:${header:port}/foo/bar"));
61 assertFalse(muleContext.getExpressionManager().isValidExpression("${bean:user}"));
62
63
64 assertTrue(muleContext.getExpressionManager().isValidExpression("#[bean:user]"));
65 assertTrue(muleContext.getExpressionManager().isValidExpression("http://#[bean:user]:#[bean:password]@#[header:host]:#[header:port]/foo/bar"));
66
67 assertFalse(muleContext.getExpressionManager().isValidExpression("{bean:user}"));
68 assertFalse(muleContext.getExpressionManager().isValidExpression("#{bean:user"));
69 assertFalse(muleContext.getExpressionManager().isValidExpression("user"));
70
71 assertFalse(muleContext.getExpressionManager().isValidExpression("http://#[bean:user:#[bean:password]@#[header:host]:#[header:port]/foo/bar"));
72 assertFalse(muleContext.getExpressionManager().isValidExpression("http://#[bean:user]:##[bean:password]@#[header:host]:#[header:port]/foo/bar"));
73 assertFalse(muleContext.getExpressionManager().isValidExpression("http://#[bean:user]]:##[bean:password]@#[header:host]:#[header:port]/foo/bar"));
74 assertFalse(muleContext.getExpressionManager().isValidExpression("http://#[bean:user]:#[[bean:password]@#[header:host]:#[header:port]/foo/bar"));
75 assertTrue(muleContext.getExpressionManager().isValidExpression("http://#[bean:user]:#[#bean:password]@#[header:host]:#[header:port]/foo/bar"));
76
77 }
78
79 public void testParsing()
80 {
81 MuleMessage msg = new DefaultMuleMessage("test", muleContext);
82 msg.setOutboundProperty("user", "vasya");
83 msg.setOutboundProperty("password", "pupkin");
84 msg.setOutboundProperty("host", "example.com");
85 msg.setOutboundProperty("port", "12345");
86
87 String result = muleContext.getExpressionManager().parse("http://#[header:user]:#[header:password]@#[header:host]:#[header:port]/foo/bar", msg);
88 assertNotNull(result);
89 assertEquals("http://vasya:pupkin@example.com:12345/foo/bar", result);
90 }
91 }