1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springframework.ws.soap.server.endpoint.interceptor;
18
19 import org.springframework.core.io.ClassPathResource;
20 import org.springframework.ws.context.DefaultMessageContext;
21 import org.springframework.ws.context.MessageContext;
22 import org.springframework.ws.soap.saaj.SaajSoapMessageFactory;
23
24 import org.apache.log4j.AppenderSkeleton;
25 import org.apache.log4j.BasicConfigurator;
26 import org.apache.log4j.Level;
27 import org.apache.log4j.Logger;
28 import org.apache.log4j.PropertyConfigurator;
29 import org.apache.log4j.spi.LoggingEvent;
30 import org.junit.After;
31 import org.junit.Assert;
32 import org.junit.Before;
33 import org.junit.Test;
34
35 public class SoapEnvelopeLoggingInterceptorTest {
36
37 private SoapEnvelopeLoggingInterceptor interceptor;
38
39 private CountingAppender appender;
40
41 private MessageContext messageContext;
42
43 @Before
44 public void setUp() throws Exception {
45 interceptor = new SoapEnvelopeLoggingInterceptor();
46 appender = new SoapEnvelopeLoggingInterceptorTest.CountingAppender();
47 BasicConfigurator.configure(appender);
48 Logger.getRootLogger().setLevel(Level.DEBUG);
49 SaajSoapMessageFactory factory = new SaajSoapMessageFactory();
50 factory.afterPropertiesSet();
51 messageContext = new DefaultMessageContext(factory);
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("interceptor 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("interceptor did not log", appender.getCount() > eventCount);
75 }
76
77 @Test
78 public void testHandleResponseDisabled() throws Exception {
79 messageContext.getResponse();
80 interceptor.setLogResponse(false);
81 int eventCount = appender.getCount();
82 interceptor.handleResponse(messageContext, null);
83 Assert.assertEquals("interceptor logged when disabled", appender.getCount(), eventCount);
84 }
85
86 @Test
87 public void testHandleResponseEnabled() throws Exception {
88 messageContext.getResponse();
89 int eventCount = appender.getCount();
90 interceptor.handleResponse(messageContext, null);
91 Assert.assertTrue("interceptor did not log", appender.getCount() > eventCount);
92 }
93
94 @Test
95 public void testHandleFaultDisabled() throws Exception {
96 messageContext.getResponse();
97 interceptor.setLogFault(false);
98 int eventCount = appender.getCount();
99 interceptor.handleFault(messageContext, null);
100 Assert.assertEquals("interceptor logged when disabled", appender.getCount(), eventCount);
101 }
102
103 @Test
104 public void testHandleFaultEnabled() throws Exception {
105 messageContext.getResponse();
106 int eventCount = appender.getCount();
107 interceptor.handleResponse(messageContext, null);
108 Assert.assertTrue("interceptor did not log", appender.getCount() > eventCount);
109 }
110
111 private static class CountingAppender extends AppenderSkeleton {
112
113 private int count;
114
115 public int getCount() {
116 return count;
117 }
118
119 public void reset() {
120 count = 0;
121 }
122
123 @Override
124 protected void append(LoggingEvent loggingEvent) {
125 count++;
126 }
127
128 public boolean requiresLayout() {
129 return false;
130 }
131
132 public void close() {
133 }
134 }
135 }