View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
6    */
7   package org.mule.routing;
8   
9   import org.mule.MessageExchangePattern;
10  import org.mule.api.MuleEvent;
11  import org.mule.routing.filters.EqualsFilter;
12  import org.mule.tck.SensingNullMessageProcessor;
13  import org.mule.tck.junit4.AbstractMuleContextTestCase;
14  
15  import org.junit.Test;
16  
17  import static org.junit.Assert.assertEquals;
18  import static org.junit.Assert.assertNotNull;
19  import static org.junit.Assert.assertNull;
20  import static org.junit.Assert.assertSame;
21  
22  public class MessageFilterTestCase extends AbstractMuleContextTestCase
23  {
24  
25      @Test
26      public void testFilterPass() throws Exception
27      {
28          MessageFilter mp = new MessageFilter(new EqualsFilter(TEST_MESSAGE), false, null);
29          SensingNullMessageProcessor listener = getSensingNullMessageProcessor();
30          mp.setListener(listener);
31  
32          MuleEvent inEvent = getTestEvent(TEST_MESSAGE);
33  
34          MuleEvent resultEvent = mp.process(inEvent);
35  
36          assertNotNull(listener.event);
37          assertSame(inEvent, listener.event);
38          assertEquals(inEvent, resultEvent);
39      }
40  
41      @Test
42      public void testFilterFail() throws Exception
43      {
44          MessageFilter mp = new MessageFilter(new EqualsFilter(null), false, null);
45          SensingNullMessageProcessor out = getSensingNullMessageProcessor();
46          mp.setListener(out);
47  
48          MuleEvent inEvent = getTestEvent(TEST_MESSAGE);
49  
50          MuleEvent resultEvent = mp.process(inEvent);
51  
52          assertNull(out.event);
53          assertNull(resultEvent);
54      }
55  
56      @Test
57      public void testFilterPassUnacceptedMP() throws Exception
58      {
59          MessageFilter mp = new MessageFilter(new EqualsFilter(TEST_MESSAGE), false, null);
60          SensingNullMessageProcessor out = getSensingNullMessageProcessor();
61          SensingNullMessageProcessor unaccepted = getSensingNullMessageProcessor();
62          mp.setListener(out);
63          mp.setUnacceptedMessageProcessor(unaccepted);
64  
65          MuleEvent inEvent = getTestEvent(TEST_MESSAGE);
66  
67          MuleEvent resultEvent = mp.process(inEvent);
68  
69          assertNotNull(out.event);
70          assertSame(inEvent, out.event);
71          assertEquals(inEvent, resultEvent);
72          assertNull(unaccepted.event);
73      }
74  
75      @Test
76      public void testFilterFailUnacceptedMP() throws Exception
77      {
78          SensingNullMessageProcessor unaccepted = getSensingNullMessageProcessor();
79          MessageFilter mp = new MessageFilter(new EqualsFilter(null), false, unaccepted);
80          SensingNullMessageProcessor out = getSensingNullMessageProcessor();
81          mp.setListener(out);
82  
83          MuleEvent inEvent = getTestEvent(TEST_MESSAGE, MessageExchangePattern.ONE_WAY);
84  
85          MuleEvent resultEvent = mp.process(inEvent);
86  
87          assertNull(out.event);
88          assertNull(resultEvent);
89          assertNotNull(unaccepted.event);
90          assertSame(inEvent, unaccepted.event);
91      }
92  }