1
2
3
4
5
6
7
8
9
10
11 package org.mule.routing;
12
13 import org.mule.MessageExchangePattern;
14 import org.mule.api.MuleEvent;
15 import org.mule.routing.filters.EqualsFilter;
16 import org.mule.tck.SensingNullMessageProcessor;
17 import org.mule.tck.junit4.AbstractMuleContextTestCase;
18
19 import org.junit.Test;
20
21 import static org.junit.Assert.assertEquals;
22 import static org.junit.Assert.assertNotNull;
23 import static org.junit.Assert.assertNull;
24 import static org.junit.Assert.assertSame;
25
26 public class MessageFilterTestCase extends AbstractMuleContextTestCase
27 {
28
29 @Test
30 public void testFilterPass() throws Exception
31 {
32 MessageFilter mp = new MessageFilter(new EqualsFilter(TEST_MESSAGE), false, null);
33 SensingNullMessageProcessor listener = getSensingNullMessageProcessor();
34 mp.setListener(listener);
35
36 MuleEvent inEvent = getTestEvent(TEST_MESSAGE);
37
38 MuleEvent resultEvent = mp.process(inEvent);
39
40 assertNotNull(listener.event);
41 assertSame(inEvent, listener.event);
42 assertEquals(inEvent, resultEvent);
43 }
44
45 @Test
46 public void testFilterFail() throws Exception
47 {
48 MessageFilter mp = new MessageFilter(new EqualsFilter(null), false, null);
49 SensingNullMessageProcessor out = getSensingNullMessageProcessor();
50 mp.setListener(out);
51
52 MuleEvent inEvent = getTestEvent(TEST_MESSAGE);
53
54 MuleEvent resultEvent = mp.process(inEvent);
55
56 assertNull(out.event);
57 assertNull(resultEvent);
58 }
59
60 @Test
61 public void testFilterPassUnacceptedMP() throws Exception
62 {
63 MessageFilter mp = new MessageFilter(new EqualsFilter(TEST_MESSAGE), false, null);
64 SensingNullMessageProcessor out = getSensingNullMessageProcessor();
65 SensingNullMessageProcessor unaccepted = getSensingNullMessageProcessor();
66 mp.setListener(out);
67 mp.setUnacceptedMessageProcessor(unaccepted);
68
69 MuleEvent inEvent = getTestEvent(TEST_MESSAGE);
70
71 MuleEvent resultEvent = mp.process(inEvent);
72
73 assertNotNull(out.event);
74 assertSame(inEvent, out.event);
75 assertEquals(inEvent, resultEvent);
76 assertNull(unaccepted.event);
77 }
78
79 @Test
80 public void testFilterFailUnacceptedMP() throws Exception
81 {
82 SensingNullMessageProcessor unaccepted = getSensingNullMessageProcessor();
83 MessageFilter mp = new MessageFilter(new EqualsFilter(null), false, unaccepted);
84 SensingNullMessageProcessor out = getSensingNullMessageProcessor();
85 mp.setListener(out);
86
87 MuleEvent inEvent = getTestEvent(TEST_MESSAGE, MessageExchangePattern.ONE_WAY);
88
89 MuleEvent resultEvent = mp.process(inEvent);
90
91 assertNull(out.event);
92 assertNull(resultEvent);
93 assertNotNull(unaccepted.event);
94 assertSame(inEvent, unaccepted.event);
95 }
96 }