Parameterize XmlCompleteFileAppenderTest. Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/1467acca Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/1467acca Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/1467acca
Branch: refs/heads/LOG4J2-1010&LOG4J2-1447-injectable-contextdata&better-datastructure Commit: 1467acca0f9f7ac2eeaf3d1ffb7f1883a2278c57 Parents: 9ee19e3 Author: Gary Gregory <ggreg...@apache.org> Authored: Thu Aug 4 22:28:02 2016 -0700 Committer: Gary Gregory <ggreg...@apache.org> Committed: Thu Aug 4 22:28:02 2016 -0700 ---------------------------------------------------------------------- .../appender/XmlCompleteFileAppenderTest.java | 41 +++++++++++++++----- 1 file changed, 32 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1467acca/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompleteFileAppenderTest.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompleteFileAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompleteFileAppenderTest.java index ae772f2..ab4d79f 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompleteFileAppenderTest.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/XmlCompleteFileAppenderTest.java @@ -23,45 +23,68 @@ import java.io.FileReader; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.core.CoreLoggerContexts; +import org.apache.logging.log4j.core.async.AsyncLoggerContextSelector; import org.apache.logging.log4j.core.config.ConfigurationFactory; +import org.apache.logging.log4j.core.selector.BasicContextSelector; +import org.apache.logging.log4j.core.selector.ClassLoaderContextSelector; +import org.apache.logging.log4j.core.selector.ContextSelector; +import org.apache.logging.log4j.junit.CleanFiles; +import org.apache.logging.log4j.junit.LoggerContextRule; import org.junit.BeforeClass; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.RuleChain; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; import static org.junit.Assert.*; /** * Tests a "complete" XML file a.k.a. a well-formed XML file. */ +@RunWith(Parameterized.class) public class XmlCompleteFileAppenderTest { - @BeforeClass - public static void beforeClass() { - System.setProperty(ConfigurationFactory.CONFIGURATION_FILE_PROPERTY, - "XmlCompleteFileAppenderTest.xml"); + public XmlCompleteFileAppenderTest(Class<ContextSelector> contextSelector) { + this.loggerContextRule = new LoggerContextRule("XmlCompleteFileAppenderTest.xml", contextSelector); + this.cleanFiles = new CleanFiles(logFile); + this.ruleChain = RuleChain.outerRule(cleanFiles).around(loggerContextRule); } + @Parameters(name = "{0}") + public static Class<?>[] getParameters() { + return new Class<?>[] { ClassLoaderContextSelector.class, BasicContextSelector.class, AsyncLoggerContextSelector.class }; + } + + private final File logFile = new File("target", "XmlCompleteFileAppenderTest.log"); + private final LoggerContextRule loggerContextRule; + private final CleanFiles cleanFiles; + + @Rule + public RuleChain ruleChain; + @Test public void testFlushAtEndOfBatch() throws Exception { - final File file = new File("target", "XmlCompleteFileAppenderTest.log"); // System.out.println(f.getAbsolutePath()); - file.delete(); + logFile.delete(); final Logger log = LogManager.getLogger("com.foo.Bar"); final String logMsg = "Message flushed with immediate flush=false"; log.info(logMsg); - CoreLoggerContexts.stopLoggerContext(false, file); // stop async thread + CoreLoggerContexts.stopLoggerContext(false, logFile); // stop async thread String line1; String line2; String line3; String line4; - try (final BufferedReader reader = new BufferedReader(new FileReader(file))) { + try (final BufferedReader reader = new BufferedReader(new FileReader(logFile))) { line1 = reader.readLine(); line2 = reader.readLine(); reader.readLine(); // ignore the empty line after the <Events> root line3 = reader.readLine(); line4 = reader.readLine(); } finally { - file.delete(); + logFile.delete(); } assertNotNull("line1", line1); final String msg1 = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";