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 6a625e954 Add CharSequenceInputStreamTest.testReadAfterClose()
6a625e954 is described below

commit 6a625e954eb5934913316b9b15e58e8a759a3153
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Sun Jul 7 18:15:54 2024 -0400

    Add CharSequenceInputStreamTest.testReadAfterClose()
---
 .../io/input/CharSequenceInputStreamTest.java      | 37 ++++++++++++++--------
 1 file changed, 24 insertions(+), 13 deletions(-)

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 ef7cbc5ad..b2d23ce6a 100644
--- a/src/test/java/org/apache/commons/io/input/CharSequenceInputStreamTest.java
+++ b/src/test/java/org/apache/commons/io/input/CharSequenceInputStreamTest.java
@@ -81,19 +81,6 @@ public class CharSequenceInputStreamTest {
                 "Shift_JIS".equalsIgnoreCase(csName);
     }
 
-    /**
-     * IO-781 available() returns 2 but only 1 byte is read afterwards.
-     */
-    @Test
-    public void testAvailable() throws IOException {
-        final Charset charset = Charset.forName("Big5");
-        final CharSequenceInputStream in = new 
CharSequenceInputStream("\uD800\uDC00", charset);
-        final int available = in.available();
-        final byte[] data = new byte[available];
-        final int bytesRead = in.read(data);
-        assertEquals(available, bytesRead);
-    }
-
     @ParameterizedTest(name = "{0}")
     @MethodSource(CharsetsTest.AVAIL_CHARSETS)
     public void testAvailable(final String csName) throws Exception {
@@ -128,6 +115,20 @@ public class CharSequenceInputStreamTest {
         assertEquals(0, shadow.available());
     }
 
+    /**
+     * IO-781 available() returns 2 but only 1 byte is read afterwards.
+     */
+    @Test
+    public void testAvailableAfterOpen() throws IOException {
+        final Charset charset = Charset.forName("Big5");
+        try (CharSequenceInputStream in = new 
CharSequenceInputStream("\uD800\uDC00", charset)) {
+            final int available = in.available();
+            final byte[] data = new byte[available];
+            final int bytesRead = in.read(data);
+            assertEquals(available, bytesRead);
+        }
+    }
+
     private void testAvailableRead(final String csName) throws Exception {
         final String input = "test";
         try (InputStream r = new CharSequenceInputStream(input, csName)) {
@@ -447,6 +448,16 @@ public class CharSequenceInputStreamTest {
         }
     }
 
+    @Test
+    public void testReadAfterClose() throws Exception {
+        final InputStream shadow;
+        try (InputStream in = 
CharSequenceInputStream.builder().setCharSequence("Hi").get()) {
+            assertTrue(in.available() > 0);
+            shadow = in;
+        }
+        assertEquals(IOUtils.EOF, shadow.read());
+    }
+
     private void testReadZero(final String csName) throws Exception {
         try (InputStream r = new CharSequenceInputStream("test", csName)) {
             final byte[] bytes = new byte[30];

Reply via email to