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