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 <[email protected]>
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];