1 /*
2 * Copyright (C) The JContainer Group. All rights reserved.
3 *
4 * This software is published under the terms of the JContainer
5 * Software License version 1.1, a copy of which has been included
6 * with this distribution in the LICENSE.txt file.
7 */
8 package org.jcontainer.dna.impl;
9
10 import junit.framework.TestCase;
11 import org.apache.log4j.Appender;
12 import org.apache.log4j.Level;
13 import org.apache.log4j.Logger;
14
15 public class Log4JLoggerTestCase
16 extends TestCase
17 {
18 public void testLog4JLoggerEmptyCtor()
19 throws Exception
20 {
21 try
22 {
23 new Log4JLogger( null );
24 }
25 catch( NullPointerException npe )
26 {
27 assertEquals( "npe.getMessage()", "logger", npe.getMessage() );
28 }
29 }
30
31 public void testLog4JLoggerGetChildLogger()
32 throws Exception
33 {
34 final MockAppender target = new MockAppender();
35 final Log4JLogger logger = createLogger( target, Level.DEBUG );
36
37 assertNotSame( "logger.getChildLogger == logger",
38 logger,
39 logger.getChildLogger( "whatever" ) );
40 }
41
42 public void testLog4JLoggerTraceEnabled()
43 throws Exception
44 {
45 final Level level = Level.DEBUG;
46 final Level type = Level.DEBUG;
47 final String message = "Meep!";
48 final Throwable throwable = null;
49 final boolean output = true;
50
51 final MockAppender target = new MockAppender();
52 final Log4JLogger logger = createLogger( target, level );
53 logger.trace( message );
54 checkLogger( target, output, message, throwable, type );
55 }
56
57 public void testLog4JLoggerTraceDisabled()
58 throws Exception
59 {
60 final Level level = Level.ERROR;
61 final String message = "Meep!";
62
63 final MockAppender target = new MockAppender();
64 final Log4JLogger logger = createLogger( target, level );
65 logger.trace( message );
66 checkLogger( target, false, null, null, null );
67 }
68
69 public void testLog4JLoggerTraceWithExceptionEnabled()
70 throws Exception
71 {
72 final Level level = Level.DEBUG;
73 final Level type = Level.DEBUG;
74 final String message = "Meep!";
75 final Throwable throwable = new Throwable();
76 final boolean output = true;
77
78 final MockAppender target = new MockAppender();
79 final Log4JLogger logger = createLogger( target, level );
80
81 logger.trace( message, throwable );
82 checkLogger( target, output, message, throwable, type );
83 }
84
85 public void testLog4JLoggerTraceWithExceptionDisabled()
86 throws Exception
87 {
88 final Level level = Level.ERROR;
89 final String message = "Meep!";
90 final Throwable throwable = new Throwable();
91
92 final MockAppender target = new MockAppender();
93 final Log4JLogger logger = createLogger( target, level );
94
95 logger.trace( message, throwable );
96 checkLogger( target, false, null, null, null );
97 }
98
99 public void testLog4JLoggerDebugEnabled()
100 throws Exception
101 {
102 final Level level = Level.DEBUG;
103 final Level type = Level.DEBUG;
104 final String message = "Meep!";
105 final Throwable throwable = null;
106 final boolean output = true;
107
108 final MockAppender target = new MockAppender();
109 final Log4JLogger logger = createLogger( target, level );
110 logger.debug( message );
111 checkLogger( target, output, message, throwable, type );
112 }
113
114 public void testLog4JLoggerDebugDisabled()
115 throws Exception
116 {
117 final Level level = Level.ERROR;
118 final String message = "Meep!";
119
120 final MockAppender target = new MockAppender();
121 final Log4JLogger logger = createLogger( target, level );
122 logger.debug( message );
123 checkLogger( target, false, null, null, null );
124 }
125
126 public void testLog4JLoggerDebugWithExceptionEnabled()
127 throws Exception
128 {
129 final Level level = Level.DEBUG;
130 final Level type = Level.DEBUG;
131 final String message = "Meep!";
132 final Throwable throwable = new Throwable();
133 final boolean output = true;
134
135 final MockAppender target = new MockAppender();
136 final Log4JLogger logger = createLogger( target, level );
137 logger.debug( message, throwable );
138 checkLogger( target, output, message, throwable, type );
139 }
140
141 public void testLog4JLoggerDebugWithExceptionDisabled()
142 throws Exception
143 {
144 final Level level = Level.ERROR;
145 final String message = "Meep!";
146 final Throwable throwable = new Throwable();
147
148 final MockAppender target = new MockAppender();
149 final Log4JLogger logger = createLogger( target, level );
150 logger.debug( message, throwable );
151 checkLogger( target, false, null, null, null );
152 }
153
154 public void testLog4JLoggerInfoEnabled()
155 throws Exception
156 {
157 final Level level = Level.DEBUG;
158 final Level type = Level.INFO;
159 final String message = "Meep!";
160 final Throwable throwable = null;
161 final boolean output = true;
162
163 final MockAppender target = new MockAppender();
164 final Log4JLogger logger = createLogger( target, level );
165 logger.info( message );
166 checkLogger( target, output, message, throwable, type );
167 }
168
169 public void testLog4JLoggerInfoDisabled()
170 throws Exception
171 {
172 final Level level = Level.ERROR;
173 final String message = "Meep!";
174
175 final MockAppender target = new MockAppender();
176 final Log4JLogger logger = createLogger( target, level );
177 logger.info( message );
178 checkLogger( target, false, null, null, null );
179 }
180
181 public void testLog4JLoggerInfoWithExceptionEnabled()
182 throws Exception
183 {
184 final Level level = Level.DEBUG;
185 final Level type = Level.INFO;
186 final String message = "Meep!";
187 final Throwable throwable = new Throwable();
188 final boolean output = true;
189
190 final MockAppender target = new MockAppender();
191 final Log4JLogger logger = createLogger( target, level );
192 logger.info( message, throwable );
193 checkLogger( target, output, message, throwable, type );
194 }
195
196 public void testLog4JLoggerInfoWithExceptionDisabled()
197 throws Exception
198 {
199 final Level level = Level.ERROR;
200 final String message = "Meep!";
201 final Throwable throwable = new Throwable();
202
203 final MockAppender target = new MockAppender();
204 final Log4JLogger logger = createLogger( target, level );
205 logger.info( message, throwable );
206 checkLogger( target, false, null, null, null );
207 }
208
209 public void testLog4JLoggerWarnEnabled()
210 throws Exception
211 {
212 final Level level = Level.DEBUG;
213 final Level type = Level.WARN;
214 final String message = "Meep!";
215 final Throwable throwable = null;
216 final boolean output = true;
217
218 final MockAppender target = new MockAppender();
219 final Log4JLogger logger = createLogger( target, level );
220 logger.warn( message );
221 checkLogger( target, output, message, throwable, type );
222 }
223
224 public void testLog4JLoggerWarnDisabled()
225 throws Exception
226 {
227 final Level level = Level.ERROR;
228 final String message = "Meep!";
229
230 final MockAppender target = new MockAppender();
231 final Log4JLogger logger = createLogger( target, level );
232 logger.warn( message );
233 checkLogger( target, false, null, null, null );
234 }
235
236 public void testLog4JLoggerWarnWithExceptionEnabled()
237 throws Exception
238 {
239 final Level level = Level.DEBUG;
240 final Level type = Level.WARN;
241 final String message = "Meep!";
242 final Throwable throwable = new Throwable();
243 final boolean output = true;
244
245 final MockAppender target = new MockAppender();
246 final Log4JLogger logger = createLogger( target, level );
247 logger.warn( message, throwable );
248 checkLogger( target, output, message, throwable, type );
249 }
250
251 public void testLog4JLoggerWarnWithExceptionDisabled()
252 throws Exception
253 {
254 final Level level = Level.ERROR;
255 final String message = "Meep!";
256 final Throwable throwable = new Throwable();
257
258 final MockAppender target = new MockAppender();
259 final Log4JLogger logger = createLogger( target, level );
260 logger.warn( message, throwable );
261 checkLogger( target, false, null, null, null );
262 }
263
264 public void testLog4JLoggerErrorEnabled()
265 throws Exception
266 {
267 final Level level = Level.DEBUG;
268 final Level type = Level.ERROR;
269 final String message = "Meep!";
270 final Throwable throwable = null;
271 final boolean output = true;
272
273 final MockAppender target = new MockAppender();
274 final Log4JLogger logger = createLogger( target, level );
275 logger.error( message );
276 checkLogger( target, output, message, throwable, type );
277 }
278
279 public void testLog4JLoggerErrorWithExceptionEnabled()
280 throws Exception
281 {
282 final Level level = Level.DEBUG;
283 final Level type = Level.ERROR;
284 final String message = "Meep!";
285 final Throwable throwable = new Throwable();
286 final boolean output = true;
287
288 final MockAppender target = new MockAppender();
289 final Log4JLogger logger = createLogger( target, level );
290 logger.error( message, throwable );
291 checkLogger( target, output, message, throwable, type );
292 }
293
294 public void testConsoleLevelComparisonWithDebugEnabled()
295 throws Exception
296 {
297 final MockAppender target = new MockAppender();
298 final Log4JLogger logger = createLogger( target, Level.DEBUG );
299
300 assertEquals( "logger.isTraceEnabled()", true, logger.isTraceEnabled() );
301 assertEquals( "logger.isDebugEnabled()", true, logger.isDebugEnabled() );
302 assertEquals( "logger.isInfoEnabled()", true, logger.isInfoEnabled() );
303 assertEquals( "logger.isWarnEnabled()", true, logger.isWarnEnabled() );
304 assertEquals( "logger.isErrorEnabled()", true, logger.isErrorEnabled() );
305 }
306
307 public void testConsoleLevelComparisonWithInfoEnabled()
308 throws Exception
309 {
310 final MockAppender target = new MockAppender();
311 final Log4JLogger logger = createLogger( target, Level.INFO );
312
313 assertEquals( "logger.isTraceEnabled()", false, logger.isTraceEnabled() );
314 assertEquals( "logger.isDebugEnabled()", false, logger.isDebugEnabled() );
315 assertEquals( "logger.isInfoEnabled()", true, logger.isInfoEnabled() );
316 assertEquals( "logger.isWarnEnabled()", true, logger.isWarnEnabled() );
317 assertEquals( "logger.isErrorEnabled()", true, logger.isErrorEnabled() );
318 }
319
320 public void testConsoleLevelComparisonWithWarnEnabled()
321 throws Exception
322 {
323 final MockAppender target = new MockAppender();
324 final Log4JLogger logger = createLogger( target, Level.WARN );
325
326 assertEquals( "logger.isTraceEnabled()", false, logger.isTraceEnabled() );
327 assertEquals( "logger.isDebugEnabled()", false, logger.isDebugEnabled() );
328 assertEquals( "logger.isInfoEnabled()", false, logger.isInfoEnabled() );
329 assertEquals( "logger.isWarnEnabled()", true, logger.isWarnEnabled() );
330 assertEquals( "logger.isErrorEnabled()", true, logger.isErrorEnabled() );
331 }
332
333 public void testConsoleLevelComparisonWithErrorEnabled()
334 throws Exception
335 {
336 final MockAppender target = new MockAppender();
337 final Log4JLogger logger = createLogger( target, Level.ERROR );
338
339 assertEquals( "logger.isTraceEnabled()", false, logger.isTraceEnabled() );
340 assertEquals( "logger.isDebugEnabled()", false, logger.isDebugEnabled() );
341 assertEquals( "logger.isInfoEnabled()", false, logger.isInfoEnabled() );
342 assertEquals( "logger.isWarnEnabled()", false, logger.isWarnEnabled() );
343 assertEquals( "logger.isErrorEnabled()", true, logger.isErrorEnabled() );
344 }
345
346 private Log4JLogger createLogger( final Appender target,
347 final Level priority )
348 {
349 final Logger log4jLogger = Logger.getLogger( "test" );
350 log4jLogger.removeAllAppenders();
351 log4jLogger.addAppender( target );
352 log4jLogger.setLevel( priority );
353 return new Log4JLogger( log4jLogger );
354 }
355
356 private void checkLogger( final MockAppender target,
357 final boolean output,
358 final String message,
359 final Throwable throwable,
360 final Level priority )
361 {
362 assertEquals( "logger.m_message == message", message, target.m_message );
363 assertEquals( "logger.m_output == output", output, target.m_output );
364 assertEquals( "logger.m_throwable == null", throwable, target.m_throwable );
365 assertEquals( "logger.m_priority == null", priority, target.m_priority );
366 }
367 }
This page was automatically generated by Maven