You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2024/07/08 18:30:38 UTC
(commons-io) 13/13: Add MarkShieldInputStream tests
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
commit c553b0b4045142e7beb0338665da581762c1e482
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Mon Jul 8 14:30:09 2024 -0400
Add MarkShieldInputStream tests
---
.../io/input/MarkShieldInputStreamTest.java | 40 +++++++++++++++++++++-
1 file changed, 39 insertions(+), 1 deletion(-)
diff --git a/src/test/java/org/apache/commons/io/input/MarkShieldInputStreamTest.java b/src/test/java/org/apache/commons/io/input/MarkShieldInputStreamTest.java
index 9c7074adf..5c42a2244 100644
--- a/src/test/java/org/apache/commons/io/input/MarkShieldInputStreamTest.java
+++ b/src/test/java/org/apache/commons/io/input/MarkShieldInputStreamTest.java
@@ -24,10 +24,13 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.IOException;
import java.io.InputStream;
+import org.apache.commons.io.IOUtils;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.MethodSource;
/**
- * Tests {@link MarkTestableInputStream}.
+ * Tests {@link MarkShieldInputStream}.
*/
public class MarkShieldInputStreamTest {
@@ -50,6 +53,41 @@ public class MarkShieldInputStreamTest {
}
}
+ @SuppressWarnings("resource")
+ @ParameterizedTest
+ @MethodSource(AbstractInputStreamTest.ARRAY_LENGTHS_NAME)
+ public void testAvailableAfterClose(final int len) throws Exception {
+ final InputStream shadow;
+ try (MarkTestableInputStream in = new MarkTestableInputStream(new NullInputStream(len, false, false));
+ final MarkShieldInputStream msis = new MarkShieldInputStream(in)) {
+ assertEquals(len, in.available());
+ shadow = in;
+ }
+ assertEquals(0, shadow.available());
+ }
+
+ @SuppressWarnings("resource")
+ @ParameterizedTest
+ @MethodSource(AbstractInputStreamTest.ARRAY_LENGTHS_NAME)
+ public void testReadAfterClose(final int len) throws Exception {
+ final InputStream shadow;
+ try (MarkTestableInputStream in = new MarkTestableInputStream(new NullInputStream(len, false, false));
+ final MarkShieldInputStream msis = new MarkShieldInputStream(in)) {
+ assertEquals(len, in.available());
+ shadow = in;
+ }
+ assertEquals(IOUtils.EOF, shadow.read());
+ }
+
+ @ParameterizedTest
+ @MethodSource(AbstractInputStreamTest.ARRAY_LENGTHS_NAME)
+ public void testAvailableAfterOpen(final int len) throws Exception {
+ try (MarkTestableInputStream in = new MarkTestableInputStream(new NullInputStream(len, false, false));
+ final MarkShieldInputStream msis = new MarkShieldInputStream(in)) {
+ assertEquals(len, in.available());
+ }
+ }
+
@Test
public void testMarkIsNoOpWhenUnderlyingDoesNotSupport() throws IOException {
try (MarkTestableInputStream in = new MarkTestableInputStream(new NullInputStream(64, false, false));