You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2014/03/27 03:26:09 UTC

svn commit: r1582153 - in /logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j: core/config/FileOutputTest.java junit/CleanFiles.java

Author: mattsicker
Date: Thu Mar 27 02:26:09 2014
New Revision: 1582153

URL: http://svn.apache.org/r1582153
Log:
Update test to use InitialLoggerContext rule.

  - Also added a CleanFiles rule. It does what it sounds like.

Added:
    logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.java   (with props)
Modified:
    logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/FileOutputTest.java

Modified: logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/FileOutputTest.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/FileOutputTest.java?rev=1582153&r1=1582152&r2=1582153&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/FileOutputTest.java (original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/FileOutputTest.java Thu Mar 27 02:26:09 2014
@@ -18,13 +18,11 @@ package org.apache.logging.log4j.core.co
 
 import java.io.File;
 
-import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.xml.XMLConfiguration;
-import org.apache.logging.log4j.status.StatusLogger;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.apache.logging.log4j.junit.CleanFiles;
+import org.apache.logging.log4j.junit.InitialLoggerContext;
+import org.junit.*;
 
 import static org.junit.Assert.assertTrue;
 
@@ -36,12 +34,15 @@ public class FileOutputTest {
     private static final String CONFIG = "log4j-filetest.xml";
     private static final String STATUS_LOG = "target/status.log";
 
-    @BeforeClass
-    public static void setupClass() {
-        final File file = new File(STATUS_LOG);
-        file.delete();
-        System.setProperty(ConfigurationFactory.CONFIGURATION_FILE_PROPERTY, CONFIG);
-        final LoggerContext ctx = (LoggerContext) LogManager.getContext();
+    @Rule
+    public CleanFiles cleanFiles = new CleanFiles(STATUS_LOG);
+
+    @Rule
+    public InitialLoggerContext init = new InitialLoggerContext(CONFIG);
+
+    @Before
+    public void setupClass() {
+        final LoggerContext ctx = this.init.getContext();
         final Configuration config = ctx.getConfiguration();
         if (config instanceof XMLConfiguration) {
             final String name = config.getName();
@@ -53,16 +54,6 @@ public class FileOutputTest {
         }
     }
 
-    @AfterClass
-    public static void cleanupClass() {
-        System.clearProperty(ConfigurationFactory.CONFIGURATION_FILE_PROPERTY);
-        final LoggerContext ctx = (LoggerContext) LogManager.getContext();
-        ctx.reconfigure();
-        StatusLogger.getLogger().reset();
-        final File file = new File(STATUS_LOG);
-        file.delete();
-    }
-
     @Test
     public void testConfig() {
         final File file = new File(STATUS_LOG);

Added: logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.java?rev=1582153&view=auto
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.java (added)
+++ logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.java Thu Mar 27 02:26:09 2014
@@ -0,0 +1,50 @@
+package org.apache.logging.log4j.junit;
+
+import org.junit.rules.ExternalResource;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import static org.junit.Assert.assertTrue;
+
+/**
+ * A JUnit test rule to automatically delete certain files before and after a test is run.
+ */
+public class CleanFiles extends ExternalResource {
+    private final List<File> files;
+
+    public CleanFiles(final File... files) {
+        this.files = Arrays.asList(files);
+    }
+
+    public CleanFiles(final String... fileNames) {
+        this.files = new ArrayList<File>(fileNames.length);
+        for (final String fileName : fileNames) {
+            this.files.add(new File(fileName));
+        }
+    }
+
+    private void clean() {
+        for (final File file : files) {
+            delete(file);
+        }
+    }
+
+    private static void delete(final File file) {
+        if (file.exists()) {
+            assertTrue(file.delete());
+        }
+    }
+
+    @Override
+    protected void before() throws Throwable {
+        this.clean();
+    }
+
+    @Override
+    protected void after() {
+        this.clean();
+    }
+}

Propchange: logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/junit/CleanFiles.java
------------------------------------------------------------------------------
    svn:eol-style = native