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