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