Coverage Report - org.mule.tck.AbstractScriptConfigBuilderTestCase
 
Classes in this File Line Coverage Branch Coverage Complexity
AbstractScriptConfigBuilderTestCase
0%
0/153
0%
0/6
0
 
 1  
 /*
 2  
  * $Id: AbstractScriptConfigBuilderTestCase.java 19651 2010-09-14 15:22:50Z dirk.olmes $
 3  
  * --------------------------------------------------------------------------------------
 4  
  * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
 5  
  *
 6  
  * The software in this package is published under the terms of the CPAL v1.0
 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 org.mule.api.MuleException;
 14  
 import org.mule.api.component.InterfaceBinding;
 15  
 import org.mule.api.component.JavaComponent;
 16  
 import org.mule.api.endpoint.ImmutableEndpoint;
 17  
 import org.mule.api.endpoint.InboundEndpoint;
 18  
 import org.mule.api.endpoint.OutboundEndpoint;
 19  
 import org.mule.api.exception.MessagingExceptionHandler;
 20  
 import org.mule.api.model.Model;
 21  
 import org.mule.api.processor.MessageProcessor;
 22  
 import org.mule.api.routing.OutboundRouter;
 23  
 import org.mule.api.routing.OutboundRouterCollection;
 24  
 import org.mule.api.service.Service;
 25  
 import org.mule.api.transformer.Transformer;
 26  
 import org.mule.exception.AbstractExceptionListener;
 27  
 import org.mule.model.resolvers.LegacyEntryPointResolverSet;
 28  
 import org.mule.routing.ForwardingCatchAllStrategy;
 29  
 import org.mule.routing.filters.MessagePropertyFilter;
 30  
 import org.mule.routing.outbound.OutboundPassThroughRouter;
 31  
 import org.mule.service.ServiceAsyncReplyCompositeMessageSource;
 32  
 import org.mule.service.ServiceCompositeMessageSource;
 33  
 import org.mule.tck.testmodels.fruit.FruitCleaner;
 34  
 import org.mule.tck.testmodels.mule.TestCompressionTransformer;
 35  
 import org.mule.tck.testmodels.mule.TestEntryPointResolverSet;
 36  
 import org.mule.tck.testmodels.mule.TestExceptionStrategy;
 37  
 import org.mule.tck.testmodels.mule.TestResponseAggregator;
 38  
 import org.mule.transformer.TransformerUtils;
 39  
 import org.mule.transformer.types.DataTypeFactory;
 40  
 
 41  
 import java.util.List;
 42  
 import java.util.Map;
 43  
 
 44  
 public abstract class AbstractScriptConfigBuilderTestCase extends FunctionalTestCase
 45  
 {
 46  
 
 47  
     // use legacy entry point resolver?
 48  
     private boolean legacy;
 49  
 
 50  
     protected AbstractScriptConfigBuilderTestCase()
 51  
     {
 52  0
         this(false);
 53  0
     }
 54  
 
 55  
     protected AbstractScriptConfigBuilderTestCase(boolean legacy)
 56  0
     {
 57  0
         this.legacy = legacy;
 58  0
     }
 59  
 
 60  
     public void testManagerConfig() throws Exception
 61  
     {
 62  0
         assertEquals("true", muleContext.getRegistry().lookupObject("doCompression"));
 63  0
         assertNotNull(muleContext.getTransactionManager());
 64  0
     }
 65  
 
 66  
 
 67  
     public void testConnectorConfig() throws Exception
 68  
     {
 69  0
         MessagingExceptionHandler es = muleContext.getRegistry().lookupModel("main").getExceptionListener();
 70  0
         assertNotNull(es);
 71  0
         assertTrue(es.getClass().getName(), es instanceof TestExceptionStrategy);
 72  0
     }
 73  
 
 74  
     public void testGlobalEndpointConfig() throws MuleException
 75  
     {
 76  0
         ImmutableEndpoint endpoint = muleContext.getRegistry().lookupEndpointFactory().getInboundEndpoint(
 77  
             "fruitBowlEndpoint");
 78  0
         assertNotNull(endpoint);
 79  0
         assertEquals(endpoint.getEndpointURI().getAddress(), "fruitBowlPublishQ");
 80  
         
 81  0
         MessagePropertyFilter filter = (MessagePropertyFilter)endpoint.getFilter();
 82  0
         assertNotNull(filter);
 83  0
         assertEquals("foo=bar", filter.getPattern());
 84  
 
 85  0
         ImmutableEndpoint ep = muleContext.getRegistry().lookupEndpointFactory().getInboundEndpoint("testEPWithCS");
 86  0
         assertNotNull(ep);
 87  0
     }
 88  
 
 89  
     public void testEndpointConfig() throws MuleException
 90  
     {
 91  
         // test that targets have been resolved on targets
 92  0
         ImmutableEndpoint endpoint = muleContext.getRegistry().lookupEndpointFactory().getInboundEndpoint(
 93  
             "waterMelonEndpoint");
 94  0
         assertNotNull(endpoint);
 95  
         // aliases no longer possible
 96  0
         assertEquals("test.queue", endpoint.getEndpointURI().getAddress());
 97  
 
 98  0
         Service service = muleContext.getRegistry().lookupService("orangeComponent");
 99  0
         ImmutableEndpoint ep = ((ServiceCompositeMessageSource) service.getMessageSource()).getEndpoint("Orange");
 100  0
         assertNotNull(ep);
 101  0
         final List responseTransformers = ep.getResponseTransformers();
 102  0
         assertNotNull(responseTransformers);
 103  0
         assertFalse(responseTransformers.isEmpty());
 104  0
         final Object responseTransformer = responseTransformers.get(0);
 105  0
         assertTrue(responseTransformer instanceof TestCompressionTransformer);
 106  0
     }
 107  
 
 108  
     public void testExceptionStrategy()
 109  
     {
 110  0
         Service service = muleContext.getRegistry().lookupService("orangeComponent");
 111  0
         assertNotNull(muleContext.getRegistry().lookupModel("main").getExceptionListener());
 112  0
         assertNotNull(service.getExceptionListener());
 113  
 
 114  0
         assertTrue(((AbstractExceptionListener) service.getExceptionListener()).getMessageProcessors().size() > 0);
 115  0
         OutboundEndpoint ep = (OutboundEndpoint) ((AbstractExceptionListener) service.getExceptionListener()).getMessageProcessors().get(0);
 116  
 
 117  0
         assertEquals("test://orange.exceptions", ep.getEndpointURI().toString());
 118  0
     }
 119  
 
 120  
     public void testTransformerConfig()
 121  
     {
 122  0
         Transformer t = muleContext.getRegistry().lookupTransformer("TestCompressionTransformer");
 123  0
         assertNotNull(t);
 124  0
         assertTrue(t instanceof TestCompressionTransformer);
 125  0
         assertEquals(t.getReturnDataType(), DataTypeFactory.STRING);
 126  0
         assertNotNull(((TestCompressionTransformer) t).getContainerProperty());
 127  0
     }
 128  
 
 129  
     public void testModelConfig() throws Exception
 130  
     {
 131  0
         Model model = muleContext.getRegistry().lookupModel("main");
 132  0
         assertNotNull(model);
 133  0
         assertEquals("main", model.getName());
 134  0
         if (legacy)
 135  
         {
 136  0
             assertTrue(model.getEntryPointResolverSet() instanceof LegacyEntryPointResolverSet);
 137  
         }
 138  
         else
 139  
         {
 140  0
             assertTrue(model.getEntryPointResolverSet() instanceof TestEntryPointResolverSet);
 141  
         }
 142  0
         assertTrue(model.getExceptionListener() instanceof TestExceptionStrategy);
 143  
 
 144  0
         assertTrue(((AbstractExceptionListener) model.getExceptionListener()).getMessageProcessors().size() > 0);
 145  0
         OutboundEndpoint ep = (OutboundEndpoint) ((AbstractExceptionListener) model.getExceptionListener()).getMessageProcessors().get(0);
 146  
 
 147  0
         assertEquals("test://component.exceptions", ep.getEndpointURI().toString());
 148  
 
 149  
         // assertTrue(model.isComponentRegistered("orangeComponent"));
 150  0
     }
 151  
 
 152  
     /*
 153  
      * Since MULE-1933, Service no longer has properties and most properties are set on endpoint.
 154  
      * So lets continue to test properties, but on targets instead.
 155  
      */
 156  
     public void testEndpointPropertiesConfig() throws Exception
 157  
     {
 158  0
         ImmutableEndpoint endpoint = muleContext.getRegistry().lookupEndpointFactory().getInboundEndpoint(
 159  
             "endpointWithProps");
 160  
 
 161  0
         Map props = endpoint.getProperties();
 162  0
         assertNotNull(props);
 163  0
         assertEquals("9", props.get("segments"));
 164  0
         assertEquals("4.21", props.get("radius"));
 165  0
         assertEquals("Juicy Baby!", props.get("brand"));
 166  
 
 167  0
         assertNotNull(props.get("listProperties"));
 168  0
         List list = (List) props.get("listProperties");
 169  0
         assertEquals(3, list.size());
 170  0
         assertEquals("prop1", list.get(0));
 171  0
         assertEquals("prop2", list.get(1));
 172  0
         assertEquals("prop3", list.get(2));
 173  
 
 174  0
         assertNotNull(props.get("arrayProperties"));
 175  0
         list = (List) props.get("arrayProperties");
 176  0
         assertEquals(3, list.size());
 177  0
         assertEquals("prop4", list.get(0));
 178  0
         assertEquals("prop5", list.get(1));
 179  0
         assertEquals("prop6", list.get(2));
 180  
 
 181  0
         assertNotNull(props.get("mapProperties"));
 182  0
         props = (Map) props.get("mapProperties");
 183  0
         assertEquals("prop1", props.get("prop1"));
 184  0
         assertEquals("prop2", props.get("prop2"));
 185  
 
 186  0
         assertEquals(6, endpoint.getProperties().size());
 187  0
     }
 188  
 
 189  
     public void testOutboundRouterConfig()
 190  
     {
 191  
         // test outbound message router
 192  0
         Service service = muleContext.getRegistry().lookupService("orangeComponent");
 193  0
         assertNotNull(service.getOutboundMessageProcessor());
 194  0
         OutboundRouterCollection router = (OutboundRouterCollection) service.getOutboundMessageProcessor();
 195  0
         assertNull(router.getCatchAllStrategy());
 196  0
         assertEquals(1, router.getRoutes().size());
 197  
         // check first Router
 198  0
         OutboundRouter route1 = (OutboundRouter) router.getRoutes().get(0);
 199  0
         assertTrue(route1 instanceof OutboundPassThroughRouter);
 200  0
         assertEquals(1, route1.getRoutes().size());
 201  0
     }
 202  
 
 203  
     public void testBindingConfig()
 204  
     {
 205  
         // test outbound message router
 206  0
         Service service = muleContext.getRegistry().lookupService("orangeComponent");
 207  0
         assertNotNull(service.getComponent());
 208  0
         assertTrue(service.getComponent() instanceof JavaComponent);
 209  0
         List<InterfaceBinding> bindings= ((JavaComponent) service.getComponent()).getInterfaceBindings();
 210  0
         assertNotNull(bindings);
 211  
 
 212  0
         assertEquals(2, bindings.size());
 213  
         // check first Router
 214  0
         InterfaceBinding route1 = bindings.get(0);
 215  0
         assertEquals(FruitCleaner.class, route1.getInterface());
 216  0
         assertEquals("wash", route1.getMethod());
 217  0
         assertNotNull(route1.getEndpoint());
 218  
         // check second Router
 219  0
         InterfaceBinding route2 = bindings.get(1);
 220  0
         assertEquals(FruitCleaner.class, route2.getInterface());
 221  0
         assertEquals("polish", route2.getMethod());
 222  0
         assertNotNull(route1.getEndpoint());
 223  0
     }
 224  
 
 225  
     public void testDescriptorEndpoints()
 226  
     {
 227  0
         Service service = muleContext.getRegistry().lookupService("orangeComponent");
 228  0
         assertEquals(1, ((OutboundRouterCollection) service.getOutboundMessageProcessor()).getRoutes().size());
 229  0
         OutboundRouter router = (OutboundRouter) ((OutboundRouterCollection)service.getOutboundMessageProcessor()).getRoutes().get(0);
 230  0
         assertEquals(1, router.getRoutes().size());
 231  0
         MessageProcessor mp = router.getRoutes().get(0);
 232  0
         assertNotNull(mp);
 233  0
         assertTrue(mp instanceof ImmutableEndpoint);
 234  0
         ImmutableEndpoint endpoint = (ImmutableEndpoint) mp;
 235  0
         assertNotNull(endpoint);
 236  0
         assertEquals("appleInEndpoint", endpoint.getName());
 237  0
         assertNotNull(endpoint.getTransformers());
 238  0
         assertTrue(TransformerUtils.firstOrNull(endpoint.getTransformers()) instanceof TestCompressionTransformer);
 239  
 
 240  0
         assertEquals(2, ((ServiceCompositeMessageSource) service.getMessageSource()).getEndpoints().size());
 241  0
         assertNotNull(((ServiceCompositeMessageSource) service.getMessageSource()).getCatchAllStrategy());
 242  0
         assertTrue(((ServiceCompositeMessageSource) service.getMessageSource()).getCatchAllStrategy() instanceof ForwardingCatchAllStrategy);
 243  0
         ForwardingCatchAllStrategy fcas = (ForwardingCatchAllStrategy)((ServiceCompositeMessageSource) service.getMessageSource()).getCatchAllStrategy();
 244  0
         assertNotNull(fcas.getEndpoint());
 245  0
         assertEquals("test://catch.all", fcas.getEndpoint().getEndpointURI().toString());
 246  0
         endpoint = ((ServiceCompositeMessageSource) service.getMessageSource()).getEndpoint("orangeEndpoint");
 247  0
         assertNotNull(endpoint);
 248  0
         assertEquals("orangeEndpoint", endpoint.getName());
 249  0
         assertEquals("orangeQ", endpoint.getEndpointURI().getAddress());
 250  0
         assertNotNull(endpoint.getTransformers());
 251  0
         assertTrue(TransformerUtils.firstOrNull(endpoint.getTransformers()) instanceof TestCompressionTransformer);
 252  0
     }
 253  
 
 254  
     public void testInboundRouterConfig()
 255  
     {
 256  0
         Service service = muleContext.getRegistry().lookupService("orangeComponent");
 257  0
         assertNotNull(service.getMessageSource());
 258  0
         ServiceCompositeMessageSource messageRouter = (ServiceCompositeMessageSource) service.getMessageSource();
 259  0
         assertNotNull(messageRouter.getCatchAllStrategy());
 260  0
         assertEquals(0, messageRouter.getMessageProcessors().size());
 261  0
         assertTrue(messageRouter.getCatchAllStrategy() instanceof ForwardingCatchAllStrategy);
 262  0
         assertEquals(2, messageRouter.getEndpoints().size());
 263  0
     }
 264  
 
 265  
     public void testResponseRouterConfig()
 266  
     {
 267  0
         Service service = muleContext.getRegistry().lookupService("orangeComponent");
 268  0
         assertNotNull(service.getAsyncReplyMessageSource());
 269  
         
 270  0
         ServiceAsyncReplyCompositeMessageSource messageRouter = service.getAsyncReplyMessageSource();
 271  0
         assertNull(messageRouter.getCatchAllStrategy());
 272  0
         assertEquals(10001, messageRouter.getTimeout().longValue());
 273  0
         assertEquals(1, messageRouter.getMessageProcessors().size());
 274  
         
 275  0
         MessageProcessor router = messageRouter.getMessageProcessors().get(0);
 276  0
         assertTrue(router instanceof TestResponseAggregator);
 277  0
         assertNotNull(messageRouter.getEndpoints());
 278  0
         assertEquals(2, messageRouter.getEndpoints().size());
 279  
         
 280  0
         InboundEndpoint ep = messageRouter.getEndpoints().get(0);
 281  0
         assertEquals("response1", ep.getEndpointURI().getAddress());
 282  
         
 283  0
         ep = messageRouter.getEndpoints().get(1);
 284  0
         assertEquals("AppleResponseQueue", ep.getEndpointURI().getAddress());
 285  0
     }
 286  
 }