]> source.dussan.org Git - poi.git/commitdiff
add tests
authorPJ Fanning <fanningpj@apache.org>
Sat, 9 Oct 2021 13:33:11 +0000 (13:33 +0000)
committerPJ Fanning <fanningpj@apache.org>
Sat, 9 Oct 2021 13:33:11 +0000 (13:33 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1894070 13f79535-47bb-0310-9956-ffa450edef68

poi/src/test/java/org/apache/poi/poifs/filesystem/TestPOIFSFileSystem.java

index 19314dac1755903196ab0d7e83236f16f61b6351..907529a5d2a0f4c31ade9d818ef1414b0b1a6119 100644 (file)
 package org.apache.poi.poifs.filesystem;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
+import static org.junit.jupiter.api.Assertions.*;
+
+import java.io.*;
 import java.nio.ByteBuffer;
+import java.nio.channels.FileChannel;
 import java.util.HashMap;
 
 import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
@@ -46,7 +42,7 @@ import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.CsvSource;
 
 /**
- * Tests for the older OPOIFS-based POIFSFileSystem
+ * Tests for the POIFSFileSystem
  */
 final class TestPOIFSFileSystem {
    private final POIDataSamples _samples = POIDataSamples.getPOIFSInstance();
@@ -305,6 +301,26 @@ final class TestPOIFSFileSystem {
         }
     }
 
+    @Test
+    void test64542CloseChannelFalse() throws IOException {
+        File file = _samples.getFile("64322.ole2");
+        try (FileChannel channel = new RandomAccessFile(file, "r").getChannel()) {
+            POIFSFileSystem poiFS = new POIFSFileSystem(channel, true, false);
+            poiFS.close();
+            assertTrue(channel.isOpen(), "channel should still be open");
+        }
+    }
+
+    @Test
+    void test64542CloseChannelTrue() throws IOException {
+        File file = _samples.getFile("64322.ole2");
+        try (FileChannel channel = new RandomAccessFile(file, "r").getChannel()) {
+            POIFSFileSystem poiFS = new POIFSFileSystem(channel, true, true);
+            poiFS.close();
+            assertFalse(channel.isOpen(), "channel should be closed");
+        }
+    }
+
     private static int recurseDir(DirectoryEntry dir) throws IOException, NoPropertySetStreamException {
         int count = 0;
         for (Entry entry : dir) {