1
2
3
4
5
6
7
8
9
10
11 package org.mule.module.xml.functional;
12
13 import org.mule.DefaultMuleMessage;
14 import org.mule.api.MuleMessage;
15 import org.mule.api.expression.ExpressionRuntimeException;
16 import org.mule.api.transformer.Transformer;
17 import org.mule.expression.RegistryExpressionEvaluator;
18 import org.mule.tck.junit4.FunctionalTestCase;
19 import org.mule.tck.testmodels.fruit.Apple;
20 import org.mule.tck.testmodels.fruit.FruitBasket;
21
22 import org.junit.Test;
23
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertNotNull;
26 import static org.junit.Assert.assertNull;
27 import static org.junit.Assert.assertTrue;
28
29 public class RegistryExpressionEvaluatorTestCase extends FunctionalTestCase
30 {
31
32 @Override
33 protected String getConfigResources()
34 {
35 return "org/mule/test/integration/registry-expressions-test-config.xml";
36 }
37
38 @Test
39 public void testSimpleRegistryLookup() throws Exception
40 {
41 MuleMessage message = new DefaultMuleMessage(new Apple(), muleContext);
42 RegistryExpressionEvaluator eval = new RegistryExpressionEvaluator();
43 eval.setMuleContext(muleContext);
44 Object o = eval.evaluate("bowlToBasket", message);
45 assertNotNull(o);
46 assertTrue(o instanceof Transformer);
47
48 o = eval.evaluate("XXbowlToBasket*", message);
49 assertNull(o);
50 }
51
52 @Test(expected = ExpressionRuntimeException.class)
53 public void testRegistryLookupWithProperties() throws Exception
54 {
55 MuleMessage message = new DefaultMuleMessage(new Apple(), muleContext);
56 RegistryExpressionEvaluator eval = new RegistryExpressionEvaluator();
57 eval.setMuleContext(muleContext);
58 Object o = eval.evaluate("bowlToBasket.returnClass", message);
59 assertNotNull(o);
60 assertTrue(o instanceof Class);
61 assertEquals(FruitBasket.class, o);
62
63 o = eval.evaluate("XXbowlToBasket*.returnClass", message);
64 assertNull(o);
65
66 o = eval.evaluate("bowlToBasket.returnClass.name", message);
67 assertNotNull(o);
68 assertEquals(FruitBasket.class.getName(), o);
69
70 o = eval.evaluate("bowlToBasket.returnClass.xname*", message);
71 assertNull(o);
72
73
74 o = eval.evaluate("bowlToBasket.returnClass.xname", message);
75 }
76
77 @Test
78 public void testGlobalEndpointRegistryLookupWithProperties() throws Exception
79 {
80 MuleMessage message = new DefaultMuleMessage(new Apple(), muleContext);
81 RegistryExpressionEvaluator eval = new RegistryExpressionEvaluator();
82 eval.setMuleContext(muleContext);
83 Object o = eval.evaluate("myendpoint.toString", message);
84 assertNotNull(o);
85 assertTrue(o instanceof String);
86 assertEquals("test://foo", o);
87
88
89
90
91
92
93
94
95
96
97
98 }
99
100 @Test(expected = ExpressionRuntimeException.class)
101 public void testLookUpbyType() throws Exception
102 {
103 Apple apple = new Apple();
104 muleContext.getRegistry().registerObject("apple", apple);
105 MuleMessage message = new DefaultMuleMessage("foo", muleContext);
106 RegistryExpressionEvaluator eval = new RegistryExpressionEvaluator();
107 eval.setMuleContext(muleContext);
108 Object o = eval.evaluate("type:org.mule.tck.testmodels.fruit.Apple", message);
109 assertNotNull(o);
110 assertEquals(apple, o);
111
112 o = eval.evaluate("banana", message);
113 }
114
115 }