/*
* (c) Rob Gordon 2006
*/
package org.oddjob.jmx.server;
import junit.framework.TestCase;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.oddjob.arooa.registry.MockBeanRegistry;
import org.oddjob.arooa.registry.ServerId;
import org.oddjob.logging.LogEnabled;
import org.oddjob.logging.LogEvent;
import org.oddjob.logging.LogLevel;
import org.oddjob.logging.LogListener;
import org.oddjob.util.MockThreadManager;
public class ServerModelTest extends TestCase {
class LL implements LogListener {
LogEvent e;
public void logEvent(LogEvent logEvent) {
this.e = logEvent;
}
}
public static class LoggingBean implements LogEnabled {
public String loggerName() {
return "org.oddjob.test.LoggingBean";
}
}
class OurRegistry extends MockBeanRegistry {
@Override
public String getIdFor(Object component) {
return "apple";
}
}
/**
* Test retrieving log events
*
*/
public void testLogArchiver() throws Exception {
LoggingBean bean = new LoggingBean();
ServerModelImpl sm = new ServerModelImpl(
new ServerId("//test"),
new MockThreadManager(),
new MockServerInterfaceManagerFactory());
sm.setLogFormat("%m");
Logger testLogger = Logger.getLogger(bean.loggerName());
LL ll = new LL();
ServerContext serverContext = new ServerContextImpl(
bean, sm, new OurRegistry());
testLogger.setLevel(Level.DEBUG);
testLogger.info("Test");
serverContext.getLogArchiver().addLogListener(ll, bean, LogLevel.DEBUG, -1, 10);
assertNotNull("event", ll.e);
assertEquals("event message", "Test", ll.e.getMessage());
}
}