package org.skywalking.apm.agent.core.logging; import org.junit.AfterClass; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import org.mockito.Mockito; import org.skywalking.apm.agent.core.conf.Constants; import java.io.PrintStream; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.times; /** * Created by wusheng on 2017/2/28. */ public class EasyLoggerTest { private static PrintStream outRef; private static PrintStream errRef; @BeforeClass public static void initAndHoldOut() { outRef = System.out; errRef = System.err; } @Test public void testLog() { PrintStream output = Mockito.mock(PrintStream.class); System.setOut(output); PrintStream err = Mockito.mock(PrintStream.class); System.setErr(err); EasyLogger logger = new EasyLogger(EasyLoggerTest.class); Assert.assertTrue(logger.isDebugEnable()); Assert.assertTrue(logger.isInfoEnable()); Assert.assertTrue(logger.isWarnEnable()); Assert.assertTrue(logger.isErrorEnable()); logger.debug("hello world"); logger.debug("hello {}", "world"); logger.info("hello world"); logger.info("hello {}", "world"); logger.warn("hello {}", "world"); logger.warn("hello world"); logger.error("hello world"); logger.error("hello world", new NullPointerException()); logger.error(new NullPointerException(), "hello {}", "world"); Mockito.verify(output, times(9)) .println(anyString()); } @Test public void testFormat() { NullPointerException exception = new NullPointerException(); EasyLogger logger = new EasyLogger(EasyLoggerTest.class); String formatLines = logger.format(exception); String[] lines = formatLines.split(Constants.LINE_SEPARATOR); Assert.assertEquals("java.lang.NullPointerException", lines[1]); Assert.assertEquals("\tat org.skywalking.apm.agent.core.logging.EasyLoggerTest.testFormat(EasyLoggerTest.java:58)", lines[2]); } @AfterClass public static void reset() { System.setOut(outRef); System.setErr(errRef); } }