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