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.transformer.Transformer;
16 import org.mule.expression.RegistryExpressionEvaluator;
17 import org.mule.tck.FunctionalTestCase;
18 import org.mule.tck.testmodels.fruit.Apple;
19 import org.mule.tck.testmodels.fruit.FruitBasket;
20
21 public class RegistryExpressionEvaluatorTestCase extends FunctionalTestCase
22 {
23 protected String getConfigResources()
24 {
25 return "org/mule/test/integration/registry-expressions-test-config.xml";
26 }
27
28 public void testSimpleRegistryLookup() throws Exception
29 {
30
31 MuleMessage message = new DefaultMuleMessage(new Apple(), muleContext);
32 RegistryExpressionEvaluator eval = new RegistryExpressionEvaluator();
33 eval.setMuleContext(muleContext);
34 Object o = eval.evaluate("bowlToBasket", message);
35 assertNotNull(o);
36 assertTrue(o instanceof Transformer);
37
38 o = eval.evaluate("XXbowlToBasket*", message);
39 assertNull(o);
40
41
42 }
43
44 public void testRegistryLookupWithProperties() throws Exception
45 {
46 MuleMessage message = new DefaultMuleMessage(new Apple(), muleContext);
47 RegistryExpressionEvaluator eval = new RegistryExpressionEvaluator();
48 eval.setMuleContext(muleContext);
49 Object o = eval.evaluate("bowlToBasket.returnClass", message);
50 assertNotNull(o);
51 assertTrue(o instanceof Class);
52 assertEquals(FruitBasket.class, o);
53
54 o = eval.evaluate("XXbowlToBasket*.returnClass", message);
55 assertNull(o);
56
57 o = eval.evaluate("bowlToBasket.returnClass.name", message);
58 assertNotNull(o);
59 assertEquals(FruitBasket.class.getName(), o);
60
61 o = eval.evaluate("bowlToBasket.returnClass.xname*", message);
62 assertNull(o);
63
64 try
65 {
66 o = eval.evaluate("bowlToBasket.returnClass.xname", message);
67 fail("property xname is not valid and is not optional");
68 }
69 catch (Exception e)
70 {
71
72 }
73
74 }
75
76 public void testGlobalEndpointRegistryLookupWithProperties() throws Exception
77 {
78
79 MuleMessage message = new DefaultMuleMessage(new Apple(), muleContext);
80 RegistryExpressionEvaluator eval = new RegistryExpressionEvaluator();
81 eval.setMuleContext(muleContext);
82 Object o = eval.evaluate("myendpoint.toString", message);
83 assertNotNull(o);
84 assertTrue(o instanceof String);
85 assertEquals("test://foo", o);
86
87
88
89
90
91
92
93
94
95
96
97 }
98
99 public void testLookUpbyType() throws Exception
100 {
101 Apple apple = new Apple();
102 muleContext.getRegistry().registerObject("apple", apple);
103 MuleMessage message = new DefaultMuleMessage("foo", muleContext);
104 RegistryExpressionEvaluator eval = new RegistryExpressionEvaluator();
105 eval.setMuleContext(muleContext);
106 Object o = eval.evaluate("type:org.mule.tck.testmodels.fruit.Apple", message);
107 assertNotNull(o);
108 assertEquals(apple, o);
109
110
111 try
112 {
113 o = eval.evaluate("banana", message);
114 fail("No banana in the registry");
115 }
116 catch (Exception e)
117 {
118
119 }
120 }
121
122 }