View Javadoc

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