svn commit: r1918 - in logback/trunk/logback-classic/src: main/java/ch/qos/logback/classic test/java/ch/qos/logback/classic

Author: ceki Date: Thu Oct 30 20:42:34 2008 New Revision: 1918 Modified: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/LoggerContext.java logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/LoggerContextTest.java logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/PackageTest.java Log: Fixes LBCLASSIC-49 The getLogger() method in LoggerContext class will now throw an IllegalArgumentException when invoked with a null argument. Modified: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/LoggerContext.java ============================================================================== --- logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/LoggerContext.java (original) +++ logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/LoggerContext.java Thu Oct 30 20:42:34 2008 @@ -105,6 +105,10 @@ public final Logger getLogger(final String name) { + if(name == null) { + throw new IllegalArgumentException("name argument cannot be null"); + } + // if we are asking for the root logger, then let us return it without // wasting time if (ROOT_NAME.equalsIgnoreCase(name)) { Modified: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/LoggerContextTest.java ============================================================================== --- logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/LoggerContextTest.java (original) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/LoggerContextTest.java Thu Oct 30 20:42:34 2008 @@ -1,7 +1,7 @@ /** - * LOGBack: the generic, reliable, fast and flexible logging framework. + * Logback: the generic, reliable, fast and flexible logging framework. * - * Copyright (C) 1999-2006, QOS.ch + * Copyright (C) 2000-2008, QOS.ch * * This library is free software, you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free @@ -9,25 +9,33 @@ */ package ch.qos.logback.classic; -import junit.framework.TestCase; +import static org.junit.Assert.*; + +import org.junit.Before; +import org.junit.Test; +import org.slf4j.LoggerFactory; + import ch.qos.logback.core.status.StatusManager; -public class LoggerContextTest extends TestCase { +public class LoggerContextTest { LoggerContext lc; - protected void setUp() throws Exception { - Logger.instanceCount = 0; - lc = new LoggerContext(); - lc.setName("x"); + @Before + public void setUp() throws Exception { + Logger.instanceCount = 0; + lc = new LoggerContext(); + lc.setName("x"); } - public void testRootGetLogger() { + @Test + public void testRootGetLogger() { Logger root = lc.getLogger(LoggerContext.ROOT_NAME); assertEquals(Level.DEBUG, root.getLevel()); assertEquals(Level.DEBUG, root.getEffectiveLevel()); } - public void testLoggerX() { + @Test + public void testLoggerX() { Logger x = lc.getLogger("x"); assertNotNull(x); assertEquals("x", x.getName()); @@ -35,31 +43,44 @@ assertEquals(Level.DEBUG, x.getEffectiveLevel()); } - public void testEmpty() { + @Test + public void testNull() { + try { + lc.getLogger((String) null); + fail("null should cause an exception"); + } catch (IllegalArgumentException e) { + } + } + + @Test + public void testEmpty() { Logger empty = lc.getLogger(""); LoggerTestHelper.assertNameEquals(empty, ""); LoggerTestHelper.assertLevels(null, empty, Level.DEBUG); Logger dot = lc.getLogger("."); LoggerTestHelper.assertNameEquals(dot, "."); -// LoggerTestHelper.assertNameEquals(dot.parent, ""); -// LoggerTestHelper.assertNameEquals(dot.parent.parent, "root"); + // LoggerTestHelper.assertNameEquals(dot.parent, ""); + // LoggerTestHelper.assertNameEquals(dot.parent.parent, "root"); -// assertNull(dot.parent.parent.parent); + // assertNull(dot.parent.parent.parent); LoggerTestHelper.assertLevels(null, dot, Level.DEBUG); assertEquals(3, Logger.instanceCount); } + @Test public void testDotDot() { Logger dotdot = lc.getLogger(".."); assertEquals(4, Logger.instanceCount); LoggerTestHelper.assertNameEquals(dotdot, ".."); -// LoggerTestHelper.assertNameEquals(dotdot.parent, "."); -// LoggerTestHelper.assertNameEquals(dotdot.parent.parent, ""); -// LoggerTestHelper.assertNameEquals(dotdot.parent.parent.parent, "root"); + // LoggerTestHelper.assertNameEquals(dotdot.parent, "."); + // LoggerTestHelper.assertNameEquals(dotdot.parent.parent, ""); + // LoggerTestHelper.assertNameEquals(dotdot.parent.parent.parent, "root"); } - public void testLoggerXY() { + + @Test + public void testLoggerXY() { assertEquals(1, Logger.instanceCount); Logger xy = lc.getLogger("x.y"); @@ -78,26 +99,28 @@ assertEquals(3, Logger.instanceCount); } - public void testLoggerMultipleChildren() { - assertEquals(1, Logger.instanceCount); - Logger xy0 = lc.getLogger("x.y0"); - LoggerTestHelper.assertNameEquals(xy0, "x.y0"); - - Logger xy1 = lc.getLogger("x.y1"); - LoggerTestHelper.assertNameEquals(xy1, "x.y1"); - - LoggerTestHelper.assertLevels(null, xy0, Level.DEBUG); - LoggerTestHelper.assertLevels(null, xy1, Level.DEBUG); - assertEquals(4, Logger.instanceCount); - - for(int i = 0; i < 100; i++) { - Logger xy_i = lc.getLogger("x.y"+i); - LoggerTestHelper.assertNameEquals(xy_i, "x.y"+i); - LoggerTestHelper.assertLevels(null, xy_i, Level.DEBUG); - } - assertEquals(102, Logger.instanceCount); - } + @Test + public void testLoggerMultipleChildren() { + assertEquals(1, Logger.instanceCount); + Logger xy0 = lc.getLogger("x.y0"); + LoggerTestHelper.assertNameEquals(xy0, "x.y0"); + + Logger xy1 = lc.getLogger("x.y1"); + LoggerTestHelper.assertNameEquals(xy1, "x.y1"); + + LoggerTestHelper.assertLevels(null, xy0, Level.DEBUG); + LoggerTestHelper.assertLevels(null, xy1, Level.DEBUG); + assertEquals(4, Logger.instanceCount); + + for (int i = 0; i < 100; i++) { + Logger xy_i = lc.getLogger("x.y" + i); + LoggerTestHelper.assertNameEquals(xy_i, "x.y" + i); + LoggerTestHelper.assertLevels(null, xy_i, Level.DEBUG); + } + assertEquals(102, Logger.instanceCount); + } + @Test public void testMultiLevel() { Logger wxyz = lc.getLogger("w.x.y.z"); LoggerTestHelper.assertNameEquals(wxyz, "w.x.y.z"); @@ -110,22 +133,24 @@ LoggerTestHelper.assertLevels(null, lc.getLogger("w.x.y"), Level.INFO); LoggerTestHelper.assertLevels(null, wxyz, Level.INFO); } - + + @Test public void testStatusWithUnconfiguredContext() { - Logger logger = lc.getLogger(LoggerContextTest.class); - - for (int i = 0; i < 3; i++) { - logger.debug("test"); - } - - logger = lc.getLogger("x.y.z"); - - for (int i = 0; i < 3; i++) { - logger.debug("test"); - } - - StatusManager sm = lc.getStatusManager(); - assertTrue("StatusManager has recieved too many messages", sm.getCount() == 1); + Logger logger = lc.getLogger(LoggerContextTest.class); + + for (int i = 0; i < 3; i++) { + logger.debug("test"); + } + + logger = lc.getLogger("x.y.z"); + + for (int i = 0; i < 3; i++) { + logger.debug("test"); + } + + StatusManager sm = lc.getStatusManager(); + assertTrue("StatusManager has recieved too many messages", + sm.getCount() == 1); } } \ No newline at end of file Modified: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/PackageTest.java ============================================================================== --- logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/PackageTest.java (original) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/PackageTest.java Thu Oct 30 20:42:34 2008 @@ -15,7 +15,7 @@ public static Test suite() { TestSuite suite = new TestSuite(); - suite.addTestSuite(LoggerContextTest.class); + suite.addTest(new JUnit4TestAdapter(LoggerContextTest.class)); suite.addTest(new JUnit4TestAdapter(LoggerPerfTest.class)); suite.addTest(new JUnit4TestAdapter(DynamicLoggerContextTest.class)); suite.addTest(new JUnit4TestAdapter(PatternLayoutTest.class));
participants (1)
-
noreply.ceki@qos.ch