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