package org.mongodb.morphia.logging;
import org.junit.Test;
import org.mongodb.morphia.TestBase;
import static org.hamcrest.CoreMatchers.isA;
import static org.junit.Assert.assertThat;
/**
* @author us@thomas-daily.de
*/
public class MorphiaLoggerFactoryTest extends TestBase {
@Override
public void tearDown() {
MorphiaLoggerFactory.reset();
super.tearDown();
}
@Test
public void testOverrideLoggerWithCustomOne() throws Exception {
// given
MorphiaLoggerFactory.reset();
MorphiaLoggerFactory.registerLogger(TestLoggerFactory.class);
// when
final Logger logger = MorphiaLoggerFactory.get(Object.class);
// then
assertThat((TestLogger) logger, isA(TestLogger.class));
}
static class TestLoggerFactory implements LoggerFactory {
@Override
public Logger get(final Class<?> c) {
return new TestLogger();
}
}
private static class TestLogger implements Logger {
@Override
public void debug(final String msg) {
}
@Override
public void debug(final String format, final Object... arg) {
}
@Override
public void debug(final String msg, final Throwable t) {
}
@Override
public void error(final String msg) {
}
@Override
public void error(final String format, final Object... arg) {
}
@Override
public void error(final String msg, final Throwable t) {
}
@Override
public void info(final String msg) {
}
@Override
public void info(final String format, final Object... arg) {
}
@Override
public void info(final String msg, final Throwable t) {
}
@Override
public boolean isDebugEnabled() {
return false;
}
@Override
public boolean isErrorEnabled() {
return false;
}
@Override
public boolean isInfoEnabled() {
return false;
}
@Override
public boolean isTraceEnabled() {
return false;
}
@Override
public boolean isWarningEnabled() {
return false;
}
@Override
public void trace(final String msg) {
}
@Override
public void trace(final String format, final Object... arg) {
}
@Override
public void trace(final String msg, final Throwable t) {
}
@Override
public void warning(final String msg) {
}
@Override
public void warning(final String format, final Object... arg) {
}
@Override
public void warning(final String msg, final Throwable t) {
}
}
}