You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by bo...@apache.org on 2014/07/19 15:29:35 UTC

svn commit: r1611914 - in /commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/compressors/deflate: ./ DeflateCompressorInputStreamTest.java DeflateCompressorOutputStreamTest.java DeflateParametersTest.java

Author: bodewig
Date: Sat Jul 19 13:29:35 2014
New Revision: 1611914

URL: http://svn.apache.org/r1611914
Log:
COMPRESS-263 some more tests to increas coverage

Added:
    commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/compressors/deflate/
    commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorInputStreamTest.java   (with props)
    commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorOutputStreamTest.java   (with props)
    commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/compressors/deflate/DeflateParametersTest.java   (with props)

Added: commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorInputStreamTest.java
URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorInputStreamTest.java?rev=1611914&view=auto
==============================================================================
--- commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorInputStreamTest.java (added)
+++ commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorInputStreamTest.java Sat Jul 19 13:29:35 2014
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.commons.compress.compressors.deflate;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.apache.commons.compress.AbstractTestCase;
+import org.apache.commons.compress.utils.IOUtils;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class DeflateCompressorInputStreamTest {
+
+    @Test
+    public void availableShouldReturnNonZero() throws IOException {
+        final File input = AbstractTestCase.getFile("bla.tar.deflatez");
+        final InputStream is = new FileInputStream(input);
+        try {
+            DeflateCompressorInputStream in =
+                new DeflateCompressorInputStream(is);
+            Assert.assertTrue(in.available() > 0);
+            in.close();
+        } finally {
+            is.close();
+        }
+    }
+
+    @Test
+    public void shouldBeAbleToSkipAByte() throws IOException {
+        final File input = AbstractTestCase.getFile("bla.tar.deflatez");
+        final InputStream is = new FileInputStream(input);
+        try {
+            DeflateCompressorInputStream in =
+                new DeflateCompressorInputStream(is);
+            Assert.assertEquals(1, in.skip(1));
+            in.close();
+        } finally {
+            is.close();
+        }
+    }
+
+    @Test
+    public void singleByteReadWorksAsExpected() throws IOException {
+        final File input = AbstractTestCase.getFile("bla.tar.deflatez");
+        final InputStream is = new FileInputStream(input);
+        try {
+            DeflateCompressorInputStream in =
+                new DeflateCompressorInputStream(is);
+            // tar header starts with filename "test1.xml"
+            Assert.assertEquals('t', in.read());
+            in.close();
+        } finally {
+            is.close();
+        }
+    }
+
+    @Test
+    public void singleByteReadReturnsMinusOneAtEof() throws IOException {
+        final File input = AbstractTestCase.getFile("bla.tar.deflatez");
+        final InputStream is = new FileInputStream(input);
+        try {
+            DeflateCompressorInputStream in =
+                new DeflateCompressorInputStream(is);
+            // tar header starts with filename "test1.xml"
+            IOUtils.toByteArray(in);
+            Assert.assertEquals(-1, in.read());
+            in.close();
+        } finally {
+            is.close();
+        }
+    }
+
+}

Propchange: commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorInputStreamTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorOutputStreamTest.java
URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorOutputStreamTest.java?rev=1611914&view=auto
==============================================================================
--- commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorOutputStreamTest.java (added)
+++ commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorOutputStreamTest.java Sat Jul 19 13:29:35 2014
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.commons.compress.compressors.deflate;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
+public class DeflateCompressorOutputStreamTest {
+
+    @Test
+    public void canReadASingleByteFlushAndFinish() throws IOException {
+        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+        DeflateCompressorOutputStream cos = new DeflateCompressorOutputStream(bos);
+        cos.write(99);
+        cos.flush();
+        cos.finish();
+        Assert.assertTrue(bos.toByteArray().length > 0);
+    }
+
+}

Propchange: commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorOutputStreamTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/compressors/deflate/DeflateParametersTest.java
URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/compressors/deflate/DeflateParametersTest.java?rev=1611914&view=auto
==============================================================================
--- commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/compressors/deflate/DeflateParametersTest.java (added)
+++ commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/compressors/deflate/DeflateParametersTest.java Sat Jul 19 13:29:35 2014
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.commons.compress.compressors.deflate;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class DeflateParametersTest {
+
+    @Test
+    public void shouldBeAbleToSetCompressionLevel() {
+        DeflateParameters p = new DeflateParameters();
+        p.setCompressionLevel(5);
+        Assert.assertEquals(5, p.getCompressionLevel());
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void shouldNotBeAbleToSetCompressionLevelToANegativeValue() {
+        DeflateParameters p = new DeflateParameters();
+        p.setCompressionLevel(-2);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void shouldNotBeAbleToSetCompressionLevelToADoubleDigitValue() {
+        DeflateParameters p = new DeflateParameters();
+        p.setCompressionLevel(12);
+    }
+}

Propchange: commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/compressors/deflate/DeflateParametersTest.java
------------------------------------------------------------------------------
    svn:eol-style = native