This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-io.git
The following commit(s) were added to refs/heads/master by this push: new 533944f Clean up tests. Javadocs. 533944f is described below commit 533944f431e31fe281aea99a36404634111adce6 Author: Gary Gregory <gardgreg...@gmail.com> AuthorDate: Fri Apr 5 14:24:47 2019 -0400 Clean up tests. Javadocs. --- src/main/java/org/apache/commons/io/FileUtils.java | 6 - .../apache/commons/io/output/NullOutputStream.java | 2 +- .../commons/io/input/BOMInputStreamTest.java | 551 +++++++++++---------- .../apache/commons/io/input/BoundedReaderTest.java | 191 ++++--- .../io/input/CharSequenceInputStreamTest.java | 19 +- .../commons/io/input/CharSequenceReaderTest.java | 79 +-- .../io/input/ClassLoaderObjectInputStreamTest.java | 86 ++-- .../commons/io/input/ClosedInputStreamTest.java | 6 +- .../commons/io/input/CountingInputStreamTest.java | 156 +++--- 9 files changed, 545 insertions(+), 551 deletions(-) diff --git a/src/main/java/org/apache/commons/io/FileUtils.java b/src/main/java/org/apache/commons/io/FileUtils.java index 2089e67..5a0fb76 100644 --- a/src/main/java/org/apache/commons/io/FileUtils.java +++ b/src/main/java/org/apache/commons/io/FileUtils.java @@ -31,7 +31,6 @@ import java.math.BigInteger; import java.net.URL; import java.net.URLConnection; import java.nio.ByteBuffer; -import java.nio.channels.FileChannel; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -111,11 +110,6 @@ public class FileUtils { public static final BigInteger ONE_MB_BI = ONE_KB_BI.multiply(ONE_KB_BI); /** - * The file copy buffer size (30 MB) - */ - private static final long FILE_COPY_BUFFER_SIZE = ONE_MB * 30; - - /** * The number of bytes in a gigabyte. */ public static final long ONE_GB = ONE_KB * ONE_MB; diff --git a/src/main/java/org/apache/commons/io/output/NullOutputStream.java b/src/main/java/org/apache/commons/io/output/NullOutputStream.java index f412131..90a996a 100644 --- a/src/main/java/org/apache/commons/io/output/NullOutputStream.java +++ b/src/main/java/org/apache/commons/io/output/NullOutputStream.java @@ -24,7 +24,7 @@ import java.io.OutputStream; * <p> * This output stream has no destination (file/socket etc.) and all * bytes written to it are ignored and lost. - *</p> + * </p> * @version $Id$ */ public class NullOutputStream extends OutputStream { diff --git a/src/test/java/org/apache/commons/io/input/BOMInputStreamTest.java b/src/test/java/org/apache/commons/io/input/BOMInputStreamTest.java index 20b7e0d..8a9f4cd 100644 --- a/src/test/java/org/apache/commons/io/input/BOMInputStreamTest.java +++ b/src/test/java/org/apache/commons/io/input/BOMInputStreamTest.java @@ -197,177 +197,177 @@ public class BOMInputStreamTest { @Test public void testAvailableWithBOM() throws Exception { final byte[] data = new byte[] { 'A', 'B', 'C', 'D' }; - final InputStream in = new BOMInputStream(createUtf8DataStream(data, true)); - assertEquals(7, in.available()); - in.close(); + try (final InputStream in = new BOMInputStream(createUtf8DataStream(data, true))) { + assertEquals(7, in.available()); + } } @Test public void testAvailableWithoutBOM() throws Exception { final byte[] data = new byte[] { 'A', 'B', 'C', 'D' }; - final InputStream in = new BOMInputStream(createUtf8DataStream(data, false)); - assertEquals(4, in.available()); - in.close(); + try (final InputStream in = new BOMInputStream(createUtf8DataStream(data, false))) { + assertEquals(4, in.available()); + } } @Test // this is here for coverage public void testClose() throws Exception { - final ExpectCloseInputStream del = new ExpectCloseInputStream(); - final InputStream in = new BOMInputStream(del); - - in.close(); - del.assertCloseCalled(); - del.close(); + try (final ExpectCloseInputStream del = new ExpectCloseInputStream()) { + try (final InputStream in = new BOMInputStream(del)) { + // nothing + } + del.assertCloseCalled(); + } } @Test public void testEmptyBufferWithBOM() throws Exception { final byte[] data = new byte[] {}; - final InputStream in = new BOMInputStream(createUtf8DataStream(data, true)); - final byte[] buf = new byte[1024]; - assertEquals(-1, in.read(buf)); - in.close(); + try (final InputStream in = new BOMInputStream(createUtf8DataStream(data, true))) { + final byte[] buf = new byte[1024]; + assertEquals(-1, in.read(buf)); + } } @Test public void testEmptyBufferWithoutBOM() throws Exception { final byte[] data = new byte[] {}; - final InputStream in = new BOMInputStream(createUtf8DataStream(data, false)); - final byte[] buf = new byte[1024]; - assertEquals(-1, in.read(buf)); - in.close(); + try (final InputStream in = new BOMInputStream(createUtf8DataStream(data, false))) { + final byte[] buf = new byte[1024]; + assertEquals(-1, in.read(buf)); + } } @Test public void testGetBOMFirstThenRead() throws Exception { final byte[] data = new byte[] { 'A', 'B', 'C' }; - final BOMInputStream in = new BOMInputStream(createUtf8DataStream(data, true)); - assertEquals("getBOM", ByteOrderMark.UTF_8, in.getBOM()); - assertTrue("hasBOM()", in.hasBOM()); - assertTrue("hasBOM(UTF-8)", in.hasBOM(ByteOrderMark.UTF_8)); - assertEquals('A', in.read()); - assertEquals('B', in.read()); - assertEquals('C', in.read()); - assertEquals(-1, in.read()); - in.close(); + try (final BOMInputStream in = new BOMInputStream(createUtf8DataStream(data, true))) { + assertEquals("getBOM", ByteOrderMark.UTF_8, in.getBOM()); + assertTrue("hasBOM()", in.hasBOM()); + assertTrue("hasBOM(UTF-8)", in.hasBOM(ByteOrderMark.UTF_8)); + assertEquals('A', in.read()); + assertEquals('B', in.read()); + assertEquals('C', in.read()); + assertEquals(-1, in.read()); + } } @Test public void testGetBOMFirstThenReadInclude() throws Exception { final byte[] data = new byte[] { 'A', 'B', 'C' }; - final BOMInputStream in = new BOMInputStream(createUtf8DataStream(data, true), true); - assertTrue("hasBOM()", in.hasBOM()); - assertTrue("hasBOM(UTF-8)", in.hasBOM(ByteOrderMark.UTF_8)); - assertEquals("getBOM", ByteOrderMark.UTF_8, in.getBOM()); - assertEquals(0xEF, in.read()); - assertEquals(0xBB, in.read()); - assertEquals(0xBF, in.read()); - assertEquals('A', in.read()); - assertEquals('B', in.read()); - assertEquals('C', in.read()); - assertEquals(-1, in.read()); - in.close(); + try (final BOMInputStream in = new BOMInputStream(createUtf8DataStream(data, true), true)) { + assertTrue("hasBOM()", in.hasBOM()); + assertTrue("hasBOM(UTF-8)", in.hasBOM(ByteOrderMark.UTF_8)); + assertEquals("getBOM", ByteOrderMark.UTF_8, in.getBOM()); + assertEquals(0xEF, in.read()); + assertEquals(0xBB, in.read()); + assertEquals(0xBF, in.read()); + assertEquals('A', in.read()); + assertEquals('B', in.read()); + assertEquals('C', in.read()); + assertEquals(-1, in.read()); + } } @Test public void testLargeBufferWithBOM() throws Exception { final byte[] data = new byte[] { 'A', 'B', 'C' }; - final InputStream in = new BOMInputStream(createUtf8DataStream(data, true)); - final byte[] buf = new byte[1024]; - assertData(data, buf, in.read(buf)); - in.close(); + try (final InputStream in = new BOMInputStream(createUtf8DataStream(data, true))) { + final byte[] buf = new byte[1024]; + assertData(data, buf, in.read(buf)); + } } @Test public void testLargeBufferWithoutBOM() throws Exception { final byte[] data = new byte[] { 'A', 'B', 'C' }; - final InputStream in = new BOMInputStream(createUtf8DataStream(data, false)); - final byte[] buf = new byte[1024]; - assertData(data, buf, in.read(buf)); - in.close(); + try (final InputStream in = new BOMInputStream(createUtf8DataStream(data, false))) { + final byte[] buf = new byte[1024]; + assertData(data, buf, in.read(buf)); + } } @Test public void testLeadingNonBOMBufferedRead() throws Exception { final byte[] data = new byte[] { (byte) 0xEF, (byte) 0xAB, (byte) 0xCD }; - final InputStream in = new BOMInputStream(createUtf8DataStream(data, false)); - final byte[] buf = new byte[1024]; - assertData(data, buf, in.read(buf)); - in.close(); + try (final InputStream in = new BOMInputStream(createUtf8DataStream(data, false))) { + final byte[] buf = new byte[1024]; + assertData(data, buf, in.read(buf)); + } } @Test public void testLeadingNonBOMSingleRead() throws Exception { final byte[] data = new byte[] { (byte) 0xEF, (byte) 0xAB, (byte) 0xCD }; - final InputStream in = new BOMInputStream(createUtf8DataStream(data, false)); - assertEquals(0xEF, in.read()); - assertEquals(0xAB, in.read()); - assertEquals(0xCD, in.read()); - assertEquals(-1, in.read()); - in.close(); + try (final InputStream in = new BOMInputStream(createUtf8DataStream(data, false))) { + assertEquals(0xEF, in.read()); + assertEquals(0xAB, in.read()); + assertEquals(0xCD, in.read()); + assertEquals(-1, in.read()); + } } @Test public void testMarkResetAfterReadWithBOM() throws Exception { final byte[] data = new byte[] { 'A', 'B', 'C', 'D' }; - final InputStream in = new BOMInputStream(createUtf8DataStream(data, true)); - assertTrue(in.markSupported()); + try (final InputStream in = new BOMInputStream(createUtf8DataStream(data, true))) { + assertTrue(in.markSupported()); - in.read(); - in.mark(10); + in.read(); + in.mark(10); - in.read(); - in.read(); - in.reset(); - assertEquals('B', in.read()); - in.close(); + in.read(); + in.read(); + in.reset(); + assertEquals('B', in.read()); + } } @Test public void testMarkResetAfterReadWithoutBOM() throws Exception { final byte[] data = new byte[] { 'A', 'B', 'C', 'D' }; - final InputStream in = new BOMInputStream(createUtf8DataStream(data, false)); - assertTrue(in.markSupported()); + try (final InputStream in = new BOMInputStream(createUtf8DataStream(data, false))) { + assertTrue(in.markSupported()); - in.read(); - in.mark(10); + in.read(); + in.mark(10); - in.read(); - in.read(); - in.reset(); - assertEquals('B', in.read()); - in.close(); + in.read(); + in.read(); + in.reset(); + assertEquals('B', in.read()); + } } @Test public void testMarkResetBeforeReadWithBOM() throws Exception { final byte[] data = new byte[] { 'A', 'B', 'C', 'D' }; - final InputStream in = new BOMInputStream(createUtf8DataStream(data, true)); - assertTrue(in.markSupported()); + try (final InputStream in = new BOMInputStream(createUtf8DataStream(data, true))) { + assertTrue(in.markSupported()); - in.mark(10); + in.mark(10); - in.read(); - in.read(); - in.reset(); - assertEquals('A', in.read()); - in.close(); + in.read(); + in.read(); + in.reset(); + assertEquals('A', in.read()); + } } @Test public void testMarkResetBeforeReadWithoutBOM() throws Exception { final byte[] data = new byte[] { 'A', 'B', 'C', 'D' }; - final InputStream in = new BOMInputStream(createUtf8DataStream(data, false)); - assertTrue(in.markSupported()); + try (final InputStream in = new BOMInputStream(createUtf8DataStream(data, false))) { + assertTrue(in.markSupported()); - in.mark(10); + in.mark(10); - in.read(); - in.read(); - in.reset(); - assertEquals('A', in.read()); - in.close(); + in.read(); + in.read(); + in.reset(); + assertEquals('A', in.read()); + } } @Test @@ -394,25 +394,25 @@ public class BOMInputStreamTest { @Test public void testReadEmpty() throws Exception { final byte[] data = new byte[] {}; - final BOMInputStream in = new BOMInputStream(createUtf8DataStream(data, false)); - assertEquals(-1, in.read()); - assertFalse("hasBOM()", in.hasBOM()); - assertFalse("hasBOM(UTF-8)", in.hasBOM(ByteOrderMark.UTF_8)); - assertNull("getBOM", in.getBOM()); - in.close(); + try (final BOMInputStream in = new BOMInputStream(createUtf8DataStream(data, false))) { + assertEquals(-1, in.read()); + assertFalse("hasBOM()", in.hasBOM()); + assertFalse("hasBOM(UTF-8)", in.hasBOM(ByteOrderMark.UTF_8)); + assertNull("getBOM", in.getBOM()); + } } @Test public void testReadSmall() throws Exception { final byte[] data = new byte[] { 'A', 'B' }; - final BOMInputStream in = new BOMInputStream(createUtf8DataStream(data, false)); - assertEquals('A', in.read()); - assertEquals('B', in.read()); - assertEquals(-1, in.read()); - assertFalse("hasBOM()", in.hasBOM()); - assertFalse("hasBOM(UTF-8)", in.hasBOM(ByteOrderMark.UTF_8)); - assertNull("getBOM", in.getBOM()); - in.close(); + try (final BOMInputStream in = new BOMInputStream(createUtf8DataStream(data, false))) { + assertEquals('A', in.read()); + assertEquals('B', in.read()); + assertEquals(-1, in.read()); + assertFalse("hasBOM()", in.hasBOM()); + assertFalse("hasBOM(UTF-8)", in.hasBOM(ByteOrderMark.UTF_8)); + assertNull("getBOM", in.getBOM()); + } } @Test @@ -428,174 +428,178 @@ public class BOMInputStreamTest { @Test public void testReadWithBOMInclude() throws Exception { final byte[] data = new byte[] { 'A', 'B', 'C' }; - final BOMInputStream in = new BOMInputStream(createUtf8DataStream(data, true), true); - assertEquals(0xEF, in.read()); - assertEquals(0xBB, in.read()); - assertEquals(0xBF, in.read()); - assertEquals('A', in.read()); - assertEquals('B', in.read()); - assertEquals('C', in.read()); - assertEquals(-1, in.read()); - assertTrue("hasBOM()", in.hasBOM()); - assertTrue("hasBOM(UTF-8)", in.hasBOM(ByteOrderMark.UTF_8)); - assertEquals("getBOM", ByteOrderMark.UTF_8, in.getBOM()); - in.close(); + try (final BOMInputStream in = new BOMInputStream(createUtf8DataStream(data, true), true)) { + assertEquals(0xEF, in.read()); + assertEquals(0xBB, in.read()); + assertEquals(0xBF, in.read()); + assertEquals('A', in.read()); + assertEquals('B', in.read()); + assertEquals('C', in.read()); + assertEquals(-1, in.read()); + assertTrue("hasBOM()", in.hasBOM()); + assertTrue("hasBOM(UTF-8)", in.hasBOM(ByteOrderMark.UTF_8)); + assertEquals("getBOM", ByteOrderMark.UTF_8, in.getBOM()); + } } @Test public void testReadWithBOMUtf16Be() throws Exception { final byte[] data = "ABC".getBytes(StandardCharsets.UTF_16BE); - final BOMInputStream in = new BOMInputStream(createUtf16BeDataStream(data, true), ByteOrderMark.UTF_16BE); - assertEquals(0, in.read()); - assertEquals('A', in.read()); - assertEquals(0, in.read()); - assertEquals('B', in.read()); - assertEquals(0, in.read()); - assertEquals('C', in.read()); - assertEquals(-1, in.read()); - assertTrue("hasBOM()", in.hasBOM()); - assertTrue("hasBOM(UTF-16BE)", in.hasBOM(ByteOrderMark.UTF_16BE)); - assertEquals("getBOM", ByteOrderMark.UTF_16BE, in.getBOM()); - try { - in.hasBOM(ByteOrderMark.UTF_16LE); - fail("Expected IllegalArgumentException"); - } catch (final IllegalArgumentException e) { - // expected - not configured for UTF-16LE + try (final BOMInputStream in = new BOMInputStream(createUtf16BeDataStream(data, true), + ByteOrderMark.UTF_16BE)) { + assertEquals(0, in.read()); + assertEquals('A', in.read()); + assertEquals(0, in.read()); + assertEquals('B', in.read()); + assertEquals(0, in.read()); + assertEquals('C', in.read()); + assertEquals(-1, in.read()); + assertTrue("hasBOM()", in.hasBOM()); + assertTrue("hasBOM(UTF-16BE)", in.hasBOM(ByteOrderMark.UTF_16BE)); + assertEquals("getBOM", ByteOrderMark.UTF_16BE, in.getBOM()); + try { + in.hasBOM(ByteOrderMark.UTF_16LE); + fail("Expected IllegalArgumentException"); + } catch (final IllegalArgumentException e) { + // expected - not configured for UTF-16LE + } } - in.close(); } @Test public void testReadWithBOMUtf16Le() throws Exception { final byte[] data = "ABC".getBytes(StandardCharsets.UTF_16LE); - final BOMInputStream in = new BOMInputStream(createUtf16LeDataStream(data, true), ByteOrderMark.UTF_16LE); - assertEquals('A', in.read()); - assertEquals(0, in.read()); - assertEquals('B', in.read()); - assertEquals(0, in.read()); - assertEquals('C', in.read()); - assertEquals(0, in.read()); - assertEquals(-1, in.read()); - assertTrue("hasBOM()", in.hasBOM()); - assertTrue("hasBOM(UTF-16LE)", in.hasBOM(ByteOrderMark.UTF_16LE)); - assertEquals("getBOM", ByteOrderMark.UTF_16LE, in.getBOM()); - try { - in.hasBOM(ByteOrderMark.UTF_16BE); - fail("Expected IllegalArgumentException"); - } catch (final IllegalArgumentException e) { - // expected - not configured for UTF-16BE + try (final BOMInputStream in = new BOMInputStream(createUtf16LeDataStream(data, true), + ByteOrderMark.UTF_16LE)) { + assertEquals('A', in.read()); + assertEquals(0, in.read()); + assertEquals('B', in.read()); + assertEquals(0, in.read()); + assertEquals('C', in.read()); + assertEquals(0, in.read()); + assertEquals(-1, in.read()); + assertTrue("hasBOM()", in.hasBOM()); + assertTrue("hasBOM(UTF-16LE)", in.hasBOM(ByteOrderMark.UTF_16LE)); + assertEquals("getBOM", ByteOrderMark.UTF_16LE, in.getBOM()); + try { + in.hasBOM(ByteOrderMark.UTF_16BE); + fail("Expected IllegalArgumentException"); + } catch (final IllegalArgumentException e) { + // expected - not configured for UTF-16BE + } } - in.close(); } @Test public void testReadWithBOMUtf32Be() throws Exception { Assume.assumeTrue(Charset.isSupported("UTF_32BE")); final byte[] data = "ABC".getBytes("UTF_32BE"); - final BOMInputStream in = new BOMInputStream(createUtf32BeDataStream(data, true), ByteOrderMark.UTF_32BE); - assertEquals(0, in.read()); - assertEquals(0, in.read()); - assertEquals(0, in.read()); - assertEquals('A', in.read()); - assertEquals(0, in.read()); - assertEquals(0, in.read()); - assertEquals(0, in.read()); - assertEquals('B', in.read()); - assertEquals(0, in.read()); - assertEquals(0, in.read()); - assertEquals(0, in.read()); - assertEquals('C', in.read()); - assertEquals(-1, in.read()); - assertTrue("hasBOM()", in.hasBOM()); - assertTrue("hasBOM(UTF-32BE)", in.hasBOM(ByteOrderMark.UTF_32BE)); - assertEquals("getBOM", ByteOrderMark.UTF_32BE, in.getBOM()); - try { - in.hasBOM(ByteOrderMark.UTF_32LE); - fail("Expected IllegalArgumentException"); - } catch (final IllegalArgumentException e) { - // expected - not configured for UTF-32LE + try (final BOMInputStream in = new BOMInputStream(createUtf32BeDataStream(data, true), + ByteOrderMark.UTF_32BE)) { + assertEquals(0, in.read()); + assertEquals(0, in.read()); + assertEquals(0, in.read()); + assertEquals('A', in.read()); + assertEquals(0, in.read()); + assertEquals(0, in.read()); + assertEquals(0, in.read()); + assertEquals('B', in.read()); + assertEquals(0, in.read()); + assertEquals(0, in.read()); + assertEquals(0, in.read()); + assertEquals('C', in.read()); + assertEquals(-1, in.read()); + assertTrue("hasBOM()", in.hasBOM()); + assertTrue("hasBOM(UTF-32BE)", in.hasBOM(ByteOrderMark.UTF_32BE)); + assertEquals("getBOM", ByteOrderMark.UTF_32BE, in.getBOM()); + try { + in.hasBOM(ByteOrderMark.UTF_32LE); + fail("Expected IllegalArgumentException"); + } catch (final IllegalArgumentException e) { + // expected - not configured for UTF-32LE + } } - in.close(); } @Test public void testReadWithBOMUtf32Le() throws Exception { Assume.assumeTrue(Charset.isSupported("UTF_32LE")); final byte[] data = "ABC".getBytes("UTF_32LE"); - final BOMInputStream in = new BOMInputStream(createUtf32LeDataStream(data, true), ByteOrderMark.UTF_32LE); - assertEquals('A', in.read()); - assertEquals(0, in.read()); - assertEquals(0, in.read()); - assertEquals(0, in.read()); - assertEquals('B', in.read()); - assertEquals(0, in.read()); - assertEquals(0, in.read()); - assertEquals(0, in.read()); - assertEquals('C', in.read()); - assertEquals(0, in.read()); - assertEquals(0, in.read()); - assertEquals(0, in.read()); - assertEquals(-1, in.read()); - assertTrue("hasBOM()", in.hasBOM()); - assertTrue("hasBOM(UTF-32LE)", in.hasBOM(ByteOrderMark.UTF_32LE)); - assertEquals("getBOM", ByteOrderMark.UTF_32LE, in.getBOM()); - try { - in.hasBOM(ByteOrderMark.UTF_32BE); - fail("Expected IllegalArgumentException"); - } catch (final IllegalArgumentException e) { - // expected - not configured for UTF-32BE + try (final BOMInputStream in = new BOMInputStream(createUtf32LeDataStream(data, true), + ByteOrderMark.UTF_32LE)) { + assertEquals('A', in.read()); + assertEquals(0, in.read()); + assertEquals(0, in.read()); + assertEquals(0, in.read()); + assertEquals('B', in.read()); + assertEquals(0, in.read()); + assertEquals(0, in.read()); + assertEquals(0, in.read()); + assertEquals('C', in.read()); + assertEquals(0, in.read()); + assertEquals(0, in.read()); + assertEquals(0, in.read()); + assertEquals(-1, in.read()); + assertTrue("hasBOM()", in.hasBOM()); + assertTrue("hasBOM(UTF-32LE)", in.hasBOM(ByteOrderMark.UTF_32LE)); + assertEquals("getBOM", ByteOrderMark.UTF_32LE, in.getBOM()); + try { + in.hasBOM(ByteOrderMark.UTF_32BE); + fail("Expected IllegalArgumentException"); + } catch (final IllegalArgumentException e) { + // expected - not configured for UTF-32BE + } } - in.close(); } @Test public void testReadWithBOMUtf8() throws Exception { final byte[] data = "ABC".getBytes(StandardCharsets.UTF_8); - final BOMInputStream in = new BOMInputStream(createUtf8DataStream(data, true), ByteOrderMark.UTF_8); - assertEquals('A', in.read()); - assertEquals('B', in.read()); - assertEquals('C', in.read()); - assertEquals(-1, in.read()); - assertTrue("hasBOM()", in.hasBOM()); - assertTrue("hasBOM(UTF-8)", in.hasBOM(ByteOrderMark.UTF_8)); - assertEquals("getBOM", ByteOrderMark.UTF_8, in.getBOM()); - try { - in.hasBOM(ByteOrderMark.UTF_16BE); - fail("Expected IllegalArgumentException"); - } catch (final IllegalArgumentException e) { - // expected - not configured for UTF-16BE + try (final BOMInputStream in = new BOMInputStream(createUtf8DataStream(data, true), ByteOrderMark.UTF_8)) { + assertEquals('A', in.read()); + assertEquals('B', in.read()); + assertEquals('C', in.read()); + assertEquals(-1, in.read()); + assertTrue("hasBOM()", in.hasBOM()); + assertTrue("hasBOM(UTF-8)", in.hasBOM(ByteOrderMark.UTF_8)); + assertEquals("getBOM", ByteOrderMark.UTF_8, in.getBOM()); + try { + in.hasBOM(ByteOrderMark.UTF_16BE); + fail("Expected IllegalArgumentException"); + } catch (final IllegalArgumentException e) { + // expected - not configured for UTF-16BE + } } - in.close(); } @Test public void testReadWithMultipleBOM() throws Exception { final byte[] data = new byte[] { 'A', 'B', 'C' }; - final BOMInputStream in = new BOMInputStream(createUtf8DataStream(data, true), - ByteOrderMark.UTF_16BE, ByteOrderMark.UTF_8); - assertEquals('A', in.read()); - assertEquals('B', in.read()); - assertEquals('C', in.read()); - assertEquals(-1, in.read()); - assertTrue("hasBOM()", in.hasBOM()); - assertTrue("hasBOM(UTF-8)", in.hasBOM(ByteOrderMark.UTF_8)); - assertFalse("hasBOM(UTF-16BE)", in.hasBOM(ByteOrderMark.UTF_16BE)); - assertEquals("getBOM", ByteOrderMark.UTF_8, in.getBOM()); - in.close(); + try (final BOMInputStream in = new BOMInputStream(createUtf8DataStream(data, true), ByteOrderMark.UTF_16BE, + ByteOrderMark.UTF_8)) { + assertEquals('A', in.read()); + assertEquals('B', in.read()); + assertEquals('C', in.read()); + assertEquals(-1, in.read()); + assertTrue("hasBOM()", in.hasBOM()); + assertTrue("hasBOM(UTF-8)", in.hasBOM(ByteOrderMark.UTF_8)); + assertFalse("hasBOM(UTF-16BE)", in.hasBOM(ByteOrderMark.UTF_16BE)); + assertEquals("getBOM", ByteOrderMark.UTF_8, in.getBOM()); + } } @Test public void testReadWithoutBOM() throws Exception { final byte[] data = new byte[] { 'A', 'B', 'C' }; - final BOMInputStream in = new BOMInputStream(createUtf8DataStream(data, false)); - assertEquals('A', in.read()); - assertEquals('B', in.read()); - assertEquals('C', in.read()); - assertEquals(-1, in.read()); - assertFalse("hasBOM()", in.hasBOM()); - assertFalse("hasBOM(UTF-8)", in.hasBOM(ByteOrderMark.UTF_8)); - assertNull("getBOM", in.getBOM()); - in.close(); + try (final BOMInputStream in = new BOMInputStream(createUtf8DataStream(data, false))) { + assertEquals('A', in.read()); + assertEquals('B', in.read()); + assertEquals('C', in.read()); + assertEquals(-1, in.read()); + assertFalse("hasBOM()", in.hasBOM()); + assertFalse("hasBOM(UTF-8)", in.hasBOM(ByteOrderMark.UTF_8)); + assertNull("getBOM", in.getBOM()); + } } @Test @@ -680,76 +684,75 @@ public class BOMInputStreamTest { @Test public void testSkipWithBOM() throws Exception { final byte[] data = new byte[] { 'A', 'B', 'C', 'D' }; - final InputStream in = new BOMInputStream(createUtf8DataStream(data, true)); - in.skip(2L); - assertEquals('C', in.read()); - in.close(); + try (final InputStream in = new BOMInputStream(createUtf8DataStream(data, true))) { + in.skip(2L); + assertEquals('C', in.read()); + } } @Test public void testSkipWithoutBOM() throws Exception { final byte[] data = new byte[] { 'A', 'B', 'C', 'D' }; - final InputStream in = new BOMInputStream(createUtf8DataStream(data, false)); - in.skip(2L); - assertEquals('C', in.read()); - in.close(); + try (final InputStream in = new BOMInputStream(createUtf8DataStream(data, false))) { + in.skip(2L); + assertEquals('C', in.read()); + } } @Test public void skipReturnValueWithBom() throws IOException { - final byte[] baseData = new byte[]{(byte) 0x31, (byte) 0x32, (byte) 0x33}; - final BOMInputStream is1 = new BOMInputStream(createUtf8DataStream(baseData, true)); - assertEquals(2, is1.skip(2)); - assertEquals((byte) 0x33, is1.read()); - is1.close(); + final byte[] baseData = new byte[] { (byte) 0x31, (byte) 0x32, (byte) 0x33 }; + try (final BOMInputStream is1 = new BOMInputStream(createUtf8DataStream(baseData, true))) { + assertEquals(2, is1.skip(2)); + assertEquals((byte) 0x33, is1.read()); + } } @Test public void skipReturnValueWithoutBom() throws IOException { - final byte[] baseData = new byte[]{(byte) 0x31, (byte) 0x32, (byte) 0x33}; - final BOMInputStream is2 = new BOMInputStream(createUtf8DataStream(baseData, false)); - assertEquals(2, is2.skip(2)); // IO-428 - assertEquals((byte) 0x33, is2.read()); - is2.close(); + final byte[] baseData = new byte[] { (byte) 0x31, (byte) 0x32, (byte) 0x33 }; + try (final BOMInputStream is2 = new BOMInputStream(createUtf8DataStream(baseData, false))) { + assertEquals(2, is2.skip(2)); // IO-428 + assertEquals((byte) 0x33, is2.read()); + } } @Test public void testSmallBufferWithBOM() throws Exception { final byte[] data = new byte[] { 'A', 'B', 'C' }; - final InputStream in = new BOMInputStream(createUtf8DataStream(data, true)); - final byte[] buf = new byte[1024]; - assertData(new byte[] { 'A', 'B' }, buf, in.read(buf, 0, 2)); - assertData(new byte[] { 'C' }, buf, in.read(buf, 0, 2)); - in.close(); + try (final InputStream in = new BOMInputStream(createUtf8DataStream(data, true))) { + final byte[] buf = new byte[1024]; + assertData(new byte[] { 'A', 'B' }, buf, in.read(buf, 0, 2)); + assertData(new byte[] { 'C' }, buf, in.read(buf, 0, 2)); + } } @Test public void testSmallBufferWithoutBOM() throws Exception { final byte[] data = new byte[] { 'A', 'B', 'C' }; - final InputStream in = new BOMInputStream(createUtf8DataStream(data, false)); - final byte[] buf = new byte[1024]; - assertData(new byte[] { 'A', 'B' }, buf, in.read(buf, 0, 2)); - assertData(new byte[] { 'C' }, buf, in.read(buf, 0, 2)); - in.close(); + try (final InputStream in = new BOMInputStream(createUtf8DataStream(data, false))) { + final byte[] buf = new byte[1024]; + assertData(new byte[] { 'A', 'B' }, buf, in.read(buf, 0, 2)); + assertData(new byte[] { 'C' }, buf, in.read(buf, 0, 2)); + } } @Test // make sure that our support code works as expected public void testSupportCode() throws Exception { - final InputStream in = createUtf8DataStream(new byte[] { 'A', 'B' }, true); - final byte[] buf = new byte[1024]; - final int len = in.read(buf); - assertEquals(5, len); - assertEquals(0xEF, buf[0] & 0xFF); - assertEquals(0xBB, buf[1] & 0xFF); - assertEquals(0xBF, buf[2] & 0xFF); - assertEquals('A', buf[3] & 0xFF); - assertEquals('B', buf[4] & 0xFF); - - assertData( - new byte[] { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF, 'A', 'B' }, - buf, len); + try (final InputStream in = createUtf8DataStream(new byte[] { 'A', 'B' }, true)) { + final byte[] buf = new byte[1024]; + final int len = in.read(buf); + assertEquals(5, len); + assertEquals(0xEF, buf[0] & 0xFF); + assertEquals(0xBB, buf[1] & 0xFF); + assertEquals(0xBF, buf[2] & 0xFF); + assertEquals('A', buf[3] & 0xFF); + assertEquals('B', buf[4] & 0xFF); + + assertData(new byte[] { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF, 'A', 'B' }, buf, len); + } } private boolean jvmAndSaxBothSupportCharset(final String charSetName) throws ParserConfigurationException, SAXException, IOException { diff --git a/src/test/java/org/apache/commons/io/input/BoundedReaderTest.java b/src/test/java/org/apache/commons/io/input/BoundedReaderTest.java index 5401168..9a5b244 100644 --- a/src/test/java/org/apache/commons/io/input/BoundedReaderTest.java +++ b/src/test/java/org/apache/commons/io/input/BoundedReaderTest.java @@ -37,149 +37,148 @@ public class BoundedReaderTest @Test public void readTillEnd() throws IOException { - final BoundedReader mr = new BoundedReader( sr, 3 ); - mr.read(); - mr.read(); - mr.read(); - assertEquals( -1, mr.read() ); - mr.close(); + try (final BoundedReader mr = new BoundedReader(sr, 3)) { + mr.read(); + mr.read(); + mr.read(); + assertEquals(-1, mr.read()); + } } @Test public void shortReader() throws IOException { - final BoundedReader mr = new BoundedReader( shortReader, 3 ); - mr.read(); - mr.read(); - assertEquals( -1, mr.read() ); - mr.close(); + try (final BoundedReader mr = new BoundedReader(shortReader, 3)) { + mr.read(); + mr.read(); + assertEquals(-1, mr.read()); + } } @Test public void readMulti() throws IOException { - final BoundedReader mr = new BoundedReader( sr, 3 ); - final char[] cbuf = new char[4]; - for ( int i = 0; i < cbuf.length; i++ ) - { - cbuf[i] = 'X'; + try (final BoundedReader mr = new BoundedReader(sr, 3)) { + final char[] cbuf = new char[4]; + for (int i = 0; i < cbuf.length; i++) { + cbuf[i] = 'X'; + } + final int read = mr.read(cbuf, 0, 4); + assertEquals(3, read); + assertEquals('0', cbuf[0]); + assertEquals('1', cbuf[1]); + assertEquals('2', cbuf[2]); + assertEquals('X', cbuf[3]); } - final int read = mr.read( cbuf, 0, 4 ); - assertEquals( 3, read ); - assertEquals( '0', cbuf[0] ); - assertEquals( '1', cbuf[1] ); - assertEquals( '2', cbuf[2] ); - assertEquals( 'X', cbuf[3] ); - mr.close(); } @Test public void readMultiWithOffset() throws IOException { - final BoundedReader mr = new BoundedReader( sr, 3 ); - final char[] cbuf = new char[4]; - for ( int i = 0; i < cbuf.length; i++ ) { - cbuf[i] = 'X'; + try (final BoundedReader mr = new BoundedReader(sr, 3)) { + final char[] cbuf = new char[4]; + for (int i = 0; i < cbuf.length; i++) { + cbuf[i] = 'X'; + } + final int read = mr.read(cbuf, 1, 2); + assertEquals(2, read); + assertEquals('X', cbuf[0]); + assertEquals('0', cbuf[1]); + assertEquals('1', cbuf[2]); + assertEquals('X', cbuf[3]); } - final int read = mr.read( cbuf, 1, 2 ); - assertEquals( 2, read ); - assertEquals( 'X', cbuf[0] ); - assertEquals( '0', cbuf[1] ); - assertEquals( '1', cbuf[2] ); - assertEquals( 'X', cbuf[3] ); - mr.close(); } @Test public void markReset() throws IOException { - final BoundedReader mr = new BoundedReader( sr, 3 ); - mr.mark( 3 ); - mr.read(); - mr.read(); - mr.read(); - mr.reset(); - mr.read(); - mr.read(); - mr.read(); - assertEquals( -1, mr.read() ); - mr.close(); + try (final BoundedReader mr = new BoundedReader(sr, 3)) { + mr.mark(3); + mr.read(); + mr.read(); + mr.read(); + mr.reset(); + mr.read(); + mr.read(); + mr.read(); + assertEquals(-1, mr.read()); + } } @Test public void markResetWithMarkOutsideBoundedReaderMax() throws IOException { - final BoundedReader mr = new BoundedReader( sr, 3 ); - mr.mark( 4 ); - mr.read(); - mr.read(); - mr.read(); - assertEquals( -1, mr.read() ); - mr.close(); + try (final BoundedReader mr = new BoundedReader(sr, 3)) { + mr.mark(4); + mr.read(); + mr.read(); + mr.read(); + assertEquals(-1, mr.read()); + } } @Test public void markResetWithMarkOutsideBoundedReaderMaxAndInitialOffset() throws IOException { - final BoundedReader mr = new BoundedReader( sr, 3 ); - mr.read(); - mr.mark( 3 ); - mr.read(); - mr.read(); - assertEquals( -1, mr.read() ); - mr.close(); + try (final BoundedReader mr = new BoundedReader(sr, 3)) { + mr.read(); + mr.mark(3); + mr.read(); + mr.read(); + assertEquals(-1, mr.read()); + } } @Test public void markResetFromOffset1() throws IOException { - final BoundedReader mr = new BoundedReader( sr, 3 ); - mr.mark( 3 ); - mr.read(); - mr.read(); - mr.read(); - assertEquals( -1, mr.read() ); - mr.reset(); - mr.mark( 1 ); - mr.read(); - assertEquals( -1, mr.read() ); - mr.close(); + try (final BoundedReader mr = new BoundedReader(sr, 3)) { + mr.mark(3); + mr.read(); + mr.read(); + mr.read(); + assertEquals(-1, mr.read()); + mr.reset(); + mr.mark(1); + mr.read(); + assertEquals(-1, mr.read()); + } } @Test public void markResetMarkMore() throws IOException { - final BoundedReader mr = new BoundedReader( sr, 3 ); - mr.mark( 4 ); - mr.read(); - mr.read(); - mr.read(); - mr.reset(); - mr.read(); - mr.read(); - mr.read(); - assertEquals( -1, mr.read() ); - mr.close(); + try (final BoundedReader mr = new BoundedReader(sr, 3)) { + mr.mark(4); + mr.read(); + mr.read(); + mr.read(); + mr.reset(); + mr.read(); + mr.read(); + mr.read(); + assertEquals(-1, mr.read()); + } } @Test public void skipTest() throws IOException { - final BoundedReader mr = new BoundedReader( sr, 3 ); - mr.skip( 2 ); - mr.read(); - assertEquals( -1, mr.read() ); - mr.close(); + try (final BoundedReader mr = new BoundedReader(sr, 3)) { + mr.skip(2); + mr.read(); + assertEquals(-1, mr.read()); + } } @Test public void closeTest() throws IOException { - final AtomicBoolean closed = new AtomicBoolean( false ); - final Reader sr = new BufferedReader( new StringReader( "01234567890" ) ) { + final AtomicBoolean closed = new AtomicBoolean(false); + try (final Reader sr = new BufferedReader(new StringReader("01234567890")) { @Override - public void close() - throws IOException - { - closed.set( true ); + public void close() throws IOException { + closed.set(true); super.close(); } - }; + }) { - final BoundedReader mr = new BoundedReader( sr, 3 ); - mr.close(); - assertTrue( closed.get() ); + try (final BoundedReader mr = new BoundedReader(sr, 3)) { + // nothing + } + } + assertTrue(closed.get()); } @Test(timeout = 5000) diff --git a/src/test/java/org/apache/commons/io/input/CharSequenceInputStreamTest.java b/src/test/java/org/apache/commons/io/input/CharSequenceInputStreamTest.java index d77e42f..e55f88b 100644 --- a/src/test/java/org/apache/commons/io/input/CharSequenceInputStreamTest.java +++ b/src/test/java/org/apache/commons/io/input/CharSequenceInputStreamTest.java @@ -65,16 +65,15 @@ public class CharSequenceInputStreamTest { if (read == -1) { assertEquals("EOF: offset should equal length for charset " + charsetName, expected.length, offset); break; - } else { - assertTrue("Read " + read + " <= " + bufferLength, read <= bufferLength); - while (read > 0) { - assertTrue("offset for " + charsetName + " " + offset + " < " + expected.length, offset < - expected.length); - assertEquals("bytes should agree for " + charsetName, expected[offset], buffer[bufferOffset]); - offset++; - bufferOffset++; - read--; - } + } + assertTrue("Read " + read + " <= " + bufferLength, read <= bufferLength); + while (read > 0) { + assertTrue("offset for " + charsetName + " " + offset + " < " + expected.length, offset < + expected.length); + assertEquals("bytes should agree for " + charsetName, expected[offset], buffer[bufferOffset]); + offset++; + bufferOffset++; + read--; } } } diff --git a/src/test/java/org/apache/commons/io/input/CharSequenceReaderTest.java b/src/test/java/org/apache/commons/io/input/CharSequenceReaderTest.java index b049491..d306293 100644 --- a/src/test/java/org/apache/commons/io/input/CharSequenceReaderTest.java +++ b/src/test/java/org/apache/commons/io/input/CharSequenceReaderTest.java @@ -41,23 +41,24 @@ public class CharSequenceReaderTest { @Test public void testMarkSupported() throws Exception { - final Reader reader = new CharSequenceReader("FooBar"); - assertTrue(reader.markSupported()); - reader.close(); + try (final Reader reader = new CharSequenceReader("FooBar")) { + assertTrue(reader.markSupported()); + } } @Test public void testMark() throws IOException { - final Reader reader = new CharSequenceReader("FooBar"); - checkRead(reader, "Foo"); - reader.mark(0); - checkRead(reader, "Bar"); - reader.reset(); - checkRead(reader, "Bar"); - reader.close(); - checkRead(reader, "Foo"); - reader.reset(); - checkRead(reader, "Foo"); + try (final Reader reader = new CharSequenceReader("FooBar")) { + checkRead(reader, "Foo"); + reader.mark(0); + checkRead(reader, "Bar"); + reader.reset(); + checkRead(reader, "Bar"); + reader.close(); + checkRead(reader, "Foo"); + reader.reset(); + checkRead(reader, "Foo"); + } } @Test @@ -77,41 +78,41 @@ public class CharSequenceReaderTest { @Test public void testRead() throws IOException { - final Reader reader = new CharSequenceReader("Foo"); - assertEquals('F', reader.read()); - assertEquals('o', reader.read()); - assertEquals('o', reader.read()); - assertEquals(-1, reader.read()); - assertEquals(-1, reader.read()); - reader.close(); + try (final Reader reader = new CharSequenceReader("Foo")) { + assertEquals('F', reader.read()); + assertEquals('o', reader.read()); + assertEquals('o', reader.read()); + assertEquals(-1, reader.read()); + assertEquals(-1, reader.read()); + } } @Test public void testReadCharArray() throws IOException { - final Reader reader = new CharSequenceReader("FooBar"); - char[] chars = new char[2]; - assertEquals(2, reader.read(chars)); - checkArray(new char[] {'F', 'o'}, chars); - chars = new char[3]; - assertEquals(3, reader.read(chars)); - checkArray(new char[] {'o', 'B', 'a'}, chars); - chars = new char[3]; - assertEquals(1, reader.read(chars)); - checkArray(new char[] {'r', NONE, NONE}, chars); - assertEquals(-1, reader.read(chars)); - reader.close(); + try (final Reader reader = new CharSequenceReader("FooBar")) { + char[] chars = new char[2]; + assertEquals(2, reader.read(chars)); + checkArray(new char[] { 'F', 'o' }, chars); + chars = new char[3]; + assertEquals(3, reader.read(chars)); + checkArray(new char[] { 'o', 'B', 'a' }, chars); + chars = new char[3]; + assertEquals(1, reader.read(chars)); + checkArray(new char[] { 'r', NONE, NONE }, chars); + assertEquals(-1, reader.read(chars)); + } } @Test public void testReadCharArrayPortion() throws IOException { final char[] chars = new char[10]; - final Reader reader = new CharSequenceReader("FooBar"); - assertEquals(3, reader.read(chars, 3, 3)); - checkArray(new char[] {NONE, NONE, NONE, 'F', 'o', 'o'}, chars); - assertEquals(3, reader.read(chars, 0, 3)); - checkArray(new char[] {'B', 'a', 'r', 'F', 'o', 'o', NONE}, chars); - assertEquals(-1, reader.read(chars)); - reader.close(); + try (final Reader reader = new CharSequenceReader("FooBar")) { + assertEquals(3, reader.read(chars, 3, 3)); + checkArray(new char[] { NONE, NONE, NONE, 'F', 'o', 'o' }, chars); + assertEquals(3, reader.read(chars, 0, 3)); + checkArray(new char[] { 'B', 'a', 'r', 'F', 'o', 'o', NONE }, chars); + assertEquals(-1, reader.read(chars)); + } } private void checkRead(final Reader reader, final String expected) throws IOException { diff --git a/src/test/java/org/apache/commons/io/input/ClassLoaderObjectInputStreamTest.java b/src/test/java/org/apache/commons/io/input/ClassLoaderObjectInputStreamTest.java index 191b4e0..12ffdc6 100644 --- a/src/test/java/org/apache/commons/io/input/ClassLoaderObjectInputStreamTest.java +++ b/src/test/java/org/apache/commons/io/input/ClassLoaderObjectInputStreamTest.java @@ -49,12 +49,12 @@ public class ClassLoaderObjectInputStreamTest { oos.writeObject(input); final InputStream bais = new ByteArrayInputStream(baos.toByteArray()); - final ClassLoaderObjectInputStream clois = - new ClassLoaderObjectInputStream(getClass().getClassLoader(), bais); - final Object result = clois.readObject(); + try (final ClassLoaderObjectInputStream clois = new ClassLoaderObjectInputStream(getClass().getClassLoader(), + bais)) { + final Object result = clois.readObject(); - assertEquals(input, result); - clois.close(); + assertEquals(input, result); + } } @org.junit.Test @@ -67,12 +67,12 @@ public class ClassLoaderObjectInputStreamTest { oos.writeObject(input); final InputStream bais = new ByteArrayInputStream(baos.toByteArray()); - final ClassLoaderObjectInputStream clois = - new ClassLoaderObjectInputStream(getClass().getClassLoader(), bais); - final Object result = clois.readObject(); + try (final ClassLoaderObjectInputStream clois = new ClassLoaderObjectInputStream(getClass().getClassLoader(), + bais)) { + final Object result = clois.readObject(); - assertEquals(input, result); - clois.close(); + assertEquals(input, result); + } } @org.junit.Test @@ -86,12 +86,12 @@ public class ClassLoaderObjectInputStreamTest { oos.close(); final InputStream bais = new ByteArrayInputStream(baos.toByteArray()); - final ClassLoaderObjectInputStream clois = - new ClassLoaderObjectInputStream(getClass().getClassLoader(), bais); - final long result = clois.readLong(); + try (final ClassLoaderObjectInputStream clois = new ClassLoaderObjectInputStream(getClass().getClassLoader(), + bais)) { + final long result = clois.readLong(); - assertEquals(input, result); - clois.close(); + assertEquals(input, result); + } } private static enum E {A, B, C} @@ -117,9 +117,8 @@ public class ClassLoaderObjectInputStreamTest { return (this.i == tother.i) & (this.e == tother.e) & equalObject(tother.o); - } else { - return false; } + return false; } private boolean equalObject(final Object other) { @@ -146,12 +145,12 @@ public class ClassLoaderObjectInputStreamTest { oos.close(); final InputStream bais = new ByteArrayInputStream(baos.toByteArray()); - final ClassLoaderObjectInputStream clois = - new ClassLoaderObjectInputStream(getClass().getClassLoader(), bais); - final Object result = clois.readObject(); + try (final ClassLoaderObjectInputStream clois = new ClassLoaderObjectInputStream(getClass().getClassLoader(), + bais)) { + final Object result = clois.readObject(); - assertEquals(input, result); - clois.close(); + assertEquals(input, result); + } } @org.junit.Test @@ -165,12 +164,12 @@ public class ClassLoaderObjectInputStreamTest { oos.close(); final InputStream bais = new ByteArrayInputStream(baos.toByteArray()); - final ClassLoaderObjectInputStream clois = - new ClassLoaderObjectInputStream(getClass().getClassLoader(), bais); - final Object result = clois.readObject(); + try (final ClassLoaderObjectInputStream clois = new ClassLoaderObjectInputStream(getClass().getClassLoader(), + bais)) { + final Object result = clois.readObject(); - assertEquals(input, result); - clois.close(); + assertEquals(input, result); + } } @org.junit.Test @@ -181,12 +180,12 @@ public class ClassLoaderObjectInputStreamTest { oos.writeObject(Boolean.FALSE); final InputStream bais = new ByteArrayInputStream(baos.toByteArray()); - final ClassLoaderObjectInputStream clois = - new ClassLoaderObjectInputStream(getClass().getClassLoader(), bais); - final String[] interfaces = new String[]{Comparable.class.getName()}; - final Class<?> result = clois.resolveProxyClass(interfaces); - assertTrue("Assignable", Comparable.class.isAssignableFrom(result)); - clois.close(); + try (final ClassLoaderObjectInputStream clois = new ClassLoaderObjectInputStream(getClass().getClassLoader(), + bais)) { + final String[] interfaces = new String[] { Comparable.class.getName() }; + final Class<?> result = clois.resolveProxyClass(interfaces); + assertTrue("Assignable", Comparable.class.isAssignableFrom(result)); + } } @org.junit.Test @@ -197,16 +196,15 @@ public class ClassLoaderObjectInputStreamTest { oos.writeObject(Boolean.FALSE); final InputStream bais = new ByteArrayInputStream(baos.toByteArray()); - final ClassLoaderObjectInputStream clois = - new ClassLoaderObjectInputStream(getClass().getClassLoader(), bais); - final String[] interfaces = new String[]{Comparable.class.getName(), - Serializable.class.getName(), - Runnable.class.getName()}; - final Class<?> result = clois.resolveProxyClass(interfaces); - assertTrue("Assignable", Comparable.class.isAssignableFrom(result)); - assertTrue("Assignable", Runnable.class.isAssignableFrom(result)); - assertTrue("Assignable", Serializable.class.isAssignableFrom(result)); - assertFalse("Not Assignable", Flushable.class.isAssignableFrom(result)); - clois.close(); + try (final ClassLoaderObjectInputStream clois = new ClassLoaderObjectInputStream(getClass().getClassLoader(), + bais)) { + final String[] interfaces = new String[] { Comparable.class.getName(), Serializable.class.getName(), + Runnable.class.getName() }; + final Class<?> result = clois.resolveProxyClass(interfaces); + assertTrue("Assignable", Comparable.class.isAssignableFrom(result)); + assertTrue("Assignable", Runnable.class.isAssignableFrom(result)); + assertTrue("Assignable", Serializable.class.isAssignableFrom(result)); + assertFalse("Not Assignable", Flushable.class.isAssignableFrom(result)); + } } } diff --git a/src/test/java/org/apache/commons/io/input/ClosedInputStreamTest.java b/src/test/java/org/apache/commons/io/input/ClosedInputStreamTest.java index 96e3d40..04ec66f 100644 --- a/src/test/java/org/apache/commons/io/input/ClosedInputStreamTest.java +++ b/src/test/java/org/apache/commons/io/input/ClosedInputStreamTest.java @@ -27,9 +27,9 @@ public class ClosedInputStreamTest { @Test public void testRead() throws Exception { - final ClosedInputStream cis = new ClosedInputStream(); - assertEquals("read()", -1, cis.read()); - cis.close(); + try (final ClosedInputStream cis = new ClosedInputStream()) { + assertEquals("read()", -1, cis.read()); + } } } diff --git a/src/test/java/org/apache/commons/io/input/CountingInputStreamTest.java b/src/test/java/org/apache/commons/io/input/CountingInputStreamTest.java index a851aba..0bc4c92 100644 --- a/src/test/java/org/apache/commons/io/input/CountingInputStreamTest.java +++ b/src/test/java/org/apache/commons/io/input/CountingInputStreamTest.java @@ -38,33 +38,33 @@ public class CountingInputStreamTest { final String text = "A piece of text"; final byte[] bytes = text.getBytes(); final ByteArrayInputStream bais = new ByteArrayInputStream(bytes); - final CountingInputStream cis = new CountingInputStream(bais); + try (final CountingInputStream cis = new CountingInputStream(bais)) { - // have to declare this larger as we're going to read - // off the end of the stream and input stream seems - // to do bounds checking - final byte[] result = new byte[21]; + // have to declare this larger as we're going to read + // off the end of the stream and input stream seems + // to do bounds checking + final byte[] result = new byte[21]; - final byte[] ba = new byte[5]; - int found = cis.read(ba); - System.arraycopy(ba, 0, result, 0, 5); - assertEquals( found, cis.getCount() ); + final byte[] ba = new byte[5]; + int found = cis.read(ba); + System.arraycopy(ba, 0, result, 0, 5); + assertEquals(found, cis.getCount()); - final int value = cis.read(); - found++; - result[5] = (byte)value; - assertEquals( found, cis.getCount() ); + final int value = cis.read(); + found++; + result[5] = (byte) value; + assertEquals(found, cis.getCount()); - found += cis.read(result, 6, 5); - assertEquals( found, cis.getCount() ); + found += cis.read(result, 6, 5); + assertEquals(found, cis.getCount()); - found += cis.read(result, 11, 10); // off the end - assertEquals( found, cis.getCount() ); + found += cis.read(result, 11, 10); // off the end + assertEquals(found, cis.getCount()); - // trim to get rid of the 6 empty values - final String textResult = new String(result).trim(); - assertEquals(textResult, text); - cis.close(); + // trim to get rid of the 6 empty values + final String textResult = new String(result).trim(); + assertEquals(textResult, text); + } } @@ -106,97 +106,97 @@ public class CountingInputStreamTest { final String text = "A piece of text"; final byte[] bytes = text.getBytes(); final ByteArrayInputStream bais = new ByteArrayInputStream(bytes); - final CountingInputStream cis = new CountingInputStream(bais); + try (final CountingInputStream cis = new CountingInputStream(bais)) { - final byte[] result = new byte[bytes.length]; + final byte[] result = new byte[bytes.length]; - int found = cis.read(result, 0, 5); - assertEquals( found, cis.getCount() ); + int found = cis.read(result, 0, 5); + assertEquals(found, cis.getCount()); - final int count = cis.resetCount(); - found = cis.read(result, 6, 5); - assertEquals( found, count ); - cis.close(); + final int count = cis.resetCount(); + found = cis.read(result, 6, 5); + assertEquals(found, count); + } } @Test public void testZeroLength1() throws Exception { final ByteArrayInputStream bais = new ByteArrayInputStream(new byte[0]); - final CountingInputStream cis = new CountingInputStream(bais); + try (final CountingInputStream cis = new CountingInputStream(bais)) { - final int found = cis.read(); - assertEquals(-1, found); - assertEquals(0, cis.getCount()); - cis.close(); + final int found = cis.read(); + assertEquals(-1, found); + assertEquals(0, cis.getCount()); + } } @Test public void testZeroLength2() throws Exception { final ByteArrayInputStream bais = new ByteArrayInputStream(new byte[0]); - final CountingInputStream cis = new CountingInputStream(bais); + try (final CountingInputStream cis = new CountingInputStream(bais)) { - final byte[] result = new byte[10]; + final byte[] result = new byte[10]; - final int found = cis.read(result); - assertEquals(-1, found); - assertEquals(0, cis.getCount()); - cis.close(); + final int found = cis.read(result); + assertEquals(-1, found); + assertEquals(0, cis.getCount()); + } } @Test public void testZeroLength3() throws Exception { final ByteArrayInputStream bais = new ByteArrayInputStream(new byte[0]); - final CountingInputStream cis = new CountingInputStream(bais); + try (final CountingInputStream cis = new CountingInputStream(bais)) { - final byte[] result = new byte[10]; + final byte[] result = new byte[10]; - final int found = cis.read(result, 0, 5); - assertEquals(-1, found); - assertEquals(0, cis.getCount()); - cis.close(); + final int found = cis.read(result, 0, 5); + assertEquals(-1, found); + assertEquals(0, cis.getCount()); + } } @Test public void testEOF1() throws Exception { final ByteArrayInputStream bais = new ByteArrayInputStream(new byte[2]); - final CountingInputStream cis = new CountingInputStream(bais); - - int found = cis.read(); - assertEquals(0, found); - assertEquals(1, cis.getCount()); - found = cis.read(); - assertEquals(0, found); - assertEquals(2, cis.getCount()); - found = cis.read(); - assertEquals(-1, found); - assertEquals(2, cis.getCount()); - cis.close(); + try (final CountingInputStream cis = new CountingInputStream(bais)) { + + int found = cis.read(); + assertEquals(0, found); + assertEquals(1, cis.getCount()); + found = cis.read(); + assertEquals(0, found); + assertEquals(2, cis.getCount()); + found = cis.read(); + assertEquals(-1, found); + assertEquals(2, cis.getCount()); + } } @Test public void testEOF2() throws Exception { final ByteArrayInputStream bais = new ByteArrayInputStream(new byte[2]); - final CountingInputStream cis = new CountingInputStream(bais); + try (final CountingInputStream cis = new CountingInputStream(bais)) { - final byte[] result = new byte[10]; + final byte[] result = new byte[10]; - final int found = cis.read(result); - assertEquals(2, found); - assertEquals(2, cis.getCount()); - cis.close(); + final int found = cis.read(result); + assertEquals(2, found); + assertEquals(2, cis.getCount()); + } } @Test public void testEOF3() throws Exception { final ByteArrayInputStream bais = new ByteArrayInputStream(new byte[2]); - final CountingInputStream cis = new CountingInputStream(bais); + try (final CountingInputStream cis = new CountingInputStream(bais)) { - final byte[] result = new byte[10]; + final byte[] result = new byte[10]; - final int found = cis.read(result, 0, 5); - assertEquals(2, found); - assertEquals(2, cis.getCount()); - cis.close(); + final int found = cis.read(result, 0, 5); + assertEquals(2, found); + assertEquals(2, cis.getCount()); + } } @Test @@ -204,16 +204,16 @@ public class CountingInputStreamTest { final String text = "Hello World!"; final byte[] bytes = text.getBytes(); final ByteArrayInputStream bais = new ByteArrayInputStream(bytes); - final CountingInputStream cis = new CountingInputStream(bais); + try (final CountingInputStream cis = new CountingInputStream(bais)) { - assertEquals(6,cis.skip(6)); - assertEquals(6,cis.getCount()); - final byte[] result = new byte[6]; - cis.read(result); + assertEquals(6, cis.skip(6)); + assertEquals(6, cis.getCount()); + final byte[] result = new byte[6]; + cis.read(result); - assertEquals("World!",new String(result)); - assertEquals(12,cis.getCount()); - cis.close(); + assertEquals("World!", new String(result)); + assertEquals(12, cis.getCount()); + } } }