View Javadoc

1   /*
2    * $Id: OutboundRouterTestCase.java 22377 2011-07-11 12:41:42Z dirk.olmes $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
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 }