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