### Question:
Log4J2Logger extends AbstractInternalLogger { @Override public void info(String msg) { logger.info(msg); } Log4J2Logger(Logger logger); @Override boolean isTraceEnabled(); @Override void trace(String msg); @Override void trace(String format, Object arg); @Override void trace(String format, Object argA, Object argB); @Override void trace(String format, Object... arguments); @Override void trace(String msg, Throwable t); @Override boolean isDebugEnabled(); @Override void debug(String msg); @Override void debug(String format, Object arg); @Override void debug(String format, Object argA, Object argB); @Override void debug(String format, Object... arguments); @Override void debug(String msg, Throwable t); @Override boolean isInfoEnabled(); @Override void info(String msg); @Override void info(String format, Object arg); @Override void info(String format, Object argA, Object argB); @Override void info(String format, Object... arguments); @Override void info(String msg, Throwable t); @Override boolean isWarnEnabled(); @Override void warn(String msg); @Override void warn(String format, Object arg); @Override void warn(String format, Object... arguments); @Override void warn(String format, Object argA, Object argB); @Override void warn(String msg, Throwable t); @Override boolean isErrorEnabled(); @Override void error(String msg); @Override void error(String format, Object arg); @Override void error(String format, Object argA, Object argB); @Override void error(String format, Object... arguments); @Override void error(String msg, Throwable t);  }### Answer:
@Test public void testInfo() { Logger mock = mock(Logger.class); when(mock.getName()).thenReturn("foo"); InternalLogger logger = new Log4J2Logger(mock); logger.info("a"); verify(mock).getName(); verify(mock).info("a"); }
@Test public void testInfoWithException() { Logger mock = mock(Logger.class); when(mock.getName()).thenReturn("foo"); InternalLogger logger = new Log4J2Logger(mock); logger.info("a", e); verify(mock).getName(); verify(mock).info("a", e); }
@Test public void testInfo() { Logger mock = createStrictMock(Logger.class); expect(mock.getName()).andReturn("foo"); mock.info("a"); replay(mock); InternalLogger logger = new Log4J2Logger(mock); logger.info("a"); verify(mock); }
@Test public void testInfoWithException() { Logger mock = createStrictMock(Logger.class); expect(mock.getName()).andReturn("foo"); mock.info("a", e); replay(mock); InternalLogger logger = new Log4J2Logger(mock); logger.info("a", e); verify(mock); }