Author: bodewig
Date: Wed Aug 17 03:45:08 2011
New Revision: 1158497

URL: http://svn.apache.org/viewvc?rev=1158497&view=rev
Log:
(mostly failing) testcase for dump stream.  COMPRESS-132

Added:
    
commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/DumpTestCase.java
      - copied, changed from r1158491, 
commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/JarTestCase.java

Copied: 
commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/DumpTestCase.java
 (from r1158491, 
commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/JarTestCase.java)
URL: 
http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/DumpTestCase.java?p2=commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/DumpTestCase.java&p1=commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/JarTestCase.java&r1=1158491&r2=1158497&rev=1158497&view=diff
==============================================================================
--- 
commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/JarTestCase.java
 (original)
+++ 
commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/DumpTestCase.java
 Wed Aug 17 03:45:08 2011
@@ -18,92 +18,102 @@
  */
 package org.apache.commons.compress.archivers;
 
+import java.io.BufferedInputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
-
-import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
-import org.apache.commons.compress.utils.IOUtils;
+import java.util.ArrayList;
 
 import org.apache.commons.compress.AbstractTestCase;
+import org.apache.commons.compress.archivers.dump.DumpArchiveInputStream;
+import org.apache.commons.compress.utils.IOUtils;
 
-public final class JarTestCase extends AbstractTestCase {
-    public void testJarArchiveCreation() throws Exception {
-        final File output = new File(dir, "bla.jar");
-
-        final File file1 = getFile("test1.xml");
-        final File file2 = getFile("test2.xml");
-
-        final OutputStream out = new FileOutputStream(output);
-
-        final ArchiveOutputStream os = new 
ArchiveStreamFactory().createArchiveOutputStream("jar", out);
-
-        os.putArchiveEntry(new ZipArchiveEntry("testdata/test1.xml"));
-        IOUtils.copy(new FileInputStream(file1), os);
-        os.closeArchiveEntry();
-
-        os.putArchiveEntry(new ZipArchiveEntry("testdata/test2.xml"));
-        IOUtils.copy(new FileInputStream(file2), os);
-        os.closeArchiveEntry();
+public final class DumpTestCase extends AbstractTestCase {
 
-        os.close();
+    public void testDumpUnarchiveAll() throws Exception {
+        unarchiveAll(getFile("bla.dump"));
     }
 
+    public void testCompressedDumpUnarchiveAll() throws Exception {
+        unarchiveAll(getFile("bla.z.dump"));
+    }
 
-    public void testJarUnarchive() throws Exception {
-        final File input = getFile("bla.jar");
+    private void unarchiveAll(final File input) throws Exception {
         final InputStream is = new FileInputStream(input);
-        final ArchiveInputStream in = new 
ArchiveStreamFactory().createArchiveInputStream("jar", is);
-
-        ZipArchiveEntry entry = (ZipArchiveEntry)in.getNextEntry();
-        File o = new File(dir, entry.getName());
-        o.getParentFile().mkdirs();
-        OutputStream out = new FileOutputStream(o);
-        IOUtils.copy(in, out);
-        out.close();
-
-        entry = (ZipArchiveEntry)in.getNextEntry();
-        o = new File(dir, entry.getName());
-        o.getParentFile().mkdirs();
-        out = new FileOutputStream(o);
-        IOUtils.copy(in, out);
-        out.close();
-
-        entry = (ZipArchiveEntry)in.getNextEntry();
-        o = new File(dir, entry.getName());
-        o.getParentFile().mkdirs();
-        out = new FileOutputStream(o);
-        IOUtils.copy(in, out);
-        out.close();
+        ArchiveInputStream in = null;
+        OutputStream out = null;
+        try {
+            in = new ArchiveStreamFactory()
+                .createArchiveInputStream("dump", is);
+
+            ArchiveEntry entry = in.getNextEntry();
+            while (entry != null) {
+                File archiveEntry = new File(dir, entry.getName());
+                archiveEntry.getParentFile().mkdirs();
+                if (entry.isDirectory()) {
+                    archiveEntry.mkdir();
+                    entry = in.getNextEntry();
+                    continue;
+                }
+                out = new FileOutputStream(archiveEntry);
+                IOUtils.copy(in, out);
+                out.close();
+                out = null;
+                entry = in.getNextEntry();
+            }
+        } finally {
+            if (out != null) {
+                out.close();
+            }
+            if (in != null) {
+                in.close();
+            }
+            is.close();
+        }
+    }
 
-        in.close();
-        is.close();
+    public void YtestArchiveDetection() throws Exception {
+        archiveDetection(getFile("bla.dump"));
     }
 
-    public void testJarUnarchiveAll() throws Exception {
-        final File input = getFile("bla.jar");
-        final InputStream is = new FileInputStream(input);
-        final ArchiveInputStream in = new 
ArchiveStreamFactory().createArchiveInputStream("jar", is);
+    public void YtestCompressedArchiveDetection() throws Exception {
+        archiveDetection(getFile("bla.z.dump"));
+    }
 
-        ArchiveEntry entry = in.getNextEntry();
-        while (entry != null) {
-            File archiveEntry = new File(dir, entry.getName());
-            archiveEntry.getParentFile().mkdirs();
-            if(entry.isDirectory()){
-                archiveEntry.mkdir();
-                entry = in.getNextEntry();
-                continue;
-            }
-            OutputStream out = new FileOutputStream(archiveEntry);
-            IOUtils.copy(in, out);
-            out.close();
-            entry = in.getNextEntry();
+    private void archiveDetection(final File f) throws Exception {
+        final InputStream is = new FileInputStream(f);
+        try {
+            assertEquals(DumpArchiveInputStream.class,
+                         new ArchiveStreamFactory()
+                         .createArchiveInputStream(new BufferedInputStream(is))
+                         .getClass());
+        } finally {
+            is.close();
         }
+    }
+
+    public void XtestCheckArchive() throws Exception {
+        checkDumpArchive(getFile("bla.dump"));
+    }
 
-        in.close();
-        is.close();
+    public void XtestCheckCompressedArchive() throws Exception {
+        checkDumpArchive(getFile("bla.z.dump"));
     }
 
+    private void checkDumpArchive(final File f) throws Exception {
+        ArrayList<String> expected = new ArrayList<String>();
+        expected.add(".");
+        expected.add("./lost+found");
+        expected.add("./test1.xml");
+        expected.add("./test2.xml");
+        final InputStream is = new FileInputStream(f);
+        try {
+            checkArchiveContent(new DumpArchiveInputStream(is),
+                                expected);
+        } finally {
+            is.close();
+        }
+    }
 }


Reply via email to