1 package test; 2 3 import junit.framework.TestCase; 4 5 import org.slf4j.LoggerFactory; 6 7 import ch.qos.logback.classic.LoggerContext; 8 import ch.qos.logback.classic.spi.LoggingEvent; 9 import ch.qos.logback.core.read.ListAppender; 10 import org.apache.log4j.Level; 11 12 /** 13 * A class that tests the invocation of the org.apache.log4j.Logger class that 14 * belongs to the log4j-bridge package 15 * 16 * @author Sébastien Pennec 17 * @author Ceki Gülcü 18 */ 19 20 public class LoggerTest extends TestCase { 21 22 LoggerContext context; 23 ListAppender<LoggingEvent> appender; 24 ch.qos.logback.classic.Logger logbackLogger; 25 org.apache.log4j.Logger log4jLogger; 26 27 public void setUp() throws Exception { 28 context = (LoggerContext) LoggerFactory.getILoggerFactory(); 29 context.shutdownAndReset(); 30 appender = new ListAppender<LoggingEvent>(); 31 appender.setContext(context); 32 appender.setName("listAppender"); 33 appender.start(); 34 ch.qos.logback.classic.Logger lbLogger = context 35 .getLogger(LoggerContext.ROOT_NAME); 36 lbLogger.addAppender(appender); 37 38 log4jLogger = org.apache.log4j.Logger.getLogger(LoggerTest.class); 39 logbackLogger = context.getLogger(LoggerTest.class); 40 super.setUp(); 41 } 42 43 public void tearDown() throws Exception { 44 appender.stop(); 45 context.stop(); 46 appender = null; 47 context = null; 48 logbackLogger = null; 49 log4jLogger = null; 50 super.tearDown(); 51 } 52 53 public void testLogWithObjectMessages() { 54 LoggingEvent event; 55 56 log4jLogger.debug("test"); 57 event = appender.list.get(0); 58 assertEquals("test", event.getMessage()); 59 appender.list.clear(); 60 61 log4jLogger.debug(null); 62 event = appender.list.get(0); 63 assertEquals(null, event.getMessage()); 64 appender.list.clear(); 65 66 DummyObject dummy = new DummyObject(); 67 log4jLogger.debug(dummy); 68 event = appender.list.get(0); 69 assertEquals(dummy.toString(), event.getMessage()); 70 appender.list.clear(); 71 } 72 73 public void testIsEnabledAPI() { 74 assertFalse(log4jLogger.isTraceEnabled()); 75 assertTrue(log4jLogger.isDebugEnabled()); 76 assertTrue(log4jLogger.isInfoEnabled()); 77 assertTrue(log4jLogger.isWarnEnabled()); 78 assertTrue(log4jLogger.isErrorEnabled()); 79 } 80 81 public void testPrintAPI() { 82 Exception e = new Exception("just testing"); 83 84 log4jLogger.trace(null); 85 assertEquals(1, appender.list.size()); 86 appender.list.clear(); 87 88 log4jLogger.debug(null); 89 assertEquals(1, appender.list.size()); 90 appender.list.clear(); 91 92 log4jLogger.debug("debug message"); 93 assertEquals(1, appender.list.size()); 94 appender.list.clear(); 95 96 log4jLogger.info(null); 97 assertEquals(1, appender.list.size()); 98 appender.list.clear(); 99 100 log4jLogger.info("info message"); 101 assertEquals(1, appender.list.size()); 102 appender.list.clear(); 103 104 log4jLogger.warn(null); 105 assertEquals(1, appender.list.size()); 106 appender.list.clear(); 107 108 log4jLogger.warn("warn message"); 109 assertEquals(1, appender.list.size()); 110 appender.list.clear(); 111 112 log4jLogger.error(null); 113 assertEquals(1, appender.list.size()); 114 appender.list.clear(); 115 116 log4jLogger.error("error message"); 117 assertEquals(1, appender.list.size()); 118 appender.list.clear(); 119 120 log4jLogger.debug(null, e); 121 assertEquals(1, appender.list.size()); 122 appender.list.clear(); 123 124 log4jLogger.debug("debug message", e); 125 assertEquals(1, appender.list.size()); 126 appender.list.clear(); 127 128 log4jLogger.info(null, e); 129 assertEquals(1, appender.list.size()); 130 appender.list.clear(); 131 132 log4jLogger.info("info message", e); 133 assertEquals(1, appender.list.size()); 134 appender.list.clear(); 135 136 log4jLogger.warn(null, e); 137 assertEquals(1, appender.list.size()); 138 appender.list.clear(); 139 140 log4jLogger.warn("warn message", e); 141 assertEquals(1, appender.list.size()); 142 appender.list.clear(); 143 144 log4jLogger.error(null, e); 145 assertEquals(1, appender.list.size()); 146 appender.list.clear(); 147 148 log4jLogger.error("error message", e); 149 assertEquals(1, appender.list.size()); 150 appender.list.clear(); 151 152 } 153 154 public void testLogAPI() { 155 log4jLogger.log("x", Level.TRACE, "x", null); 156 assertEquals(0, appender.list.size()); 157 158 log4jLogger.log("x", Level.DEBUG, "x", null); 159 log4jLogger.log("x", Level.INFO, "x", null); 160 log4jLogger.log("x", Level.WARN, "x", null); 161 log4jLogger.log("x", Level.ERROR, "x", null); 162 log4jLogger.log("x", Level.FATAL, "x", null); 163 164 assertEquals(5, appender.list.size()); 165 appender.list.clear(); 166 167 } 168 169 } 170