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


Reply via email to