1
2
3
4
5
6
7 package org.mule.routing;
8
9 import org.mule.DefaultMuleEvent;
10 import org.mule.DefaultMuleMessage;
11 import org.mule.api.MuleEvent;
12 import org.mule.api.MuleMessage;
13 import org.mule.api.MuleSession;
14 import org.mule.api.endpoint.OutboundEndpoint;
15 import org.mule.api.service.Service;
16 import org.mule.tck.MuleTestUtils;
17 import org.mule.tck.junit4.AbstractMuleContextTestCase;
18
19 import com.mockobjects.dynamic.Mock;
20
21 import org.junit.Test;
22
23 import static org.junit.Assert.assertNotNull;
24 import static org.junit.Assert.assertNull;
25
26 public class IdempotentSecureHashMessageFilterTestCase extends AbstractMuleContextTestCase
27 {
28 public IdempotentSecureHashMessageFilterTestCase()
29 {
30 setStartContext(true);
31 }
32
33 @Test
34 public void testIdempotentReceiver() throws Exception
35 {
36 OutboundEndpoint endpoint1 = getTestOutboundEndpoint("Test1Provider",
37 "test://Test1Provider?exchangePattern=one-way");
38 Mock session = MuleTestUtils.getMockSession();
39 Service service = getTestService();
40 session.matchAndReturn("getFlowConstruct", service);
41
42 IdempotentSecureHashMessageFilter ir = new IdempotentSecureHashMessageFilter();
43 ir.setFlowConstruct(service);
44 ir.setThrowOnUnaccepted(false);
45
46 MuleMessage okMessage = new DefaultMuleMessage("OK", muleContext);
47 MuleEvent event = new DefaultMuleEvent(okMessage, endpoint1, (MuleSession) session.proxy());
48
49
50 event = ir.process(event);
51 assertNotNull(event);
52
53
54 okMessage = new DefaultMuleMessage("OK", muleContext);
55 event = new DefaultMuleEvent(okMessage, endpoint1, (MuleSession) session.proxy());
56 event = ir.process(event);
57 assertNull(event);
58
59
60 okMessage = new DefaultMuleMessage("Not OK", muleContext);
61 event = new DefaultMuleEvent(okMessage, endpoint1, (MuleSession) session.proxy());
62 event = ir.process(event);
63 assertNotNull(event);
64 }
65
66 }