1
2
3
4
5
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 }