1
2
3
4
5
6
7
8 package org.codehaus.dna.impl;
9
10 import junit.framework.TestCase;
11 import java.io.PrintStream;
12 import java.io.ByteArrayOutputStream;
13
14 import org.codehaus.dna.impl.ConsoleLogger;
15
16 public class ConsoleLoggerTestCase
17 extends TestCase
18 {
19 public void testConsoleWithEmptyOutput()
20 throws Exception
21 {
22 try
23 {
24 new ConsoleLogger( MockConsoleLogger.LEVEL_ALL, null );
25 }
26 catch( final NullPointerException npe )
27 {
28 assertEquals( "npe.message", "output", npe.getMessage() );
29 return;
30 }
31 fail( "Expected to fail due to NPE in ctor" );
32 }
33
34 public void testMockConsoleEmptyCtor()
35 throws Exception
36 {
37 final MockConsoleLogger logger = new MockConsoleLogger();
38 assertEquals( "logger.level",
39 MockConsoleLogger.LEVEL_ALL,
40 logger.getLevel() );
41 }
42
43 public void testMockConsoleGetChildLogger()
44 throws Exception
45 {
46 final MockConsoleLogger logger = new MockConsoleLogger();
47 assertEquals( "logger.getChildLogger == logger",
48 logger,
49 logger.getChildLogger( "whatever" ) );
50 }
51
52 public void testMockConsoleOutputToConsole()
53 throws Exception
54 {
55 final ByteArrayOutputStream arrayOutput = new ByteArrayOutputStream();
56 final PrintStream output = new PrintStream( arrayOutput );
57 final ConsoleLogger logger = new ConsoleLogger( MockConsoleLogger.LEVEL_ALL, output );
58 logger.debug( "ignore me!", null );
59 final String message = arrayOutput.toString();
60 final String expectedMessage =
61 "[DEBUG] ignore me!" + System.getProperty( "line.separator" );
62 assertEquals( "message", expectedMessage, message );
63 }
64
65 public void testMockConsoleOutputToConsoleWithException()
66 throws Exception
67 {
68 final ByteArrayOutputStream arrayOutput = new ByteArrayOutputStream();
69 final PrintStream output = new PrintStream( arrayOutput );
70 final ConsoleLogger logger = new ConsoleLogger( MockConsoleLogger.LEVEL_ALL, output );
71 logger.debug( "ignore me!", new Throwable( "Ignore me aswell!" ) );
72 final String message = arrayOutput.toString();
73 final String expectedMessage =
74 "[DEBUG] ignore me!" + System.getProperty( "line.separator" );
75 assertTrue( "message", message.startsWith( expectedMessage ) );
76 assertTrue( "throwable message", -1 != message.indexOf( "Ignore me aswell!" ) );
77 assertTrue( "throwable", -1 != message.indexOf( Throwable.class.getName() ) );
78 }
79
80 public void testMockConsoleTraceEnabled()
81 throws Exception
82 {
83 final int level = MockConsoleLogger.LEVEL_ALL;
84 final String message = "Meep!";
85 final String type = "TRACE";
86 final Throwable throwable = null;
87 final boolean output = true;
88
89 final MockConsoleLogger logger = new MockConsoleLogger( level );
90 logger.trace( message );
91 checkLogger( logger, output, message, throwable, type );
92 }
93
94 public void testMockConsoleTraceDisabled()
95 throws Exception
96 {
97 final int level = MockConsoleLogger.LEVEL_NONE;
98 final String message = "Meep!";
99 final MockConsoleLogger logger = new MockConsoleLogger( level );
100 logger.trace( message );
101 checkLogger( logger, false, null, null, null );
102 }
103
104 public void testMockConsoleTraceWithExceptionEnabled()
105 throws Exception
106 {
107 final int level = MockConsoleLogger.LEVEL_ALL;
108 final String message = "Meep!";
109 final String type = "TRACE";
110 final Throwable throwable = new Throwable();
111 final boolean output = true;
112
113 final MockConsoleLogger logger = new MockConsoleLogger( level );
114 logger.trace( message, throwable );
115 checkLogger( logger, output, message, throwable, type );
116 }
117
118 public void testMockConsoleTraceWithExceptionDisabled()
119 throws Exception
120 {
121 final int level = MockConsoleLogger.LEVEL_NONE;
122 final String message = "Meep!";
123 final Throwable throwable = new Throwable();
124 final MockConsoleLogger logger = new MockConsoleLogger( level );
125 logger.trace( message, throwable );
126 checkLogger( logger, false, null, null, null );
127 }
128
129 public void testMockConsoleDebugEnabled()
130 throws Exception
131 {
132 final int level = MockConsoleLogger.LEVEL_ALL;
133 final String message = "Meep!";
134 final String type = "DEBUG";
135 final Throwable throwable = null;
136 final boolean output = true;
137
138 final MockConsoleLogger logger = new MockConsoleLogger( level );
139 logger.debug( message );
140 checkLogger( logger, output, message, throwable, type );
141 }
142
143 public void testMockConsoleDebugDisabled()
144 throws Exception
145 {
146 final int level = MockConsoleLogger.LEVEL_NONE;
147 final String message = "Meep!";
148 final MockConsoleLogger logger = new MockConsoleLogger( level );
149 logger.debug( message );
150 checkLogger( logger, false, null, null, null );
151 }
152
153 public void testMockConsoleDebugWithExceptionEnabled()
154 throws Exception
155 {
156 final int level = MockConsoleLogger.LEVEL_ALL;
157 final String message = "Meep!";
158 final String type = "DEBUG";
159 final Throwable throwable = new Throwable();
160 final boolean output = true;
161
162 final MockConsoleLogger logger = new MockConsoleLogger( level );
163 logger.debug( message, throwable );
164 checkLogger( logger, output, message, throwable, type );
165 }
166
167 public void testMockConsoleDebugWithExceptionDisabled()
168 throws Exception
169 {
170 final int level = MockConsoleLogger.LEVEL_NONE;
171 final String message = "Meep!";
172 final Throwable throwable = new Throwable();
173 final MockConsoleLogger logger = new MockConsoleLogger( level );
174 logger.debug( message, throwable );
175 checkLogger( logger, false, null, null, null );
176 }
177
178 public void testMockConsoleInfoEnabled()
179 throws Exception
180 {
181 final int level = MockConsoleLogger.LEVEL_ALL;
182 final String message = "Meep!";
183 final String type = "INFO";
184 final Throwable throwable = null;
185 final boolean output = true;
186
187 final MockConsoleLogger logger = new MockConsoleLogger( level );
188 logger.info( message );
189 checkLogger( logger, output, message, throwable, type );
190 }
191
192 public void testMockConsoleInfoDisabled()
193 throws Exception
194 {
195 final int level = MockConsoleLogger.LEVEL_NONE;
196 final String message = "Meep!";
197 final MockConsoleLogger logger = new MockConsoleLogger( level );
198 logger.info( message );
199 checkLogger( logger, false, null, null, null );
200 }
201
202 public void testMockConsoleInfoWithExceptionEnabled()
203 throws Exception
204 {
205 final int level = MockConsoleLogger.LEVEL_ALL;
206 final String message = "Meep!";
207 final String type = "INFO";
208 final Throwable throwable = new Throwable();
209 final boolean output = true;
210
211 final MockConsoleLogger logger = new MockConsoleLogger( level );
212 logger.info( message, throwable );
213 checkLogger( logger, output, message, throwable, type );
214 }
215
216 public void testMockConsoleInfoWithExceptionDisabled()
217 throws Exception
218 {
219 final int level = MockConsoleLogger.LEVEL_NONE;
220 final String message = "Meep!";
221 final Throwable throwable = new Throwable();
222 final MockConsoleLogger logger = new MockConsoleLogger( level );
223 logger.info( message, throwable );
224 checkLogger( logger, false, null, null, null );
225 }
226
227 public void testMockConsoleWarnEnabled()
228 throws Exception
229 {
230 final int level = MockConsoleLogger.LEVEL_ALL;
231 final String message = "Meep!";
232 final String type = "WARN";
233 final Throwable throwable = null;
234 final boolean output = true;
235
236 final MockConsoleLogger logger = new MockConsoleLogger( level );
237 logger.warn( message );
238 checkLogger( logger, output, message, throwable, type );
239 }
240
241 public void testMockConsoleWarnDisabled()
242 throws Exception
243 {
244 final int level = MockConsoleLogger.LEVEL_NONE;
245 final String message = "Meep!";
246 final MockConsoleLogger logger = new MockConsoleLogger( level );
247 logger.warn( message );
248 checkLogger( logger, false, null, null, null );
249 }
250
251 public void testMockConsoleWarnWithExceptionEnabled()
252 throws Exception
253 {
254 final int level = MockConsoleLogger.LEVEL_ALL;
255 final String message = "Meep!";
256 final String type = "WARN";
257 final Throwable throwable = new Throwable();
258 final boolean output = true;
259
260 final MockConsoleLogger logger = new MockConsoleLogger( level );
261 logger.warn( message, throwable );
262 checkLogger( logger, output, message, throwable, type );
263 }
264
265 public void testMockConsoleWarnWithExceptionDisabled()
266 throws Exception
267 {
268 final int level = MockConsoleLogger.LEVEL_NONE;
269 final String message = "Meep!";
270 final Throwable throwable = new Throwable();
271 final MockConsoleLogger logger = new MockConsoleLogger( level );
272 logger.warn( message, throwable );
273 checkLogger( logger, false, null, null, null );
274 }
275
276 public void testMockConsoleErrorEnabled()
277 throws Exception
278 {
279 final int level = MockConsoleLogger.LEVEL_ALL;
280 final String message = "Meep!";
281 final String type = "ERROR";
282 final Throwable throwable = null;
283 final boolean output = true;
284
285 final MockConsoleLogger logger = new MockConsoleLogger( level );
286 logger.error( message );
287 checkLogger( logger, output, message, throwable, type );
288 }
289
290 public void testMockConsoleErrorDisabled()
291 throws Exception
292 {
293 final int level = MockConsoleLogger.LEVEL_NONE;
294 final String message = "Meep!";
295 final MockConsoleLogger logger = new MockConsoleLogger( level );
296 logger.error( message );
297 checkLogger( logger, false, null, null, null );
298 }
299
300 public void testMockConsoleErrorWithExceptionEnabled()
301 throws Exception
302 {
303 final int level = MockConsoleLogger.LEVEL_ALL;
304 final String message = "Meep!";
305 final String type = "ERROR";
306 final Throwable throwable = new Throwable();
307 final boolean output = true;
308
309 final MockConsoleLogger logger = new MockConsoleLogger( level );
310 logger.error( message, throwable );
311 checkLogger( logger, output, message, throwable, type );
312 }
313
314 public void testMockConsoleErrorWithExceptionDisabled()
315 throws Exception
316 {
317 final int level = MockConsoleLogger.LEVEL_NONE;
318 final String message = "Meep!";
319 final Throwable throwable = new Throwable();
320 final MockConsoleLogger logger = new MockConsoleLogger( level );
321 logger.error( message, throwable );
322 checkLogger( logger, false, null, null, null );
323 }
324
325 public void testConsoleLevelComparisonWithAll()
326 throws Exception
327 {
328 final MockConsoleLogger logger = new MockConsoleLogger( MockConsoleLogger.LEVEL_ALL );
329 assertEquals( "logger.isTraceEnabled()", true, logger.isTraceEnabled() );
330 assertEquals( "logger.isDebugEnabled()", true, logger.isDebugEnabled() );
331 assertEquals( "logger.isInfoEnabled()", true, logger.isInfoEnabled() );
332 assertEquals( "logger.isWarnEnabled()", true, logger.isWarnEnabled() );
333 assertEquals( "logger.isErrorEnabled()", true, logger.isErrorEnabled() );
334 }
335
336 public void testConsoleLevelComparisonWithNone()
337 throws Exception
338 {
339 final MockConsoleLogger logger = new MockConsoleLogger( MockConsoleLogger.LEVEL_NONE );
340 assertEquals( "logger.isTraceEnabled()", false, logger.isTraceEnabled() );
341 assertEquals( "logger.isDebugEnabled()", false, logger.isDebugEnabled() );
342 assertEquals( "logger.isInfoEnabled()", false, logger.isInfoEnabled() );
343 assertEquals( "logger.isWarnEnabled()", false, logger.isWarnEnabled() );
344 assertEquals( "logger.isErrorEnabled()", false, logger.isErrorEnabled() );
345 }
346
347 public void testConsoleLevelComparisonWithTraceEnabled()
348 throws Exception
349 {
350 final MockConsoleLogger logger = new MockConsoleLogger( MockConsoleLogger.LEVEL_TRACE );
351 assertEquals( "logger.isTraceEnabled()", true, logger.isTraceEnabled() );
352 assertEquals( "logger.isDebugEnabled()", true, logger.isDebugEnabled() );
353 assertEquals( "logger.isInfoEnabled()", true, logger.isInfoEnabled() );
354 assertEquals( "logger.isWarnEnabled()", true, logger.isWarnEnabled() );
355 assertEquals( "logger.isErrorEnabled()", true, logger.isErrorEnabled() );
356 }
357
358 public void testConsoleLevelComparisonWithDebugEnabled()
359 throws Exception
360 {
361 final MockConsoleLogger logger = new MockConsoleLogger( MockConsoleLogger.LEVEL_DEBUG );
362 assertEquals( "logger.isTraceEnabled()", false, logger.isTraceEnabled() );
363 assertEquals( "logger.isDebugEnabled()", true, logger.isDebugEnabled() );
364 assertEquals( "logger.isInfoEnabled()", true, logger.isInfoEnabled() );
365 assertEquals( "logger.isWarnEnabled()", true, logger.isWarnEnabled() );
366 assertEquals( "logger.isErrorEnabled()", true, logger.isErrorEnabled() );
367 }
368
369 public void testConsoleLevelComparisonWithInfoEnabled()
370 throws Exception
371 {
372 final MockConsoleLogger logger = new MockConsoleLogger( MockConsoleLogger.LEVEL_INFO );
373 assertEquals( "logger.isTraceEnabled()", false, logger.isTraceEnabled() );
374 assertEquals( "logger.isDebugEnabled()", false, logger.isDebugEnabled() );
375 assertEquals( "logger.isInfoEnabled()", true, logger.isInfoEnabled() );
376 assertEquals( "logger.isWarnEnabled()", true, logger.isWarnEnabled() );
377 assertEquals( "logger.isErrorEnabled()", true, logger.isErrorEnabled() );
378 }
379
380 public void testConsoleLevelComparisonWithWarnEnabled()
381 throws Exception
382 {
383 final MockConsoleLogger logger = new MockConsoleLogger( MockConsoleLogger.LEVEL_WARN );
384 assertEquals( "logger.isTraceEnabled()", false, logger.isTraceEnabled() );
385 assertEquals( "logger.isDebugEnabled()", false, logger.isDebugEnabled() );
386 assertEquals( "logger.isInfoEnabled()", false, logger.isInfoEnabled() );
387 assertEquals( "logger.isWarnEnabled()", true, logger.isWarnEnabled() );
388 assertEquals( "logger.isErrorEnabled()", true, logger.isErrorEnabled() );
389 }
390
391 public void testConsoleLevelComparisonWithErrorEnabled()
392 throws Exception
393 {
394 final MockConsoleLogger logger = new MockConsoleLogger( MockConsoleLogger.LEVEL_ERROR );
395 assertEquals( "logger.isTraceEnabled()", false, logger.isTraceEnabled() );
396 assertEquals( "logger.isDebugEnabled()", false, logger.isDebugEnabled() );
397 assertEquals( "logger.isInfoEnabled()", false, logger.isInfoEnabled() );
398 assertEquals( "logger.isWarnEnabled()", false, logger.isWarnEnabled() );
399 assertEquals( "logger.isErrorEnabled()", true, logger.isErrorEnabled() );
400 }
401
402 private void checkLogger( final MockConsoleLogger logger,
403 final boolean output,
404 final String message,
405 final Throwable throwable,
406 final String type )
407 {
408 assertEquals( "logger.m_message == message", message, logger.m_message );
409 assertEquals( "logger.m_output == true", output, logger.m_output );
410 assertEquals( "logger.m_throwable == null", throwable, logger.m_throwable );
411 assertEquals( "logger.m_type == null", type, logger.m_type );
412 }
413 }