1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springframework.ws.server.endpoint.interceptor;
18
19 import org.springframework.core.io.ClassPathResource;
20 import org.springframework.ws.MockWebServiceMessage;
21 import org.springframework.ws.MockWebServiceMessageFactory;
22 import org.springframework.ws.context.DefaultMessageContext;
23 import org.springframework.ws.context.MessageContext;
24
25 import org.apache.log4j.AppenderSkeleton;
26 import org.apache.log4j.BasicConfigurator;
27 import org.apache.log4j.Level;
28 import org.apache.log4j.Logger;
29 import org.apache.log4j.PropertyConfigurator;
30 import org.apache.log4j.spi.LoggingEvent;
31 import org.junit.After;
32 import org.junit.Assert;
33 import org.junit.Before;
34 import org.junit.Test;
35
36 public class PayloadLoggingInterceptorTest {
37
38 private PayloadLoggingInterceptor interceptor;
39
40 private CountingAppender appender;
41
42 private MessageContext messageContext;
43
44 @Before
45 public void setUp() throws Exception {
46 interceptor = new PayloadLoggingInterceptor();
47 appender = new CountingAppender();
48 BasicConfigurator.configure(appender);
49 Logger.getRootLogger().setLevel(Level.DEBUG);
50 MockWebServiceMessage request = new MockWebServiceMessage("<request/>");
51 messageContext = new DefaultMessageContext(request, new MockWebServiceMessageFactory());
52 appender.reset();
53 }
54
55 @After
56 public void tearDown() throws Exception {
57 BasicConfigurator.resetConfiguration();
58 ClassPathResource resource = new ClassPathResource("log4j.properties");
59 PropertyConfigurator.configure(resource.getURL());
60 }
61
62 @Test
63 public void testHandleRequestDisabled() throws Exception {
64 interceptor.setLogRequest(false);
65 int eventCount = appender.getCount();
66 interceptor.handleRequest(messageContext, null);
67 Assert.assertEquals("PayloadLoggingInterceptor logged when disabled", appender.getCount(), eventCount);
68 }
69
70 @Test
71 public void testHandleRequestEnabled() throws Exception {
72 int eventCount = appender.getCount();
73 interceptor.handleRequest(messageContext, null);
74 Assert.assertTrue("PayloadLoggingInterceptor did not log", appender.getCount() > eventCount);
75 }
76
77 @Test
78 public void testHandleResponseDisabled() throws Exception {
79 MockWebServiceMessage response = (MockWebServiceMessage) messageContext.getResponse();
80 response.setPayload("<response/>");
81 interceptor.setLogResponse(false);
82 int eventCount = appender.getCount();
83 interceptor.handleResponse(messageContext, null);
84 Assert.assertEquals("PayloadLoggingInterceptor logged when disabled", appender.getCount(), eventCount);
85 }
86
87 @Test
88 public void testHandleResponseEnabled() throws Exception {
89 MockWebServiceMessage response = (MockWebServiceMessage) messageContext.getResponse();
90 response.setPayload("<response/>");
91 int eventCount = appender.getCount();
92 interceptor.handleResponse(messageContext, null);
93 Assert.assertTrue("PayloadLoggingInterceptor did not log", appender.getCount() > eventCount);
94 }
95
96 private static class CountingAppender extends AppenderSkeleton {
97
98 private int count;
99
100 public int getCount() {
101 return count;
102 }
103
104 public void reset() {
105 count = 0;
106 }
107
108 @Override
109 protected void append(LoggingEvent loggingEvent) {
110 count++;
111 }
112
113 public boolean requiresLayout() {
114 return false;
115 }
116
117 public void close() {
118 }
119 }
120 }