1
2
3
4
5
6
7
8
9
10
11 package org.mule.test.integration;
12
13 import org.mule.DefaultMuleEvent;
14 import org.mule.DefaultMuleMessage;
15 import org.mule.MessageExchangePattern;
16 import org.mule.api.MuleEvent;
17 import org.mule.api.endpoint.ImmutableEndpoint;
18 import org.mule.api.endpoint.InboundEndpoint;
19 import org.mule.api.endpoint.OutboundEndpoint;
20 import org.mule.api.routing.OutboundRouter;
21 import org.mule.api.routing.OutboundRouterCollection;
22 import org.mule.api.service.Service;
23 import org.mule.module.xml.transformer.ObjectToXml;
24 import org.mule.service.ServiceCompositeMessageSource;
25 import org.mule.tck.MuleTestUtils;
26 import org.mule.tck.junit4.FunctionalTestCase;
27 import org.mule.transport.tcp.TcpConnector;
28 import org.mule.transport.vm.VMConnector;
29
30 import org.junit.Test;
31
32 import static org.junit.Assert.assertEquals;
33 import static org.junit.Assert.assertFalse;
34 import static org.junit.Assert.assertNotNull;
35 import static org.junit.Assert.assertTrue;
36
37
38
39
40 public class MuleEndpointConfigurationServiceTestCase extends FunctionalTestCase
41 {
42 @Override
43 protected String getConfigResources()
44 {
45 return "org/mule/test/integration/test-endpoints-config-service.xml";
46 }
47
48 @Test
49 public void testComponent3RouterEndpoints() throws Exception
50 {
51 Service service = muleContext.getRegistry().lookupService("TestComponent3");
52
53 assertNotNull(service);
54 OutboundRouterCollection outboundRouter = (OutboundRouterCollection) service.getOutboundMessageProcessor();
55 assertNotNull(outboundRouter);
56 assertEquals(2, outboundRouter.getRoutes().size());
57
58 OutboundRouter router1 = (OutboundRouter) outboundRouter.getRoutes().get(0);
59 assertEquals(1, router1.getRoutes().size());
60 ImmutableEndpoint endpoint = (ImmutableEndpoint) router1.getRoutes().get(0);
61 assertEquals("tcp", endpoint.getConnector().getProtocol().toLowerCase());
62 assertEquals("tcp://localhost:60201", endpoint.getEndpointURI().getAddress());
63 assertTrue(endpoint instanceof OutboundEndpoint);
64
65
66 OutboundRouter router2 = (OutboundRouter) outboundRouter.getRoutes().get(1);
67 assertEquals(2, router2.getRoutes().size());
68 endpoint = (ImmutableEndpoint) router2.getRoutes().get(0);
69 assertEquals("udp", endpoint.getConnector().getProtocol().toLowerCase());
70 assertEquals("udp://localhost:56731", endpoint.getEndpointURI().getAddress());
71 assertTrue(endpoint instanceof OutboundEndpoint);
72 endpoint = (ImmutableEndpoint) router2.getRoutes().get(1);
73 assertEquals("test", endpoint.getConnector().getProtocol().toLowerCase());
74 assertEquals("test.queue2", endpoint.getEndpointURI().getAddress());
75 assertTrue(endpoint instanceof OutboundEndpoint);
76
77 }
78
79 @Test
80 public void testComponent4InboundEndpoint() throws Exception
81 {
82 Service service = muleContext.getRegistry().lookupService("TestComponent4");
83
84 assertNotNull(service);
85 assertNotNull(((ServiceCompositeMessageSource) service.getMessageSource()).getEndpoints());
86 assertEquals(1,
87 ((ServiceCompositeMessageSource) (service).getMessageSource()).getEndpoints().size());
88 ImmutableEndpoint endpoint = ((ServiceCompositeMessageSource) (service).getMessageSource()).getEndpoints()
89 .get(0);
90 assertNotNull(endpoint);
91 assertEquals(VMConnector.VM, endpoint.getConnector().getProtocol().toLowerCase());
92 assertEquals("queue4", endpoint.getEndpointURI().getAddress());
93 assertFalse(endpoint.getTransformers().isEmpty());
94 assertTrue(endpoint.getTransformers().get(0) instanceof ObjectToXml);
95 assertTrue(endpoint instanceof InboundEndpoint);
96 }
97
98 @Test
99 public void testComponent4OutboundEndpoint() throws Exception
100 {
101 Service service = muleContext.getRegistry().lookupService("TestComponent4");
102
103 assertNotNull(service);
104 OutboundRouterCollection outboundRouter = (OutboundRouterCollection) service.getOutboundMessageProcessor();
105 assertNotNull(outboundRouter);
106 assertEquals(1, outboundRouter.getRoutes().size());
107
108 OutboundRouter router = (OutboundRouter) outboundRouter.getRoutes().get(0);
109 assertEquals(1, router.getRoutes().size());
110 ImmutableEndpoint endpoint = (ImmutableEndpoint) router.getRoutes().get(0);
111 assertEquals("udp", endpoint.getConnector().getProtocol().toLowerCase());
112 assertEquals("udp://localhost:56731", endpoint.getEndpointURI().getAddress());
113
114
115
116 assertTrue(endpoint instanceof OutboundEndpoint);
117 }
118
119 @Test
120 public void testComponent5RouterEndpoints() throws Exception
121 {
122 Service service = muleContext.getRegistry().lookupService("TestComponent5");
123
124 assertNotNull(service);
125 OutboundRouterCollection outboundRouter = (OutboundRouterCollection) service.getOutboundMessageProcessor();
126 assertNotNull(outboundRouter);
127 assertEquals(1, outboundRouter.getRoutes().size());
128
129 OutboundRouter router = (OutboundRouter) outboundRouter.getRoutes().get(0);
130 assertEquals(1, router.getRoutes().size());
131 ImmutableEndpoint endpoint = (ImmutableEndpoint) router.getRoutes().get(0);
132 assertEquals(TcpConnector.TCP, endpoint.getConnector().getProtocol().toLowerCase());
133 assertEquals("tcp://localhost:45431", endpoint.getEndpointURI().getAddress());
134
135
136
137 assertTrue(endpoint instanceof OutboundEndpoint);
138 }
139
140 @Test
141 public void testEndpointFromURI() throws Exception
142 {
143 ImmutableEndpoint ep = muleContext.getEndpointFactory().getInboundEndpoint(
144 "test://hello?exchangePattern=request-response&responseTimeout=2002&connector=testConnector1");
145 assertEquals(MessageExchangePattern.REQUEST_RESPONSE, ep.getExchangePattern());
146 assertEquals(2002, ep.getResponseTimeout());
147 assertTrue(ep instanceof InboundEndpoint);
148
149
150 MuleEvent event = new DefaultMuleEvent(new DefaultMuleMessage("hello", muleContext),
151 (InboundEndpoint) ep, MuleTestUtils.getTestSession(muleContext));
152 assertEquals(2002, event.getTimeout());
153
154 ImmutableEndpoint ep2 = muleContext.getEndpointFactory().getInboundEndpoint(
155 "test://hello?connector=testConnector1");
156
157 event = new DefaultMuleEvent(new DefaultMuleMessage("hello", muleContext), (InboundEndpoint) ep2,
158 MuleTestUtils.getTestSession(muleContext));
159
160 assertEquals(1001, event.getTimeout());
161 }
162 }