1
2
3
4
5
6
7
8
9
10
11 package org.mule.routing.outbound;
12
13 import org.mule.impl.MuleMessage;
14 import org.mule.routing.LoggingCatchAllStrategy;
15 import org.mule.routing.filters.RegExFilter;
16 import org.mule.tck.AbstractMuleTestCase;
17 import org.mule.tck.MuleTestUtils;
18 import org.mule.umo.UMOMessage;
19 import org.mule.umo.UMOSession;
20 import org.mule.umo.endpoint.UMOEndpoint;
21
22 import com.mockobjects.dynamic.C;
23 import com.mockobjects.dynamic.Mock;
24
25 import java.util.ArrayList;
26 import java.util.List;
27
28
29
30
31
32
33 public class MulticastingRouterTestCase extends AbstractMuleTestCase
34 {
35 public void testMulticastingRouter() throws Exception
36 {
37 Mock session = MuleTestUtils.getMockSession();
38 OutboundRouterCollection messageRouter = new OutboundRouterCollection();
39 messageRouter.setCatchAllStrategy(new LoggingCatchAllStrategy());
40
41 UMOEndpoint endpoint1 = getTestEndpoint("Test1Provider", UMOEndpoint.ENDPOINT_TYPE_SENDER);
42 assertNotNull(endpoint1);
43
44 UMOEndpoint endpoint2 = getTestEndpoint("Test2Provider", UMOEndpoint.ENDPOINT_TYPE_SENDER);
45 assertNotNull(endpoint2);
46
47 MulticastingRouter router = new MulticastingRouter();
48 RegExFilter filter = new RegExFilter("(.*) event");
49 router.setFilter(filter);
50 List endpoints = new ArrayList();
51 endpoints.add(endpoint1);
52 endpoints.add(endpoint2);
53 router.setEndpoints(endpoints);
54
55 assertEquals(filter, router.getFilter());
56
57 UMOMessage message = new MuleMessage("test event");
58
59 assertTrue(router.isMatch(message));
60
61 session.expect("dispatchEvent", C.eq(message, endpoint1));
62 session.expect("dispatchEvent", C.eq(message, endpoint2));
63 router.route(message, (UMOSession)session.proxy(), false);
64 session.verify();
65
66 message = new MuleMessage("test event");
67
68 session.expectAndReturn("sendEvent", C.eq(message, endpoint1), message);
69 session.expectAndReturn("sendEvent", C.eq(message, endpoint2), message);
70 UMOMessage result = router.route(message, (UMOSession)session.proxy(), true);
71 assertNotNull(result);
72 assertEquals(message, result);
73 session.verify();
74 }
75 }