package org.zend.sdk.test.sdklib.logger; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import org.junit.Before; import org.junit.Test; import org.zend.sdklib.logger.ILogger; import org.zend.sdklib.logger.Log; public class TestLogger { private ExampleLogger logger; private class ExampleLogger implements ILogger { private Object lastLog; public Object getLastLog() { return lastLog; } @Override public void debug(Object message) { lastLog = message; } @Override public void info(Object message) { lastLog = message; } @Override public void warning(Object message) { lastLog = message; } @Override public void error(Object message) { lastLog = message; } @Override public ILogger getLogger(String creatorName, boolean verbose) { return this; } } @Before public void initLogger() { logger = new ExampleLogger(); Log.getInstance().registerLogger(logger); } @Test public void testDebug() { ILogger log = Log.getInstance().getLogger(""); Exception error = new Exception("debug"); log.debug(error); Object result = logger.getLastLog(); checkValidResultMessage(error, result); } @Test public void testInfo() { ILogger log = Log.getInstance().getLogger(""); Exception error = new Exception("info"); log.info(error); Object result = logger.getLastLog(); checkValidResultMessage(error, result); } @Test public void testWarning() { ILogger log = Log.getInstance().getLogger(""); Exception error = new Exception("warning"); log.warning(error); Object result = logger.getLastLog(); checkValidResultMessage(error, result); } @Test public void testError() { ILogger log = Log.getInstance().getLogger(""); Exception error = new Exception("error"); log.error(error); Object result = logger.getLastLog(); checkValidResultMessage(error, result); } @Test(expected = IllegalStateException.class) public void testNullLogger() { Log.getInstance().registerLogger(null); Log.getInstance().getLogger(""); } private void checkValidResultMessage(Exception expected, Object actual) { assertTrue(actual instanceof Exception); Exception actualError = (Exception) actual; assertSame(expected.getMessage(), actualError.getMessage()); } }