You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2020/08/05 16:49:44 UTC
[commons-io] branch master updated: Test cases for close() methods
added in 2.7
This is an automated email from the ASF dual-hosted git repository.
sebb 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 9741fb8 Test cases for close() methods added in 2.7
9741fb8 is described below
commit 9741fb8508c422668e6975304e41e5a13e0e704c
Author: Sebb <se...@apache.org>
AuthorDate: Wed Aug 5 17:49:35 2020 +0100
Test cases for close() methods added in 2.7
---
.../org/apache/commons/io/IOUtilsTestCase.java | 30 ++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/src/test/java/org/apache/commons/io/IOUtilsTestCase.java b/src/test/java/org/apache/commons/io/IOUtilsTestCase.java
index 06f454d..1c9c627 100644
--- a/src/test/java/org/apache/commons/io/IOUtilsTestCase.java
+++ b/src/test/java/org/apache/commons/io/IOUtilsTestCase.java
@@ -61,9 +61,11 @@ import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.List;
+import org.apache.commons.io.function.IOConsumer;
import org.apache.commons.io.output.AppendableWriter;
import org.apache.commons.io.output.StringBuilderWriter;
import org.apache.commons.io.testtools.TestUtils;
+import org.apache.commons.io.testtools.YellOnCloseReader;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
@@ -138,6 +140,34 @@ public class IOUtilsTestCase {
}
}
+ @Test public void testClose() {
+ assertDoesNotThrow(() -> IOUtils.close((Closeable) null));
+ assertDoesNotThrow(() -> IOUtils.close(new StringReader("s")));
+ assertThrows(IOException.class, () -> IOUtils.close(new YellOnCloseReader(new StringReader("s"))));
+ }
+
+ @Test public void testCloseConsumer() {
+ Closeable nulCloseable = null;
+ assertDoesNotThrow(() -> IOUtils.close(nulCloseable, null)); // null consumer
+ assertDoesNotThrow(() -> IOUtils.close(new StringReader("s"), null)); // null consumer
+ assertDoesNotThrow(() -> IOUtils.close(new YellOnCloseReader(new StringReader("s")), null)); // null consumer
+
+ final IOConsumer<IOException> nullConsumer = null; // null consumer doesn't throw
+ assertDoesNotThrow(() -> IOUtils.close(nulCloseable, nullConsumer));
+ assertDoesNotThrow(() -> IOUtils.close(new StringReader("s"), nullConsumer));
+ assertDoesNotThrow(() -> IOUtils.close(new YellOnCloseReader(new StringReader("s")), nullConsumer));
+
+ final IOConsumer<IOException> silentConsumer = i -> {}; // silent consumer doesn't throw
+ assertDoesNotThrow(() -> IOUtils.close(nulCloseable, silentConsumer));
+ assertDoesNotThrow(() -> IOUtils.close(new StringReader("s"), silentConsumer));
+ assertDoesNotThrow(() -> IOUtils.close(new YellOnCloseReader(new StringReader("s")), silentConsumer));
+
+ final IOConsumer<IOException> noisyConsumer = i -> {throw i;}; // consumer passes on the throw
+ assertDoesNotThrow(() -> IOUtils.close(nulCloseable, noisyConsumer)); // no throw
+ assertDoesNotThrow(() -> IOUtils.close(new StringReader("s"), noisyConsumer)); // no throw
+ assertThrows(IOException.class, () -> IOUtils.close(new YellOnCloseReader(new StringReader("s")),noisyConsumer)); // closeable throws
+ }
+
@Test public void testCloseQuietly_AllCloseableIOException() {
final Closeable closeable = () -> {
throw new IOException();