[logback-dev] svn commit: r1915 - logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling

noreply.ceki at qos.ch noreply.ceki at qos.ch
Wed Oct 29 23:04:19 CET 2008


Author: ceki
Date: Wed Oct 29 23:04:19 2008
New Revision: 1915

Modified:
   logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/PackageTest.java
   logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/TimeBasedRollingTest.java

Log:
- refactoring TimeBasedRollingTest for improved clarity

Modified: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/PackageTest.java
==============================================================================
--- logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/PackageTest.java	(original)
+++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/PackageTest.java	Wed Oct 29 23:04:19 2008
@@ -11,7 +11,7 @@
     TestSuite suite = new TestSuite();
     suite.addTestSuite(RenamingTest.class);
     suite.addTest(new JUnit4TestAdapter(SizeBasedRollingTest.class));
-    suite.addTestSuite(TimeBasedRollingTest.class);
+    suite.addTest(new JUnit4TestAdapter(TimeBasedRollingTest.class));
     suite.addTest(ch.qos.logback.core.rolling.helper.PackageTest.suite());
     return suite;
   }

Modified: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/TimeBasedRollingTest.java
==============================================================================
--- logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/TimeBasedRollingTest.java	(original)
+++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/TimeBasedRollingTest.java	Wed Oct 29 23:04:19 2008
@@ -10,14 +10,17 @@
 
 package ch.qos.logback.core.rolling;
 
+import static org.junit.Assert.*;
+
 import java.io.File;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.concurrent.TimeUnit;
 
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
 import ch.qos.logback.core.Context;
 import ch.qos.logback.core.ContextBase;
 import ch.qos.logback.core.layout.EchoLayout;
@@ -45,19 +48,29 @@
  * 
  * @author Ceki Gülcü
  */
-public class TimeBasedRollingTest extends TestCase {
+public class TimeBasedRollingTest {
 
   static final String DATE_PATTERN = "yyyy-MM-dd_HH_mm_ss";
+  SimpleDateFormat sdf = new SimpleDateFormat(DATE_PATTERN);
 
   EchoLayout<Object> layout = new EchoLayout<Object>();
   Context context = new ContextBase();
 
-  public TimeBasedRollingTest(String name) {
-    super(name);
-  }
+  RollingFileAppender<Object> rfa1 = new RollingFileAppender<Object>();
+  TimeBasedRollingPolicy tbrp1 = new TimeBasedRollingPolicy();
+
+  RollingFileAppender<Object> rfa2 = new RollingFileAppender<Object>();
+  TimeBasedRollingPolicy tbrp2 = new TimeBasedRollingPolicy();
 
+  Calendar cal = Calendar.getInstance();
+  long currentTime;
+
+  @Before
   public void setUp() {
     context.setName("test");
+    cal.set(Calendar.MILLISECOND, 0);
+    currentTime = cal.getTimeInMillis();
+
     // Delete .log files
     {
       File target = new File(Constants.OUTPUT_DIR_PREFIX + "test4.log");
@@ -76,47 +89,68 @@
     }
   }
 
+  @After
   public void tearDown() {
   }
 
-  /**
-   * Test rolling without compression, file option left blank, no stop/start
-   */
-  public void test1() throws Exception {
-    Calendar cal = Calendar.getInstance();
-    cal.set(Calendar.MILLISECOND, 0);
-    long currentTime = cal.getTimeInMillis();
-
-    RollingFileAppender<Object> rfa = new RollingFileAppender<Object>();
+  void initRFA(RollingFileAppender<Object> rfa, String filename) {
     rfa.setContext(context);
     rfa.setLayout(layout);
+    if (filename != null) {
+      rfa.setFile(filename);
+    }
+  }
 
-    TimeBasedRollingPolicy tbrp = new TimeBasedRollingPolicy();
+  void initTRBP(RollingFileAppender<Object> rfa, TimeBasedRollingPolicy tbrp,
+      String filenamePattern, long currentTime) {
     tbrp.setContext(context);
-    tbrp.setFileNamePattern(Constants.OUTPUT_DIR_PREFIX + "test1-%d{"
-        + DATE_PATTERN + "}");
+    tbrp.setFileNamePattern(filenamePattern);
     tbrp.setParent(rfa);
     tbrp.setCurrentTime(currentTime);
     tbrp.start();
     rfa.setRollingPolicy(tbrp);
     rfa.start();
+  }
 
-    SimpleDateFormat sdf = new SimpleDateFormat(DATE_PATTERN);
+  String[] computeFilenames(String testStr,
+      boolean compression, String lastFile) {
     String[] filenames = new String[3];
-
-    for (int i = 0; i < 3; i++) {
-      filenames[i] = Constants.OUTPUT_DIR_PREFIX + "test1-"
+    int oneBeforeLast = filenames.length - 1;
+    for (int i = 0; i < oneBeforeLast; i++) {
+      filenames[i] = Constants.OUTPUT_DIR_PREFIX + testStr
           + sdf.format(cal.getTime());
+      if (compression) {
+        filenames[i] += ".gz";
+      }
       cal.add(Calendar.SECOND, 1);
     }
+    if (lastFile != null) {
+      filenames[oneBeforeLast] = Constants.OUTPUT_DIR_PREFIX + lastFile;
+    } else {
+      filenames[oneBeforeLast] = Constants.OUTPUT_DIR_PREFIX + testStr
+          + sdf.format(cal.getTime());
+    }
+    return filenames;
+  }
+
+  /**
+   * Test rolling without compression, file option left blank, no stop/start
+   */
+  @Test
+  public void test1() throws Exception {
+    initRFA(rfa1, null);
+    initTRBP(rfa1, tbrp1, Constants.OUTPUT_DIR_PREFIX + "test1-%d{"
+        + DATE_PATTERN + "}", currentTime);
+
+    String[] filenames = computeFilenames("test1-", false, null);
 
     // System.out.println("Waiting until next second and 100 millis.");
-    tbrp.setCurrentTime(addTime(currentTime, 1100));
+    tbrp1.setCurrentTime(addTime(currentTime, 1100));
     // System.out.println("Done waiting.");
 
     for (int i = 0; i < 3; i++) {
-      rfa.doAppend("Hello---" + i);
-      tbrp.setCurrentTime(addTime(tbrp.getCurrentTime(), 500));
+      rfa1.doAppend("Hello---" + i);
+      tbrp1.setCurrentTime(addTime(tbrp1.getCurrentTime(), 500));
       // Thread.sleep(500);
     }
 
@@ -133,33 +167,14 @@
   /**
    * No compression, with stop/restart, file option left blank
    */
+  @Test
   public void test2() throws Exception {
-    Calendar cal = Calendar.getInstance();
-    cal.set(Calendar.MILLISECOND, 0);
-    long currentTime = cal.getTimeInMillis();
 
-    RollingFileAppender<Object> rfa1 = new RollingFileAppender<Object>();
-    rfa1.setContext(context);
-    rfa1.setLayout(layout);
-
-    TimeBasedRollingPolicy tbrp1 = new TimeBasedRollingPolicy();
-    tbrp1.setFileNamePattern(Constants.OUTPUT_DIR_PREFIX + "test2-%d{"
-        + DATE_PATTERN + "}");
-    tbrp1.setContext(context);
-    tbrp1.setParent(rfa1);
-    tbrp1.setCurrentTime(currentTime);
-    tbrp1.start();
-    rfa1.setRollingPolicy(tbrp1);
-    rfa1.start();
-
-    SimpleDateFormat sdf = new SimpleDateFormat(DATE_PATTERN);
-    String[] filenames = new String[3];
+    initRFA(rfa1, null);
+    initTRBP(rfa1, tbrp1, Constants.OUTPUT_DIR_PREFIX + "test2-%d{"
+        + DATE_PATTERN + "}", currentTime);
 
-    for (int i = 0; i < 3; i++) {
-      filenames[i] = Constants.OUTPUT_DIR_PREFIX + "test2-"
-          + sdf.format(cal.getTime());
-      cal.add(Calendar.SECOND, 1);
-    }
+    String[] filenames = computeFilenames("test2-", false, null);
 
     // System.out.println("Waiting until next second and 100 millis.");
     tbrp1.setCurrentTime(addTime(currentTime, 1100));
@@ -173,19 +188,9 @@
 
     rfa1.stop();
 
-    RollingFileAppender<Object> rfa2 = new RollingFileAppender<Object>();
-    rfa2.setContext(context);
-    rfa2.setLayout(layout);
-
-    TimeBasedRollingPolicy tbrp2 = new TimeBasedRollingPolicy();
-    tbrp2.setContext(context);
-    tbrp2.setFileNamePattern(Constants.OUTPUT_DIR_PREFIX + "test2-%d{"
-        + DATE_PATTERN + "}");
-    tbrp2.setParent(rfa2);
-    tbrp2.setCurrentTime(tbrp1.getCurrentTime());
-    tbrp2.start();
-    rfa2.setRollingPolicy(tbrp2);
-    rfa2.start();
+    initRFA(rfa2, null);
+    initTRBP(rfa2, tbrp2, Constants.OUTPUT_DIR_PREFIX + "test2-%d{"
+        + DATE_PATTERN + "}", tbrp1.getCurrentTime());
 
     for (int i = 0; i <= 2; i++) {
       rfa2.doAppend("Hello---" + i);
@@ -202,90 +207,42 @@
   /**
    * With compression, file option left blank, no stop/restart
    */
+  @Test
   public void test3() throws Exception {
-    Calendar cal = Calendar.getInstance();
-    cal.set(Calendar.MILLISECOND, 0);
-    long currentTime = cal.getTimeInMillis();
+    initRFA(rfa1, null);
+    initTRBP(rfa1, tbrp1, Constants.OUTPUT_DIR_PREFIX + "test3-%d{"
+        + DATE_PATTERN + "}.gz", currentTime);
 
-    RollingFileAppender<Object> rfa = new RollingFileAppender<Object>();
-    rfa.setContext(context);
-    rfa.setLayout(layout);
+    String[] filenames = computeFilenames("test3-", true, null);
 
-    TimeBasedRollingPolicy tbrp = new TimeBasedRollingPolicy();
-    tbrp.setContext(context);
-    tbrp.setFileNamePattern(Constants.OUTPUT_DIR_PREFIX + "test3-%d{"
-        + DATE_PATTERN + "}.gz");
-    tbrp.setParent(rfa);
-    tbrp.setCurrentTime(currentTime);
-    tbrp.start();
-    rfa.setRollingPolicy(tbrp);
-    rfa.start();
-
-    SimpleDateFormat sdf = new SimpleDateFormat(DATE_PATTERN);
-    String[] filenames = new String[4];
-
-    for (int i = 0; i < 2; i++) {
-      filenames[i] = Constants.OUTPUT_DIR_PREFIX + "test3-"
-          + sdf.format(cal.getTime()) + ".gz";
-      cal.add(Calendar.SECOND, 1);
-    }
-
-    filenames[3] = Constants.OUTPUT_DIR_PREFIX + "test3-"
-        + sdf.format(cal.getTime());
-
-    // System.out.println("Waiting until next second and 100 millis.");
-    tbrp.setCurrentTime(addTime(currentTime, 1100));
-    // System.out.println("Done waiting.");
+    tbrp1.setCurrentTime(addTime(currentTime, 1100));
 
     for (int i = 0; i < 3; i++) {
-      rfa.doAppend("Hello---" + i);
-      tbrp.setCurrentTime(addTime(tbrp.getCurrentTime(), 500));
+      rfa1.doAppend("Hello---" + i);
+      tbrp1.setCurrentTime(addTime(tbrp1.getCurrentTime(), 500));
     }
 
-    tbrp.future.get(2000, TimeUnit.MILLISECONDS);
+    tbrp1.future.get(2000, TimeUnit.MILLISECONDS);
 
     for (int i = 0; i < 2; i++) {
       assertTrue(Compare.gzCompare(filenames[i], Constants.TEST_DIR_PREFIX
           + "witness/rolling/tbr-test3." + i + ".gz"));
     }
 
-    assertTrue(Compare.compare(filenames[3], Constants.TEST_DIR_PREFIX
+    assertTrue(Compare.compare(filenames[2], Constants.TEST_DIR_PREFIX
         + "witness/rolling/tbr-test3.2"));
   }
 
   /**
    * Without compression, file option set, with stop/restart
    */
+  @Test
   public void test4() throws Exception {
-    Calendar cal = Calendar.getInstance();
-    cal.set(Calendar.MILLISECOND, 0);
-    long currentTime = cal.getTimeInMillis();
+    initRFA(rfa1, Constants.OUTPUT_DIR_PREFIX + "test4.log");
+    initTRBP(rfa1, tbrp1, Constants.OUTPUT_DIR_PREFIX + "test4-%d{"
+        + DATE_PATTERN + "}", currentTime);
 
-    RollingFileAppender<Object> rfa1 = new RollingFileAppender<Object>();
-    rfa1.setContext(context);
-    rfa1.setLayout(layout);
-    rfa1.setFile(Constants.OUTPUT_DIR_PREFIX + "test4.log");
-
-    TimeBasedRollingPolicy tbrp1 = new TimeBasedRollingPolicy();
-    tbrp1.setContext(context);
-    // tbrp1.setActiveFileName(Constants.TEST_DIR_PREFIX + "output/test4.log");
-    tbrp1.setFileNamePattern(Constants.OUTPUT_DIR_PREFIX + "test4-%d{"
-        + DATE_PATTERN + "}");
-    tbrp1.setParent(rfa1);
-    tbrp1.setCurrentTime(currentTime);
-    tbrp1.start();
-    rfa1.setRollingPolicy(tbrp1);
-    rfa1.start();
-
-    SimpleDateFormat sdf = new SimpleDateFormat(DATE_PATTERN);
-    String[] filenames = new String[3];
-
-    for (int i = 0; i < 2; i++) {
-      filenames[i] = Constants.OUTPUT_DIR_PREFIX + "test4-"
-          + sdf.format(cal.getTime());
-      cal.add(Calendar.SECOND, 1);
-    }
-    filenames[2] = Constants.OUTPUT_DIR_PREFIX + "test4.log";
+    String[] filenames = computeFilenames("test4-", false, "test4.log");
 
     // System.out.println("Waiting until next second and 100 millis.");
     tbrp1.setCurrentTime(addTime(currentTime, 1100));
@@ -298,21 +255,9 @@
 
     rfa1.stop();
 
-    RollingFileAppender<Object> rfa2 = new RollingFileAppender<Object>();
-    rfa2.setContext(context);
-    rfa2.setLayout(layout);
-    rfa2.setFile(Constants.OUTPUT_DIR_PREFIX + "test4.log");
-
-    TimeBasedRollingPolicy tbrp2 = new TimeBasedRollingPolicy();
-    tbrp2.setContext(context);
-    tbrp2.setFileNamePattern(Constants.OUTPUT_DIR_PREFIX + "test4-%d{"
-        + DATE_PATTERN + "}");
-    // tbrp2.setActiveFileName(Constants.TEST_DIR_PREFIX + "output/test4.log");
-    tbrp2.setParent(rfa2);
-    tbrp2.setCurrentTime(tbrp1.getCurrentTime());
-    tbrp2.start();
-    rfa2.setRollingPolicy(tbrp2);
-    rfa2.start();
+    initRFA(rfa2, Constants.OUTPUT_DIR_PREFIX + "test4.log");
+    initTRBP(rfa2, tbrp2, Constants.OUTPUT_DIR_PREFIX + "test4-%d{"
+        + DATE_PATTERN + "}", tbrp1.getCurrentTime());
 
     for (int i = 0; i <= 2; i++) {
       rfa2.doAppend("Hello---" + i);
@@ -328,45 +273,19 @@
   /**
    * No compression, file option set, without stop/restart
    */
+  @Test
   public void test5() throws Exception {
-    Calendar cal = Calendar.getInstance();
-    cal.set(Calendar.MILLISECOND, 0);
-    long currentTime = cal.getTimeInMillis();
+    initRFA(rfa1, Constants.OUTPUT_DIR_PREFIX + "test5.log");
+    initTRBP(rfa1, tbrp1, Constants.OUTPUT_DIR_PREFIX + "test5-%d{"
+        + DATE_PATTERN + "}", currentTime);
 
-    RollingFileAppender<Object> rfa = new RollingFileAppender<Object>();
-    rfa.setContext(context);
-    rfa.setLayout(layout);
-    rfa.setFile(Constants.OUTPUT_DIR_PREFIX + "test5.log");
+    String[] filenames = computeFilenames("test5-", false, "test5.log");
 
-    TimeBasedRollingPolicy tbrp = new TimeBasedRollingPolicy();
-    tbrp.setContext(context);
-    tbrp.setFileNamePattern(Constants.OUTPUT_DIR_PREFIX + "test5-%d{"
-        + DATE_PATTERN + "}");
-    // tbrp.setActiveFileName(Constants.TEST_DIR_PREFIX + "output/test5.log");
-    tbrp.setParent(rfa);
-    tbrp.setCurrentTime(currentTime);
-    tbrp.start();
-    rfa.setRollingPolicy(tbrp);
-    rfa.start();
-
-    SimpleDateFormat sdf = new SimpleDateFormat(DATE_PATTERN);
-    String[] filenames = new String[4];
-
-    for (int i = 0; i < 2; i++) {
-      filenames[i] = Constants.OUTPUT_DIR_PREFIX + "test5-"
-          + sdf.format(cal.getTime());
-      cal.add(Calendar.SECOND, 1);
-    }
-
-    filenames[2] = Constants.OUTPUT_DIR_PREFIX + "test5.log";
-
-    // System.out.println("Waiting until next second and 100 millis.");
-    tbrp.setCurrentTime(addTime(currentTime, 1100));
-    // System.out.println("Done waiting.");
+    tbrp1.setCurrentTime(addTime(currentTime, 1100));
 
     for (int i = 0; i < 3; i++) {
-      rfa.doAppend("Hello---" + i);
-      tbrp.setCurrentTime(addTime(tbrp.getCurrentTime(), 500));
+      rfa1.doAppend("Hello---" + i);
+      tbrp1.setCurrentTime(addTime(tbrp1.getCurrentTime(), 500));
     }
 
     for (int i = 0; i < 3; i++) {
@@ -378,54 +297,24 @@
   /**
    * With compression, file option set, no stop/restart,
    */
+  @Test
   public void test6() throws Exception {
-    Calendar cal = Calendar.getInstance();
-    cal.set(Calendar.MILLISECOND, 0);
-    long currentTime = cal.getTimeInMillis();
+    initRFA(rfa1, Constants.OUTPUT_DIR_PREFIX + "test6.log");
+    initTRBP(rfa1, tbrp1, Constants.OUTPUT_DIR_PREFIX + "test6-%d{"
+        + DATE_PATTERN + "}.gz", currentTime);
 
-    RollingFileAppender<Object> rfa = new RollingFileAppender<Object>();
-    rfa.setContext(context);
-    rfa.setLayout(layout);
-    rfa.setFile(Constants.OUTPUT_DIR_PREFIX+ "test6.log");
+    String[] filenames = computeFilenames("test6-", true, "test6.log");
 
-    TimeBasedRollingPolicy tbrp = new TimeBasedRollingPolicy();
-    tbrp.setContext(context);
-    tbrp.setFileNamePattern(Constants.OUTPUT_DIR_PREFIX + "test6-%d{"
-        + DATE_PATTERN + "}.gz");
-    // tbrp.setActiveFileName(Constants.TEST_DIR_PREFIX + "output/test6.log");
-    tbrp.setParent(rfa);
-    tbrp.setCurrentTime(currentTime);
-    tbrp.start();
-    rfa.setRollingPolicy(tbrp);
-    rfa.start();
-
-    SimpleDateFormat sdf = new SimpleDateFormat(DATE_PATTERN);
-    String[] filenames = new String[4];
-
-    for (int i = 0; i < 2; i++) {
-      filenames[i] = Constants.OUTPUT_DIR_PREFIX + "test6-"
-          + sdf.format(cal.getTime()) + ".gz";
-      cal.add(Calendar.SECOND, 1);
-    }
-
-    filenames[2] = Constants.OUTPUT_DIR_PREFIX + "test6.log";
-
-    // System.out.println("Waiting until next second and 100 millis.");
-    tbrp.setCurrentTime(addTime(currentTime, 1100));
-    // System.out.println("Done waiting.");
+    tbrp1.setCurrentTime(addTime(currentTime, 1100));
 
     for (int i = 0; i < 3; i++) {
-      rfa.doAppend("Hello---" + i);
-      tbrp.setCurrentTime(addTime(tbrp.getCurrentTime(), 500));
+      rfa1.doAppend("Hello---" + i);
+      tbrp1.setCurrentTime(addTime(tbrp1.getCurrentTime(), 500));
     }
 
-    // for (int i = 0; i < 4; i++) {
-    // System.out.println(i + " expected filename [" + filenames[i] + "].");
-    // }
-
     // wait for the compression task to finish
-    tbrp.future.get(1000, TimeUnit.MILLISECONDS);
-     
+    tbrp1.future.get(1000, TimeUnit.MILLISECONDS);
+
     for (int i = 0; i < 2; i++) {
       assertTrue(Compare.gzCompare(filenames[i], Constants.TEST_DIR_PREFIX
           + "witness/rolling/tbr-test6." + i + ".gz"));
@@ -435,12 +324,6 @@
         + "witness/rolling/tbr-test6.2"));
   }
 
-  public static Test suite() {
-    TestSuite suite = new TestSuite();
-    suite.addTestSuite(TimeBasedRollingTest.class);
-    return suite;
-  }
-
   static long addTime(long currentTime, long timeToWait) {
     return currentTime + timeToWait;
   }


More information about the logback-dev mailing list