1 10 11 package org.mule.tck; 12 13 import java.util.List ; 14 import java.util.Map ; 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 55 { 56 assertEquals("true", MuleManager.getInstance().getProperty("doCompression")); 57 assertNotNull(MuleManager.getInstance().getTransactionManager()); 58 } 59 60 public void testConnectorConfig() throws Exception 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 endpointString = MuleManager.getInstance().lookupEndpointIdentifier("Test Queue", null); 87 assertEquals(endpointString, "test://test.queue"); 88 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 .class); 128 assertNotNull(((TestCompressionTransformer)t).getContainerProperty()); 129 } 130 131 public void testModelConfig() throws Exception 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 151 { 152 UMODescriptor descriptor = MuleManager.getInstance().getModel().getDescriptor("orangeComponent"); 153 154 Map 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 list = (List )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 )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 )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 } 184 185 public void testOutboundRouterConfig() 186 { 187 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 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 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 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 |