View Javadoc

1   /*
2    * $Id: EndpointTranformersInAttributesTestCase.java 20781 2010-12-16 13:19:09Z dfeist $
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.config.spring.parsers.endpoint;
12  
13  import org.mule.api.MuleException;
14  import org.mule.api.endpoint.ImmutableEndpoint;
15  import org.mule.api.processor.MessageProcessor;
16  import org.mule.api.processor.MessageProcessorChain;
17  import org.mule.api.routing.OutboundRouterCollection;
18  import org.mule.api.service.Service;
19  import org.mule.api.transformer.Transformer;
20  import org.mule.routing.outbound.OutboundPassThroughRouter;
21  import org.mule.service.ServiceCompositeMessageSource;
22  import org.mule.tck.FunctionalTestCase;
23  import org.mule.tck.testmodels.mule.TestInboundTransformer;
24  import org.mule.tck.testmodels.mule.TestResponseTransformer;
25  import org.mule.transformer.simple.MessagePropertiesTransformer;
26  import org.mule.transformer.simple.StringAppendTransformer;
27  
28  import java.util.List;
29  
30  public class EndpointTranformersInAttributesTestCase extends FunctionalTestCase
31  {
32  
33      protected String getConfigResources()
34      {
35          return "org/mule/config/spring/parsers/endpoint/endpoint-attribute-transformers.xml";
36      }
37  
38      public void testGlobalEndpoint1() throws MuleException
39      {
40          ImmutableEndpoint endpoint = muleContext.getEndpointFactory().getInboundEndpoint(
41              "ep1");
42  
43          List<MessageProcessor> processors = endpoint.getMessageProcessors();
44          assertNotNull(processors);
45          assertEquals(1, processors.size());
46          assertTrue(processors.get(0) instanceof TestInboundTransformer);
47          // For backwards-compatibility only
48          List<Transformer> transformers = endpoint.getTransformers();
49          assertNotNull(transformers);
50          assertEquals(1, transformers.size());
51          assertTrue(transformers.get(0) instanceof TestInboundTransformer);
52  
53          processors = endpoint.getResponseMessageProcessors();
54          assertNotNull(processors);
55          assertEquals(1, processors.size());
56          assertTrue(processors.get(0) instanceof TestResponseTransformer);
57          // For backwards-compatibility only
58          transformers = endpoint.getResponseTransformers();
59          assertNotNull(transformers);
60          assertEquals(1, transformers.size());
61          assertTrue(transformers.get(0) instanceof TestResponseTransformer);
62      }
63  
64      public void testGlobalEndpoint2() throws MuleException
65      {
66          ImmutableEndpoint endpoint = muleContext.getEndpointFactory().getInboundEndpoint(
67              "ep2");
68  
69          List<MessageProcessor> processors = endpoint.getMessageProcessors();
70          assertNotNull(processors);
71          assertEquals(2, processors.size());
72          assertTrue(processors.get(0) instanceof TestInboundTransformer);
73          assertTrue(processors.get(1) instanceof TestInboundTransformer);
74          // For backwards-compatibility only
75          List<Transformer> transformers = endpoint.getTransformers();
76          assertNotNull(transformers);
77          assertEquals(2, transformers.size());
78          assertTrue(transformers.get(0) instanceof TestInboundTransformer);
79          assertTrue(transformers.get(1) instanceof TestInboundTransformer);
80  
81          processors = endpoint.getResponseMessageProcessors();
82          assertNotNull(processors);
83          assertEquals(2, processors.size());
84          assertTrue(processors.get(0) instanceof TestResponseTransformer);
85          assertTrue(processors.get(1) instanceof TestResponseTransformer);
86          // For backwards-compatibility only
87          transformers = endpoint.getResponseTransformers();
88          assertNotNull(transformers);
89          assertEquals(2, transformers.size());
90          assertTrue(transformers.get(0) instanceof TestResponseTransformer);
91          assertTrue(transformers.get(1) instanceof TestResponseTransformer);
92      }
93  
94      public void testGlobalEndpoints() throws MuleException
95      {
96          Service service = muleContext.getRegistry().lookupService("globalEndpoints");
97  
98          ImmutableEndpoint endpoint = ((ServiceCompositeMessageSource) service.getMessageSource()).getEndpoints()
99              .get(0);
100 
101         List<MessageProcessor> processors = endpoint.getMessageProcessors();
102         assertNotNull(processors);
103         assertEquals(1, processors.size());
104         assertTrue(processors.get(0) instanceof TestInboundTransformer);
105         // For backwards-compatibility only
106         List<Transformer> transformers = endpoint.getTransformers();
107         assertNotNull(transformers);
108         assertEquals(1, transformers.size());
109         assertTrue(transformers.get(0) instanceof TestInboundTransformer);
110 
111         processors = endpoint.getResponseMessageProcessors();
112         assertNotNull(processors);
113         assertEquals(1, processors.size());
114         assertTrue(processors.get(0) instanceof TestResponseTransformer);
115         // For backwards-compatibility only
116         transformers = endpoint.getResponseTransformers();
117         assertNotNull(transformers);
118         assertEquals(1, transformers.size());
119         assertTrue(transformers.get(0) instanceof TestResponseTransformer);
120 
121         endpoint = (ImmutableEndpoint) ((OutboundPassThroughRouter) ((OutboundRouterCollection) service.getOutboundMessageProcessor()).getRoutes()
122             .get(0)).getRoutes().get(0);
123 
124         processors = endpoint.getMessageProcessors();
125         assertNotNull(processors);
126         assertEquals(2, processors.size());
127         assertTrue(processors.get(0) instanceof TestInboundTransformer);
128         assertTrue(processors.get(1) instanceof TestInboundTransformer);
129         // For backwards-compatibility only
130         transformers = endpoint.getTransformers();
131         assertNotNull(transformers);
132         assertEquals(2, transformers.size());
133         assertTrue(transformers.get(0) instanceof TestInboundTransformer);
134         assertTrue(transformers.get(1) instanceof TestInboundTransformer);
135 
136         processors = endpoint.getResponseMessageProcessors();
137         assertNotNull(processors);
138         assertEquals(2, processors.size());
139         assertTrue(processors.get(0) instanceof TestResponseTransformer);
140         assertTrue(processors.get(1) instanceof TestResponseTransformer);
141         // For backwards-compatibility only
142         transformers = endpoint.getResponseTransformers();
143         assertNotNull(transformers);
144         assertEquals(2, transformers.size());
145         assertTrue(transformers.get(0) instanceof TestResponseTransformer);
146         assertTrue(transformers.get(1) instanceof TestResponseTransformer);
147     }
148 
149     public void testLocalEndpoints() throws MuleException
150     {
151         Service service = muleContext.getRegistry().lookupService("localEndpoints");
152 
153         ImmutableEndpoint endpoint = ((ServiceCompositeMessageSource) service.getMessageSource()).getEndpoints()
154             .get(0);
155 
156         List<MessageProcessor> processors = endpoint.getMessageProcessors();
157         assertNotNull(processors);
158         assertEquals(1, processors.size());
159         assertTrue(processors.get(0) instanceof TestInboundTransformer);
160         // For backwards-compatibility only
161         List<Transformer> transformers = endpoint.getTransformers();
162         assertNotNull(transformers);
163         assertEquals(1, transformers.size());
164         assertTrue(transformers.get(0) instanceof TestInboundTransformer);
165 
166         processors = endpoint.getResponseMessageProcessors();
167         assertNotNull(processors);
168         assertEquals(1, processors.size());
169         assertTrue(processors.get(0) instanceof TestResponseTransformer);
170         // For backwards-compatibility only
171         transformers = endpoint.getResponseTransformers();
172         assertNotNull(transformers);
173         assertEquals(1, transformers.size());
174         assertTrue(transformers.get(0) instanceof TestResponseTransformer);
175 
176         endpoint = (ImmutableEndpoint) ((OutboundPassThroughRouter) ((OutboundRouterCollection) service.getOutboundMessageProcessor()).getRoutes()
177             .get(0)).getRoutes().get(0);
178 
179         processors = endpoint.getMessageProcessors();
180         assertNotNull(processors);
181         assertEquals(1, processors.size());
182         assertTrue(processors.get(0) instanceof TestInboundTransformer);
183         // For backwards-compatibility only
184         transformers = endpoint.getTransformers();
185         assertNotNull(transformers);
186         assertEquals(1, transformers.size());
187         assertTrue(transformers.get(0) instanceof TestInboundTransformer);
188 
189         processors = endpoint.getResponseMessageProcessors();
190         assertNotNull(processors);
191         assertEquals(1, processors.size());
192         assertTrue(processors.get(0) instanceof TestResponseTransformer);
193         // For backwards-compatibility only
194         transformers = endpoint.getResponseTransformers();
195         assertNotNull(transformers);
196         assertEquals(1, transformers.size());
197         assertTrue(transformers.get(0) instanceof TestResponseTransformer);
198     }
199 
200     public void testTransformerRefsWithChildProcessors() throws MuleException
201     {
202         Service service = muleContext.getRegistry().lookupService("transformerRefsWithChildProcessors");
203 
204         ImmutableEndpoint endpoint = ((ServiceCompositeMessageSource) service.getMessageSource()).getEndpoints()
205             .get(0);
206 
207         List<MessageProcessor> processors = endpoint.getMessageProcessors();
208         assertNotNull(processors);
209         assertEquals(2, processors.size());
210         assertTrue(processors.get(0) instanceof StringAppendTransformer);
211         assertTrue(processors.get(1) instanceof TestInboundTransformer);
212 
213         processors = endpoint.getResponseMessageProcessors();
214         assertNotNull(processors);
215         assertEquals(2, processors.size());
216         assertTrue(processors.get(0) instanceof MessageProcessorChain);
217         assertTrue(((MessageProcessorChain)processors.get(0)).getMessageProcessors().get(0) instanceof StringAppendTransformer);
218         assertTrue(processors.get(1) instanceof TestResponseTransformer);
219 
220         endpoint = (ImmutableEndpoint) ((OutboundPassThroughRouter) ((OutboundRouterCollection) service.getOutboundMessageProcessor()).getRoutes()
221             .get(0)).getRoutes().get(0);
222 
223         processors = endpoint.getMessageProcessors();
224         assertNotNull(processors);
225         assertEquals(2, processors.size());
226         assertTrue(processors.get(0) instanceof MessagePropertiesTransformer);
227         assertTrue(processors.get(1) instanceof TestInboundTransformer);
228 
229         processors = endpoint.getResponseMessageProcessors();
230         assertNotNull(processors);
231         assertEquals(2, processors.size());
232         assertTrue(processors.get(0) instanceof MessageProcessorChain);
233         assertTrue(((MessageProcessorChain)processors.get(0)).getMessageProcessors().get(0) instanceof MessagePropertiesTransformer);
234         assertTrue(processors.get(1) instanceof TestResponseTransformer);
235     }
236 
237 }