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