1
2
3
4
5
6
7
8
9
10
11 package org.mule.routing.outbound;
12
13 import org.mule.api.MessagingException;
14 import org.mule.api.MuleEvent;
15 import org.mule.api.MuleException;
16 import org.mule.api.MuleMessage;
17 import org.mule.api.endpoint.OutboundEndpoint;
18 import org.mule.api.processor.MessageProcessor;
19 import org.mule.tck.junit4.AbstractMuleContextTestCase;
20
21 import java.util.ArrayList;
22 import java.util.List;
23
24 import org.junit.Test;
25
26 import static org.junit.Assert.assertEquals;
27 import static org.junit.Assert.assertNotNull;
28 import static org.junit.Assert.assertTrue;
29 import static org.junit.Assert.fail;
30
31 public class OutboundRouterTestCase extends AbstractMuleContextTestCase
32 {
33 @Test
34 public void testAddGoodEndpoint() throws Exception
35 {
36 AbstractOutboundRouter router = new DummyOutboundRouter();
37 OutboundEndpoint endpoint = getTestOutboundEndpoint("test");
38 router.addRoute(endpoint);
39 assertNotNull(router.getRoutes());
40 assertTrue(router.getRoutes().contains(endpoint));
41 }
42
43 @Test
44 public void testSetGoodEndpoints() throws Exception
45 {
46 List<MessageProcessor> list= new ArrayList<MessageProcessor>();
47 list.add(getTestOutboundEndpoint("test"));
48 list.add(getTestOutboundEndpoint("test"));
49 AbstractOutboundRouter router = new DummyOutboundRouter();
50 assertNotNull(router.getRoutes());
51 assertEquals(0, router.getRoutes().size());
52 router.addRoute(getTestOutboundEndpoint("test"));
53 assertEquals(1, router.getRoutes().size());
54 router.setRoutes(list);
55 assertNotNull(router.getRoutes());
56 assertEquals(2, router.getRoutes().size());
57 }
58
59 @Test
60 @SuppressWarnings({ "rawtypes", "unchecked" })
61 public void testSetBadEndpoints() throws Exception
62 {
63 List list = new ArrayList();
64 list.add(getTestInboundEndpoint("test"));
65 list.add(getTestOutboundEndpoint("test"));
66 AbstractOutboundRouter router = new DummyOutboundRouter();
67
68 try
69 {
70 router.setRoutes(list);
71 fail("Invalid endpoint: Expecting an exception");
72 }
73 catch(Exception e)
74 {
75 assertEquals(ClassCastException.class, e.getClass());
76 }
77 }
78
79 @Test
80 @SuppressWarnings({ "rawtypes", "unchecked" })
81 public void testSetBad2Endpoints() throws Exception
82 {
83 List list= new ArrayList();
84 list.add(getTestOutboundEndpoint("test"));
85 list.add(getTestInboundEndpoint("test"));
86 AbstractOutboundRouter router = new DummyOutboundRouter();
87
88 try
89 {
90 router.setRoutes(list);
91 fail("Invalid endpoint: Expecting an exception");
92 }
93 catch(Exception e)
94 {
95 assertEquals(ClassCastException.class, e.getClass());
96 }
97 }
98
99 private static class DummyOutboundRouter extends AbstractOutboundRouter
100 {
101 public boolean isMatch(MuleMessage message) throws MuleException
102 {
103 return false;
104 }
105
106 @Override
107 protected MuleEvent route(MuleEvent event) throws MessagingException
108 {
109 return null;
110 }
111 }
112 }