View Javadoc
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.test.spring;
8   
9   import org.mule.MessageExchangePattern;
10  import org.mule.api.endpoint.InboundEndpoint;
11  import org.mule.api.transport.MessageReceiver;
12  import org.mule.api.transport.MuleMessageFactory;
13  import org.mule.tck.junit4.FunctionalTestCase;
14  import org.mule.tck.testmodels.mule.TestConnector;
15  import org.mule.tck.testmodels.mule.TestMessageReceiver;
16  import org.mule.transaction.MuleTransactionConfig;
17  import org.mule.transaction.XaTransactionFactory;
18  import org.mule.transport.service.TransportServiceDescriptor;
19  
20  import java.util.Arrays;
21  import java.util.List;
22  
23  import org.junit.Test;
24  
25  import static org.junit.Assert.assertEquals;
26  import static org.junit.Assert.assertNotNull;
27  
28  public class ConnectorServiceOverridesTestCase extends FunctionalTestCase
29  {
30  
31      @Override
32      protected String getConfigResources()
33      {
34          return "org/mule/test/spring/service-overrides.xml";
35      }
36  
37      @Test
38      public void testOverrideMessageReceiver() throws Exception
39      {
40          TestConnector connector = lookupDummyConnector();
41          
42          // create an xa-transacted endpoint (this triggers the cration of an 
43          // xaTransactedMessageReceiver in the service descriptor impl
44          InboundEndpoint endpoint = getTestInboundEndpoint("foo");
45          endpoint.getTransactionConfig().setAction(MuleTransactionConfig.ACTION_ALWAYS_BEGIN);
46          endpoint.getTransactionConfig().setFactory(new XaTransactionFactory());
47          
48          TransportServiceDescriptor serviceDescriptor = connector.getServiceDescriptor();
49  
50          // see if we get the overridden message receiver
51          MessageReceiver receiver = serviceDescriptor.createMessageReceiver(connector, 
52              getTestService(), endpoint);
53          assertEquals(TestMessageReceiver.class, receiver.getClass());        
54      }
55  
56      private TestConnector lookupDummyConnector()
57      {
58          TestConnector connector = (TestConnector) muleContext.getRegistry().lookupConnector("dummyConnector");
59          assertNotNull(connector);
60          return connector;
61      }
62      
63      @Test
64      public void testOverrideMuleMessageFactory() throws Exception
65      {
66          TestConnector connector = lookupDummyConnector();
67          TransportServiceDescriptor serviceDescriptor = connector.getServiceDescriptor();
68  
69          // test if the service override for the message factory works
70          MuleMessageFactory messageFactory = serviceDescriptor.createMuleMessageFactory();
71          assertEquals(MockMuleMessageFactory.class, messageFactory.getClass());
72      }
73  
74      @Test
75      public void testOverrideInbounExchangePatterns() throws Exception
76      {
77          TestConnector connector = lookupDummyConnector();
78          TransportServiceDescriptor serviceDescriptor = connector.getServiceDescriptor();
79          
80          List<MessageExchangePattern> meps = serviceDescriptor.getInboundExchangePatterns();
81          
82          List<MessageExchangePattern> expected = Arrays.asList(MessageExchangePattern.REQUEST_RESPONSE);
83          assertEquals(expected, meps);
84      }
85      
86      @Test
87      public void testOverrideOutboundExchangePatterns() throws Exception
88      {
89          TestConnector connector = lookupDummyConnector();
90          TransportServiceDescriptor serviceDescriptor = connector.getServiceDescriptor();
91          
92          List<MessageExchangePattern> meps = serviceDescriptor.getOutboundExchangePatterns();
93          
94          List<MessageExchangePattern> expected = Arrays.asList(MessageExchangePattern.REQUEST_RESPONSE);
95          assertEquals(expected, meps);
96      }
97  
98      @Test
99      public void testOverrideDefaultExchangePattern() throws Exception
100     {
101         TestConnector connector = lookupDummyConnector();
102         TransportServiceDescriptor serviceDescriptor = connector.getServiceDescriptor();
103         
104         MessageExchangePattern defaultMep = serviceDescriptor.getDefaultExchangePattern();
105         
106         assertEquals(MessageExchangePattern.REQUEST_RESPONSE, defaultMep);
107     }
108 }
109 
110