Tests for [COMPRESS-359] Pack200 is broken.
diff --git a/src/test/java/org/apache/commons/compress/compressors/CompressorStreamFactoryRoundtripTest.java b/src/test/java/org/apache/commons/compress/compressors/CompressorStreamFactoryRoundtripTest.java
new file mode 100644
index 0000000..3ecb4c5
--- /dev/null
+++ b/src/test/java/org/apache/commons/compress/compressors/CompressorStreamFactoryRoundtripTest.java
@@ -0,0 +1,57 @@
+package org.apache.commons.compress.compressors;

+

+import java.io.ByteArrayInputStream;

+import java.io.ByteArrayOutputStream;

+

+import org.apache.commons.compress.utils.IOUtils;

+import org.junit.Assert;

+import org.junit.Test;

+import org.junit.runner.RunWith;

+import org.junit.runners.Parameterized;

+import org.junit.runners.Parameterized.Parameters;

+

+@RunWith(Parameterized.class)

+public class CompressorStreamFactoryRoundtripTest {

+

+    @Parameters(name = "{0}")

+    public static String[] data() {

+        return new String[] { //

+                CompressorStreamFactory.BZIP2, //

+                CompressorStreamFactory.DEFLATE, //

+                CompressorStreamFactory.GZIP, //

+                // CompressorStreamFactory.LZMA, // Not implemented yet

+                // CompressorStreamFactory.PACK200, // Bug

+                // CompressorStreamFactory.SNAPPY_FRAMED, // Not implemented yet

+                // CompressorStreamFactory.SNAPPY_RAW, // Not implemented yet

+                CompressorStreamFactory.XZ, //

+                // CompressorStreamFactory.Z, // Not implemented yet

+        };

+    }

+

+    private final String compressorName;

+

+    public CompressorStreamFactoryRoundtripTest(final String compressorName) {

+        this.compressorName = compressorName;

+    }

+

+    @Test

+    public void testCompressorStreamFactoryRoundtrip() throws Exception {

+        final CompressorStreamFactory factory = new CompressorStreamFactory();

+        final ByteArrayOutputStream compressedOs = new ByteArrayOutputStream();

+        final CompressorOutputStream compressorOutputStream = factory.createCompressorOutputStream(compressorName,

+                compressedOs);

+        final String fixture = "The quick brown fox jumps over the lazy dog";

+        compressorOutputStream.write(fixture.getBytes("UTF-8"));

+        compressorOutputStream.flush();

+        compressorOutputStream.close();

+        final ByteArrayInputStream is = new ByteArrayInputStream(compressedOs.toByteArray());

+        final CompressorInputStream compressorInputStream = factory.createCompressorInputStream(compressorName, is);

+        final ByteArrayOutputStream decompressedOs = new ByteArrayOutputStream();

+        IOUtils.copy(compressorInputStream, decompressedOs);

+        compressorInputStream.close();

+        decompressedOs.flush();

+        decompressedOs.close();

+        Assert.assertEquals(fixture, decompressedOs.toString("UTF-8"));

+    }

+

+}