svn commit: r1287 - in logback/trunk/logback-classic/src: main/java/ch/qos/logback/classic/selector test/java/ch/qos/logback/classic/selector

Author: seb Date: Mon Jan 29 14:45:15 2007 New Revision: 1287 Added: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/selector/ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/selector/ContextDetachingSCLTest.java logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/selector/ContextJNDISelectorTest.java Modified: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/selector/ContextJNDISelector.java Log: added two testcases for the ContextDetachingSCL and ContextJNDISelector classes Modified: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/selector/ContextJNDISelector.java ============================================================================== --- logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/selector/ContextJNDISelector.java (original) +++ logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/selector/ContextJNDISelector.java Mon Jan 29 14:45:15 2007 @@ -108,5 +108,15 @@ + " does not lead to a valid file"); } } + + /** + * Returns the number of managed contexts + * Used for testing purposes + * + * @return the number of managed contexts + */ + public int getCount() { + return contextMap.size(); + } } Added: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/selector/ContextDetachingSCLTest.java ============================================================================== --- (empty file) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/selector/ContextDetachingSCLTest.java Mon Jan 29 14:45:15 2007 @@ -0,0 +1,60 @@ +package ch.qos.logback.classic.selector; + +import junit.framework.TestCase; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import ch.qos.logback.classic.ClassicGlobal; +import ch.qos.logback.classic.net.mock.MockInitialContext; +import ch.qos.logback.classic.net.mock.MockInitialContextFactory; +import ch.qos.logback.classic.selector.servlet.ContextDetachingSCL; + +public class ContextDetachingSCLTest extends TestCase { + + static String INITIAL_CONTEXT_KEY = "java.naming.factory.initial"; + + ContextDetachingSCL listener; + + @Override + protected void setUp() throws Exception { + System.setProperty(ClassicGlobal.LOGBACK_CONTEXT_SELECTOR, "JNDI"); + listener = new ContextDetachingSCL(); + + MockInitialContext mic = MockInitialContextFactory.getContext(); + mic.map.put(ClassicGlobal.JNDI_CONTEXT_NAME, "toto"); + + //The property must be set after we setup the Mock + System.setProperty(INITIAL_CONTEXT_KEY, MockInitialContextFactory.class.getName()); + + //this call will create the context "toto" + @SuppressWarnings("unused") + Logger logger = LoggerFactory.getLogger(ContextDetachingSCLTest.class); + + super.setUp(); + } + + @Override + protected void tearDown() throws Exception { + System.clearProperty(INITIAL_CONTEXT_KEY); + super.tearDown(); + } + + public void testDetach() { + ContextJNDISelector selector = (ContextJNDISelector) LoggerFactory.getContextSelector(); + listener.contextDestroyed(null); + + assertEquals(0, selector.getCount()); + } + + public void testDetachWithMissingContext() { + MockInitialContext mic = MockInitialContextFactory.getContext(); + mic.map.put(ClassicGlobal.JNDI_CONTEXT_NAME, "tata"); + + ContextJNDISelector selector = (ContextJNDISelector) LoggerFactory.getContextSelector(); + listener.contextDestroyed(null); + + assertEquals(1, selector.getCount()); + } + +} Added: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/selector/ContextJNDISelectorTest.java ============================================================================== --- (empty file) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/selector/ContextJNDISelectorTest.java Mon Jan 29 14:45:15 2007 @@ -0,0 +1,63 @@ +package ch.qos.logback.classic.selector; + +import junit.framework.TestCase; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import ch.qos.logback.classic.ClassicGlobal; +import ch.qos.logback.classic.net.mock.MockInitialContext; +import ch.qos.logback.classic.net.mock.MockInitialContextFactory; +import ch.qos.logback.classic.selector.servlet.ContextDetachingSCL; +import ch.qos.logback.core.Context; + +public class ContextJNDISelectorTest extends TestCase { + + static String INITIAL_CONTEXT_KEY = "java.naming.factory.initial"; + + ContextDetachingSCL listener; + + @Override + protected void setUp() throws Exception { + System.setProperty(ClassicGlobal.LOGBACK_CONTEXT_SELECTOR, "JNDI"); + listener = new ContextDetachingSCL(); + + MockInitialContext mic = MockInitialContextFactory.getContext(); + mic.map.put(ClassicGlobal.JNDI_CONTEXT_NAME, "toto"); + + //The property must be set after we setup the Mock + System.setProperty(INITIAL_CONTEXT_KEY, MockInitialContextFactory.class.getName()); + + //this call will create the context "toto" + @SuppressWarnings("unused") + Logger logger = LoggerFactory.getLogger(ContextDetachingSCLTest.class); + + super.setUp(); + } + + @Override + protected void tearDown() throws Exception { + System.clearProperty(INITIAL_CONTEXT_KEY); + super.tearDown(); + } + + public void testGetExistingContext() { + ContextSelector selector = LoggerFactory.getContextSelector(); + Context context = selector.getLoggerContext(); + assertEquals("toto", context.getName()); + } + + public void testCreateContext() { + MockInitialContext mic = MockInitialContextFactory.getContext(); + mic.map.put(ClassicGlobal.JNDI_CONTEXT_NAME, "tata"); + + @SuppressWarnings("unused") + Logger logger = LoggerFactory.getLogger(ContextDetachingSCLTest.class); + + ContextJNDISelector selector = (ContextJNDISelector)LoggerFactory.getContextSelector(); + Context context = selector.getLoggerContext(); + assertEquals("tata", context.getName()); + assertEquals(2, selector.getCount()); + } + +}
participants (1)
-
noreply.seb@qos.ch