1
2
3
4
5
6
7 package org.mule.processor;
8
9 import org.mule.MessageExchangePattern;
10 import org.mule.RequestContext;
11 import org.mule.api.MuleEvent;
12 import org.mule.api.endpoint.InboundEndpoint;
13 import org.mule.api.processor.InterceptingMessageProcessor;
14 import org.mule.endpoint.AbstractMessageProcessorTestCase;
15 import org.mule.tck.security.TestSecurityFilter;
16
17 import org.junit.Test;
18
19 import static org.junit.Assert.assertEquals;
20 import static org.junit.Assert.assertNotNull;
21 import static org.junit.Assert.assertNull;
22 import static org.junit.Assert.assertSame;
23 import static org.junit.Assert.assertTrue;
24
25 public class SecurityFilterMessageProcessorTestCase extends AbstractMessageProcessorTestCase
26 {
27
28 @Test
29 public void testFilterPass() throws Exception
30 {
31 TestSecurityFilter securityFilter = new TestSecurityFilter(true);
32 InboundEndpoint endpoint = createTestInboundEndpoint(null, securityFilter,
33 MessageExchangePattern.REQUEST_RESPONSE, null);
34 InterceptingMessageProcessor mp = new SecurityFilterMessageProcessor(securityFilter);
35 TestListener listner = new TestListener();
36 mp.setListener(listner);
37
38 MuleEvent inEvent = createTestInboundEvent(endpoint);
39 MuleEvent resultEvent = mp.process(inEvent);
40 assertNotNull(listner.sensedEvent);
41 assertSame(inEvent, listner.sensedEvent);
42 assertEquals(inEvent, resultEvent);
43
44 }
45
46 @Test
47 public void testFilterFail() throws Exception
48 {
49 TestSecurityFilter securityFilter = new TestSecurityFilter(false);
50 InboundEndpoint endpoint = createTestInboundEndpoint(null, securityFilter,
51 MessageExchangePattern.REQUEST_RESPONSE, null);
52 InterceptingMessageProcessor mp = new SecurityFilterMessageProcessor(securityFilter);
53 TestListener listner = new TestListener();
54 mp.setListener(listner);
55
56 MuleEvent inEvent = createTestInboundEvent(endpoint);
57
58
59 RequestContext.setEvent(inEvent);
60
61 MuleEvent resultEvent = mp.process(inEvent);
62 assertNull(listner.sensedEvent);
63
64 assertNotNull(resultEvent);
65 assertEquals(TestSecurityFilter.SECURITY_EXCEPTION_MESSAGE, resultEvent.getMessageAsString());
66 assertNotNull(resultEvent.getMessage().getExceptionPayload());
67 assertTrue(resultEvent.getMessage().getExceptionPayload().getException() instanceof TestSecurityFilter.StaticMessageUnauthorisedException);
68 }
69
70 }