1
2
3
4
5
6
7
8
9
10
11 package org.mule.test.config;
12
13 import org.mule.MuleManager;
14 import org.mule.config.ConfigurationBuilder;
15 import org.mule.config.ConfigurationException;
16 import org.mule.config.builders.MuleXmlConfigurationBuilder;
17 import org.mule.impl.MuleDescriptor;
18 import org.mule.routing.outbound.AbstractOutboundRouter;
19 import org.mule.routing.response.AbstractResponseRouter;
20 import org.mule.tck.AbstractConfigBuilderTestCase;
21 import org.mule.tck.testmodels.fruit.Apple;
22 import org.mule.tck.testmodels.fruit.Orange;
23 import org.mule.tck.testmodels.mule.TestCompressionTransformer;
24 import org.mule.umo.UMODescriptor;
25 import org.mule.umo.endpoint.UMOEndpoint;
26 import org.mule.umo.routing.UMOOutboundRouterCollection;
27 import org.mule.umo.routing.UMOResponseRouterCollection;
28 import org.mule.umo.transformer.UMOTransformer;
29 import org.mule.util.properties.JXPathPropertyExtractor;
30 import org.mule.util.properties.PropertyExtractor;
31
32 import java.util.List;
33 import java.util.Map;
34
35 public class MuleXmlConfigBuilderTestCase extends AbstractConfigBuilderTestCase
36 {
37
38 public String getConfigResources()
39 {
40 return "test-xml-mule-config.xml,test-xml-mule-config-split.xml,test-xml-mule-config-split-properties.xml";
41 }
42
43
44 public ConfigurationBuilder getBuilder()
45 {
46 try
47 {
48 return new MuleXmlConfigurationBuilder();
49 }
50 catch (ConfigurationException e)
51 {
52 fail(e.getMessage());
53 return null;
54 }
55 }
56
57 public void testPropertyExtractorConfig() throws Exception
58 {
59 UMODescriptor d = MuleManager.getInstance()
60 .lookupModel("main")
61 .getDescriptor("propertyExtractorTestComponent");
62 assertNotNull(d);
63 UMOOutboundRouterCollection router = d.getOutboundRouter();
64 assertNotNull(router);
65 List routers = router.getRouters();
66 assertNotNull(routers);
67 assertEquals(1, routers.size());
68 AbstractOutboundRouter theRouter = (AbstractOutboundRouter)routers.get(0);
69 PropertyExtractor pe = theRouter.getPropertyExtractor();
70 assertNotNull(pe);
71
72 assertTrue(pe instanceof JXPathPropertyExtractor);
73 }
74
75 public void testPropertyExtractorResponseRouterConfig() throws Exception
76 {
77 UMODescriptor d = MuleManager.getInstance().lookupModel("main").getDescriptor(
78 "propertyExtractorResponseRouterTestComponent");
79 assertNotNull(d);
80 UMOResponseRouterCollection router = d.getResponseRouter();
81 assertNotNull(router);
82 List routers = router.getRouters();
83 assertNotNull(routers);
84 assertEquals(1, routers.size());
85 AbstractResponseRouter theRouter = (AbstractResponseRouter)routers.get(0);
86 PropertyExtractor pe = theRouter.getCorrelationExtractor();
87 assertNotNull(pe);
88
89 assertTrue(pe instanceof JXPathPropertyExtractor);
90 }
91
92 public void testPropertyTypesConfig() throws Exception
93 {
94 UMODescriptor d = MuleManager.getInstance().lookupModel("main").getDescriptor("testPropertiesComponent");
95 assertNotNull(d);
96 assertNotNull(d.getProperties().get("factoryObject"));
97 assertTrue(d.getProperties().get("factoryObject") instanceof Orange);
98 assertNotNull(d.getProperties().get("containerObject"));
99 assertTrue(d.getProperties().get("containerObject") instanceof Apple);
100 assertNull(d.getProperties().get("doesNotExist"));
101 assertEquals(System.getProperty("os.version"), d.getProperties().get("osVersion"));
102 assertEquals("defaultValue", d.getProperties().get("notASystemProperty"));
103 assertEquals("test1", d.getProperties().get("test1"));
104 assertEquals("test2", d.getProperties().get("test2"));
105 }
106
107 public void testMapPropertyTypesConfig() throws Exception
108 {
109 UMODescriptor d = MuleManager.getInstance().lookupModel("main").getDescriptor("testPropertiesComponent");
110 assertNotNull(d);
111 Map props = (Map)d.getProperties().get("propertiesMap");
112 assertNotNull(props);
113 assertNotNull(props.get("factoryObject"));
114 assertTrue(props.get("factoryObject") instanceof Orange);
115 assertNotNull(props.get("containerObject"));
116 assertTrue(props.get("containerObject") instanceof Apple);
117 assertNull(props.get("doesNotExist"));
118 assertEquals(System.getProperty("os.version"), props.get("osVersion"));
119 assertEquals("defaultValue", props.get("notASystemProperty"));
120 assertEquals("test1", props.get("test1"));
121 assertEquals("test2", props.get("test2"));
122 }
123
124 public void testListPropertyTypesConfig() throws Exception
125 {
126 UMODescriptor d = MuleManager.getInstance().lookupModel("main").getDescriptor("testPropertiesComponent");
127 assertNotNull(d);
128 List props = (List)d.getProperties().get("propertiesList");
129 assertNotNull(props);
130 assertEquals(6, props.size());
131 assertNotNull(props.get(0));
132 assertTrue(props.get(0) instanceof Orange);
133 assertEquals(System.getProperty("os.version"), props.get(1));
134 assertEquals("defaultValue", props.get(2));
135 assertEquals("test1", props.get(3));
136 assertEquals("test2", props.get(4));
137
138
139 assertNotNull(props.get(5));
140 assertTrue(props.get(5) instanceof Apple);
141 }
142
143 public void testEndpointURIParamsConfig()
144 {
145 UMODescriptor d = MuleManager.getInstance().lookupModel("main").getDescriptor("testPropertiesComponent");
146 assertNotNull(d);
147 assertNotNull(d.getInboundEndpoint());
148 assertNotNull(d.getInboundTransformer());
149 assertNotNull(d.getInboundEndpoint().getResponseTransformer());
150 }
151
152
153 public void testTransformerConfig()
154 {
155
156 super.testTransformerConfig();
157
158 UMOTransformer t = MuleManager.getInstance().lookupTransformer("TestCompressionTransformer");
159 assertNotNull(t);
160 assertTrue(t instanceof TestCompressionTransformer);
161
162
163
164 assertEquals("this was set from the manager properties!",
165 ((TestCompressionTransformer)t).getBeanProperty1());
166 assertEquals(12, ((TestCompressionTransformer)t).getBeanProperty2());
167
168 assertEquals(t.getReturnClass(), java.lang.String.class);
169
170 t = MuleManager.getInstance().lookupTransformer("TestTransformer");
171 assertNotNull(t);
172 assertEquals(t.getReturnClass(), byte[].class);
173 }
174
175 public void testSystemPropertyOverride()
176 {
177 Map props = MuleManager.getInstance().getProperties();
178 assertNotNull(props);
179 assertEquals("default", props.get("system-prop2"));
180 }
181
182 public void testGlobalEndpointOverrides()
183 {
184 UMOEndpoint ep = MuleManager.getInstance().lookupEndpoint("orangeEndpoint");
185 assertNotNull(ep);
186 assertEquals(1, ep.getProperties().size());
187 assertEquals("value1", ep.getProperties().get("testGlobal"));
188 assertNull(ep.getFilter());
189
190 MuleDescriptor descriptor = (MuleDescriptor)MuleManager.getInstance().lookupModel("main").getDescriptor(
191 "orangeComponent");
192 assertNotNull(descriptor);
193 ep = descriptor.getInboundRouter().getEndpoint("orangeEndpoint");
194 assertNotNull(ep);
195 assertEquals(2, ep.getProperties().size());
196 assertEquals("value1", ep.getProperties().get("testGlobal"));
197 assertEquals("value1", ep.getProperties().get("testLocal"));
198 assertNotNull(ep.getFilter());
199 }
200
201 }