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