KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mule > tck > AbstractScriptConfigBuilderTestCase


1 /*
2  * $Id: AbstractScriptConfigBuilderTestCase.java 3937 2006-11-20 16:04:25Z lajos $
3  * --------------------------------------------------------------------------------------
4  * Copyright (c) MuleSource, Inc. All rights reserved. http://www.mulesource.com
5  *
6  * The software in this package is published under the terms of the MuleSource MPL
7  * license, a copy of which has been included with this distribution in the
8  * LICENSE.txt file.
9  */

10
11 package org.mule.tck;
12
13 import java.util.List JavaDoc;
14 import java.util.Map JavaDoc;
15
16 import org.mule.MuleManager;
17 import org.mule.impl.AbstractExceptionListener;
18 import org.mule.impl.MuleDescriptor;
19 import org.mule.impl.container.DescriptorContainerKeyPair;
20 import org.mule.interceptors.LoggingInterceptor;
21 import org.mule.interceptors.TimerInterceptor;
22 import org.mule.providers.SimpleRetryConnectionStrategy;
23 import org.mule.routing.ForwardingCatchAllStrategy;
24 import org.mule.routing.filters.xml.JXPathFilter;
25 import org.mule.routing.outbound.OutboundPassThroughRouter;
26 import org.mule.tck.testmodels.fruit.Orange;
27 import org.mule.tck.testmodels.mule.TestCompressionTransformer;
28 import org.mule.tck.testmodels.mule.TestConnector;
29 import org.mule.tck.testmodels.mule.TestDefaultLifecycleAdapterFactory;
30 import org.mule.tck.testmodels.mule.TestEntryPointResolver;
31 import org.mule.tck.testmodels.mule.TestExceptionStrategy;
32 import org.mule.tck.testmodels.mule.TestResponseAggregator;
33 import org.mule.umo.UMODescriptor;
34 import org.mule.umo.UMOException;
35 import org.mule.umo.UMOInterceptorStack;
36 import org.mule.umo.endpoint.UMOEndpoint;
37 import org.mule.umo.manager.UMOAgent;
38 import org.mule.umo.model.UMOModel;
39 import org.mule.umo.routing.UMOInboundMessageRouter;
40 import org.mule.umo.routing.UMOOutboundMessageRouter;
41 import org.mule.umo.routing.UMOOutboundRouter;
42 import org.mule.umo.routing.UMOResponseMessageRouter;
43 import org.mule.umo.routing.UMOResponseRouter;
44 import org.mule.umo.transformer.UMOTransformer;
45
46 public abstract class AbstractScriptConfigBuilderTestCase extends FunctionalTestCase
47 {
48
49     protected AbstractScriptConfigBuilderTestCase()
50     {
51         setDisposeManagerPerSuite(true);
52     }
53
54     public void testManagerConfig() throws Exception JavaDoc
55     {
56         assertEquals("true", MuleManager.getInstance().getProperty("doCompression"));
57         assertNotNull(MuleManager.getInstance().getTransactionManager());
58     }
59
60     public void testConnectorConfig() throws Exception JavaDoc
61     {
62         TestConnector c = (TestConnector)MuleManager.getInstance().lookupConnector("dummyConnector");
63         assertNotNull(c);
64         assertNotNull(c.getExceptionListener());
65         assertTrue(c.getExceptionListener() instanceof TestExceptionStrategy);
66         assertNotNull(c.getConnectionStrategy());
67         assertTrue(c.getConnectionStrategy() instanceof SimpleRetryConnectionStrategy);
68         assertEquals(4, ((SimpleRetryConnectionStrategy)c.getConnectionStrategy()).getRetryCount());
69         assertEquals(3000, ((SimpleRetryConnectionStrategy)c.getConnectionStrategy()).getFrequency());
70     }
71
72     public void testGlobalEndpointConfig()
73     {
74         UMOEndpoint endpoint = MuleManager.getInstance().lookupEndpoint("fruitBowlEndpoint");
75         assertNotNull(endpoint);
76         assertEquals(endpoint.getEndpointURI().getAddress(), "fruitBowlPublishQ");
77         assertNotNull(endpoint.getFilter());
78         JXPathFilter filter = (JXPathFilter)endpoint.getFilter();
79         assertEquals("name", filter.getExpression());
80         assertEquals("bar", filter.getExpectedValue());
81         assertEquals("http://foo.com", filter.getNamespaces().get("foo"));
82     }
83
84     public void testEndpointConfig()
85     {
86         String JavaDoc endpointString = MuleManager.getInstance().lookupEndpointIdentifier("Test Queue", null);
87         assertEquals(endpointString, "test://test.queue");
88         // test that endpoints have been resolved on endpoints
89
UMOEndpoint endpoint = MuleManager.getInstance().lookupEndpoint("waterMelonEndpoint");
90         assertNotNull(endpoint);
91         assertEquals("test.queue", endpoint.getEndpointURI().getAddress());
92
93         UMODescriptor descriptor = MuleManager.getInstance().getModel().getDescriptor("orangeComponent");
94         UMOEndpoint ep = descriptor.getInboundRouter().getEndpoint("Orange");
95         assertNotNull(ep);
96         assertNotNull(ep.getResponseTransformer());
97         assertTrue(ep.getResponseTransformer() instanceof TestCompressionTransformer);
98     }
99
100     public void testInterceptorStacks()
101     {
102         UMOInterceptorStack stack = MuleManager.getInstance().lookupInterceptorStack("default");
103         assertNotNull(stack);
104         assertEquals(2, stack.getInterceptors().size());
105         assertTrue(stack.getInterceptors().get(0) instanceof LoggingInterceptor);
106         assertTrue(stack.getInterceptors().get(1) instanceof TimerInterceptor);
107     }
108
109     public void testExceptionStrategy()
110     {
111         UMODescriptor descriptor = MuleManager.getInstance().getModel().getDescriptor("orangeComponent");
112         assertNotNull(MuleManager.getInstance().getModel().getExceptionListener());
113         assertNotNull(descriptor.getExceptionListener());
114
115         assertTrue(((AbstractExceptionListener)descriptor.getExceptionListener()).getEndpoints().size() > 0);
116         UMOEndpoint ep = (UMOEndpoint)((AbstractExceptionListener)descriptor.getExceptionListener()).getEndpoints()
117             .get(0);
118
119         assertEquals("test://orange.exceptions", ep.getEndpointURI().toString());
120     }
121
122     public void testTransformerConfig()
123     {
124         UMOTransformer t = MuleManager.getInstance().lookupTransformer("TestCompressionTransformer");
125         assertNotNull(t);
126         assertTrue(t instanceof TestCompressionTransformer);
127         assertEquals(t.getReturnClass(), String JavaDoc.class);
128         assertNotNull(((TestCompressionTransformer)t).getContainerProperty());
129     }
130
131     public void testModelConfig() throws Exception JavaDoc
132     {
133         UMOModel model = MuleManager.getInstance().getModel();
134         assertNotNull(model);
135         assertEquals("test-model", model.getName());
136         assertTrue(model.getEntryPointResolver() instanceof TestEntryPointResolver);
137         assertTrue(model.getExceptionListener() instanceof TestExceptionStrategy);
138
139         assertTrue(((AbstractExceptionListener)model.getExceptionListener()).getEndpoints().size() > 0);
140         UMOEndpoint ep = (UMOEndpoint)((AbstractExceptionListener)model.getExceptionListener()).getEndpoints()
141             .get(0);
142
143         assertEquals("test://component.exceptions", ep.getEndpointURI().toString());
144
145         assertTrue(model.getLifecycleAdapterFactory() instanceof TestDefaultLifecycleAdapterFactory);
146
147         assertTrue(model.isComponentRegistered("orangeComponent"));
148     }
149
150     public void testPropertiesConfig() throws Exception JavaDoc
151     {
152         UMODescriptor descriptor = MuleManager.getInstance().getModel().getDescriptor("orangeComponent");
153
154         Map JavaDoc props = descriptor.getProperties();
155         assertNotNull(props);
156         assertEquals("9", props.get("segments"));
157         assertEquals("4.21", props.get("radius"));
158         assertEquals("Juicy Baby!", props.get("brand"));
159
160         assertNotNull(props.get("listProperties"));
161         List JavaDoc list = (List JavaDoc)props.get("listProperties");
162         assertEquals(3, list.size());
163         assertEquals("prop1", list.get(0));
164         assertEquals("prop2", list.get(1));
165         assertEquals("prop3", list.get(2));
166
167         assertNotNull(props.get("arrayProperties"));
168         list = (List JavaDoc)props.get("arrayProperties");
169         assertEquals(3, list.size());
170         assertEquals("prop4", list.get(0));
171         assertEquals("prop5", list.get(1));
172         assertEquals("prop6", list.get(2));
173
174         assertNotNull(props.get("mapProperties"));
175         props = (Map JavaDoc)props.get("mapProperties");
176         assertEquals("prop1", props.get("prop1"));
177         assertEquals("prop2", props.get("prop2"));
178
179         assertEquals(7, descriptor.getProperties().size());
180         assertEquals(2, descriptor.getInboundRouter().getEndpoints().size());
181         // assertNotNull(descriptor.getInboundEndpoint());
182
// assertNotNull(descriptor.getOutboundEndpoint());
183
}
184
185     public void testOutboundRouterConfig()
186     {
187         // test outbound message router
188
UMODescriptor descriptor = MuleManager.getInstance().getModel().getDescriptor("orangeComponent");
189         assertNotNull(descriptor.getOutboundRouter());
190         UMOOutboundMessageRouter router = descriptor.getOutboundRouter();
191         assertNull(router.getCatchAllStrategy());
192         assertEquals(1, router.getRouters().size());
193         // check first Router
194
UMOOutboundRouter route1 = (UMOOutboundRouter)router.getRouters().get(0);
195         assertTrue(route1 instanceof OutboundPassThroughRouter);
196         assertEquals(1, route1.getEndpoints().size());
197     }
198
199     public void testDescriptorEndpoints()
200     {
201         UMODescriptor descriptor = MuleManager.getInstance().getModel().getDescriptor("orangeComponent");
202         assertEquals(1, descriptor.getOutboundRouter().getRouters().size());
203         UMOOutboundRouter router = (UMOOutboundRouter)descriptor.getOutboundRouter().getRouters().get(0);
204         assertEquals(1, router.getEndpoints().size());
205         UMOEndpoint endpoint = (UMOEndpoint)router.getEndpoints().get(0);
206         assertNotNull(endpoint);
207         assertEquals("appleInEndpoint", endpoint.getName());
208         assertNotNull(endpoint.getTransformer());
209         assertTrue(endpoint.getTransformer() instanceof TestCompressionTransformer);
210
211         // check the global endpoint
212
endpoint = MuleManager.getInstance().lookupEndpoint("appleInEndpoint");
213         assertNotNull(endpoint);
214         assertNull(endpoint.getTransformer());
215
216         assertEquals(2, descriptor.getInboundRouter().getEndpoints().size());
217         assertNotNull(descriptor.getInboundRouter().getCatchAllStrategy());
218         assertTrue(descriptor.getInboundRouter().getCatchAllStrategy() instanceof ForwardingCatchAllStrategy);
219         assertNotNull(descriptor.getInboundRouter().getCatchAllStrategy().getEndpoint());
220         assertEquals("test://catch.all", descriptor.getInboundRouter()
221             .getCatchAllStrategy()
222             .getEndpoint()
223             .getEndpointURI()
224             .toString());
225         endpoint = descriptor.getInboundRouter().getEndpoint("orangeEndpoint");
226         assertNotNull(endpoint);
227         assertEquals("orangeEndpoint", endpoint.getName());
228         assertEquals("orangeQ", endpoint.getEndpointURI().getAddress());
229         assertNotNull(endpoint.getTransformer());
230         assertTrue(endpoint.getTransformer() instanceof TestCompressionTransformer);
231
232         // check the global endpoint
233
endpoint = MuleManager.getInstance().lookupEndpoint("orangeEndpoint");
234         assertNotNull(endpoint);
235         assertNull(endpoint.getTransformer());
236     }
237
238     public void testInboundRouterConfig()
239     {
240         UMODescriptor descriptor = MuleManager.getInstance().getModel().getDescriptor("orangeComponent");
241         assertNotNull(descriptor.getInboundRouter());
242         UMOInboundMessageRouter messageRouter = descriptor.getInboundRouter();
243         assertNotNull(messageRouter.getCatchAllStrategy());
244         assertEquals(0, messageRouter.getRouters().size());
245         assertTrue(messageRouter.getCatchAllStrategy() instanceof ForwardingCatchAllStrategy);
246         assertEquals(2, messageRouter.getEndpoints().size());
247     }
248
249     public void testResponseRouterConfig()
250     {
251         UMODescriptor descriptor = MuleManager.getInstance().getModel().getDescriptor("orangeComponent");
252         assertNotNull(descriptor.getResponseRouter());
253         UMOResponseMessageRouter messageRouter = descriptor.getResponseRouter();
254         assertNull(messageRouter.getCatchAllStrategy());
255         assertEquals(10001, messageRouter.getTimeout());
256         assertEquals(1, messageRouter.getRouters().size());
257         UMOResponseRouter router = (UMOResponseRouter)messageRouter.getRouters().get(0);
258         assertTrue(router instanceof TestResponseAggregator);
259         assertNotNull(messageRouter.getEndpoints());
260         assertEquals(2, messageRouter.getEndpoints().size());
261         UMOEndpoint ep = (UMOEndpoint)messageRouter.getEndpoints().get(0);
262         assertEquals("response1", ep.getEndpointURI().getAddress());
263         assertEquals(UMOEndpoint.ENDPOINT_TYPE_RESPONSE, ep.getType());
264         ep = (UMOEndpoint)messageRouter.getEndpoints().get(1);
265         assertEquals("AppleResponseQueue", ep.getEndpointURI().getAddress());
266         assertEquals(UMOEndpoint.ENDPOINT_TYPE_RESPONSE, ep.getType());
267     }
268
269     public void testObjectReferences() throws UMOException
270     {
271         MuleDescriptor descriptor = (MuleDescriptor)MuleManager.getInstance().getModel().getDescriptor(
272             "orangeComponent");
273         assertEquals(new DescriptorContainerKeyPair("orangeComponent", "orange"),
274             descriptor.getImplementation());
275         assertEquals("descriptor", descriptor.getContainer());
276         assertNotNull(descriptor.getProperties().get("orange"));
277         assertEquals(Orange.class, descriptor.getImplementationClass());
278     }
279
280     public void testAgentConfiguration() throws UMOException
281     {
282         UMOAgent agent = MuleManager.getInstance().unregisterAgent("jmxAgent");
283         assertNotNull(agent);
284     }
285 }
286
Popular Tags