You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flume.apache.org by es...@apache.org on 2011/08/23 00:04:04 UTC

svn commit: r1160467 - in /incubator/flume/branches/flume-728/flume-ng-core/src/test/java/org/apache/flume/durability: ./ TestFileBasedWAL.java TestFileBasedWALManager.java TestFileBasedWALWriter.java

Author: esammer
Date: Mon Aug 22 22:04:04 2011
New Revision: 1160467

URL: http://svn.apache.org/viewvc?rev=1160467&view=rev
Log:
- Added unit tests for FileBaseWAL*.

Added:
    incubator/flume/branches/flume-728/flume-ng-core/src/test/java/org/apache/flume/durability/
    incubator/flume/branches/flume-728/flume-ng-core/src/test/java/org/apache/flume/durability/TestFileBasedWAL.java
    incubator/flume/branches/flume-728/flume-ng-core/src/test/java/org/apache/flume/durability/TestFileBasedWALManager.java
    incubator/flume/branches/flume-728/flume-ng-core/src/test/java/org/apache/flume/durability/TestFileBasedWALWriter.java

Added: incubator/flume/branches/flume-728/flume-ng-core/src/test/java/org/apache/flume/durability/TestFileBasedWAL.java
URL: http://svn.apache.org/viewvc/incubator/flume/branches/flume-728/flume-ng-core/src/test/java/org/apache/flume/durability/TestFileBasedWAL.java?rev=1160467&view=auto
==============================================================================
--- incubator/flume/branches/flume-728/flume-ng-core/src/test/java/org/apache/flume/durability/TestFileBasedWAL.java (added)
+++ incubator/flume/branches/flume-728/flume-ng-core/src/test/java/org/apache/flume/durability/TestFileBasedWAL.java Mon Aug 22 22:04:04 2011
@@ -0,0 +1,82 @@
+package org.apache.flume.durability;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+public class TestFileBasedWAL {
+
+  private File testBaseDirectory;
+  private FileBasedWAL wal;
+
+  @Before
+  public void setUp() {
+    testBaseDirectory = new File("/tmp/flume-fbw-tests/"
+        + System.currentTimeMillis() + "-" + Thread.currentThread().getId());
+
+    wal = new FileBasedWAL(testBaseDirectory);
+  }
+
+  @After
+  public void tearDown() throws IOException {
+    /*
+     * Google's Files.deleteRecursively(File) bails out if anything in the path
+     * is a symlink. On MOSX, /tmp is a symlink to /private/tmp so it breaks.
+     */
+    if (testBaseDirectory.exists()) {
+      for (File file : testBaseDirectory.listFiles()) {
+        file.delete();
+      }
+
+      testBaseDirectory.delete();
+    }
+
+    /*
+     * Attempt to delete the parent, but be happy with failure. This should
+     * allow parallel tests to occur.
+     */
+
+    testBaseDirectory.getParentFile().delete();
+  }
+
+  @Test
+  public void testInitialize() throws IOException {
+    testBaseDirectory.mkdirs();
+
+    wal.initialize();
+
+    Assert.assertTrue("WAL test directory doesn't exist:" + testBaseDirectory,
+        testBaseDirectory.exists());
+
+    Assert.assertTrue("Directory doesn't exist:" + wal.getOpenDirectory(), wal
+        .getOpenDirectory().exists());
+    Assert.assertTrue("Directory doesn't exist:" + wal.getPendingDirectory(),
+        wal.getPendingDirectory().exists());
+    Assert.assertTrue("Directory doesn't exist:" + wal.getSentDirectory(), wal
+        .getSentDirectory().exists());
+    Assert.assertTrue("Directory doesn't exist:" + wal.getCompleteDirectory(),
+        wal.getCompleteDirectory().exists());
+
+  }
+
+  @Test
+  public void testDirectories() throws IOException {
+    testBaseDirectory.mkdirs();
+
+    wal.initialize();
+
+    Assert.assertEquals(testBaseDirectory, wal.getBaseDirectory());
+    Assert.assertEquals(new File(testBaseDirectory, "open"),
+        wal.getOpenDirectory());
+    Assert.assertEquals(new File(testBaseDirectory, "pending"),
+        wal.getPendingDirectory());
+    Assert.assertEquals(new File(testBaseDirectory, "sent"),
+        wal.getSentDirectory());
+    Assert.assertEquals(new File(testBaseDirectory, "complete"),
+        wal.getCompleteDirectory());
+  }
+}

Added: incubator/flume/branches/flume-728/flume-ng-core/src/test/java/org/apache/flume/durability/TestFileBasedWALManager.java
URL: http://svn.apache.org/viewvc/incubator/flume/branches/flume-728/flume-ng-core/src/test/java/org/apache/flume/durability/TestFileBasedWALManager.java?rev=1160467&view=auto
==============================================================================
--- incubator/flume/branches/flume-728/flume-ng-core/src/test/java/org/apache/flume/durability/TestFileBasedWALManager.java (added)
+++ incubator/flume/branches/flume-728/flume-ng-core/src/test/java/org/apache/flume/durability/TestFileBasedWALManager.java Mon Aug 22 22:04:04 2011
@@ -0,0 +1,47 @@
+package org.apache.flume.durability;
+
+import java.io.File;
+
+import junit.framework.Assert;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class TestFileBasedWALManager {
+
+  private File testDirectory;
+  private FileBasedWALManager walManager;
+
+  @Before
+  public void setUp() {
+    testDirectory = new File("/tmp/flume-fbwm-tests", String.valueOf(System
+        .currentTimeMillis()));
+    walManager = new FileBasedWALManager();
+
+    testDirectory.mkdirs();
+
+    walManager.setDirectory(testDirectory);
+  }
+
+  @After
+  public void tearDown() {
+    if (testDirectory.exists()) {
+      for (File entry : testDirectory.listFiles()) {
+        entry.delete();
+      }
+
+      testDirectory.delete();
+    }
+  }
+
+  @Test
+  public void testGetWAL() {
+    FileBasedWAL wal = walManager.getWAL("test1");
+
+    Assert.assertNotNull(wal);
+    Assert.assertEquals(new File(testDirectory, "test1"),
+        wal.getBaseDirectory());
+  }
+
+}

Added: incubator/flume/branches/flume-728/flume-ng-core/src/test/java/org/apache/flume/durability/TestFileBasedWALWriter.java
URL: http://svn.apache.org/viewvc/incubator/flume/branches/flume-728/flume-ng-core/src/test/java/org/apache/flume/durability/TestFileBasedWALWriter.java?rev=1160467&view=auto
==============================================================================
--- incubator/flume/branches/flume-728/flume-ng-core/src/test/java/org/apache/flume/durability/TestFileBasedWALWriter.java (added)
+++ incubator/flume/branches/flume-728/flume-ng-core/src/test/java/org/apache/flume/durability/TestFileBasedWALWriter.java Mon Aug 22 22:04:04 2011
@@ -0,0 +1,60 @@
+package org.apache.flume.durability;
+
+import java.io.File;
+import java.io.IOException;
+
+import junit.framework.Assert;
+
+import org.apache.flume.Event;
+import org.apache.flume.durability.FileBasedWALManager.FileBasedWALWriter;
+import org.apache.flume.event.SimpleEvent;
+import org.apache.flume.formatter.output.TextDelimitedOutputFormatter;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class TestFileBasedWALWriter {
+
+  private File testDirectory;
+  private FileBasedWALWriter writer;
+
+  @Before
+  public void setUp() {
+    testDirectory = new File("/tmp/flume-fbww-tests", String.valueOf(System
+        .currentTimeMillis()));
+    writer = new FileBasedWALWriter();
+  }
+
+  @After
+  public void tearDown() {
+    if (testDirectory.exists()) {
+      for (File entry : testDirectory.listFiles()) {
+        entry.delete();
+      }
+
+      testDirectory.delete();
+    }
+
+    testDirectory.getParentFile().delete();
+  }
+
+  @Test
+  public void testWrite() throws IOException {
+    testDirectory.mkdirs();
+
+    Event event = new SimpleEvent();
+
+    event.setBody("Test event".getBytes());
+
+    writer.setFormatter(new TextDelimitedOutputFormatter());
+    writer.setFile(new File(testDirectory, "test.wal"));
+
+    writer.open();
+    writer.write(event);
+    writer.close();
+
+    Assert.assertTrue(writer.getFile().exists());
+    Assert.assertTrue(writer.getFile().length() > 0);
+  }
+
+}