From f3d95e908bdf9b5c7a2280db422a518e73fae4c8 Mon Sep 17 00:00:00 2001 From: qibinhang Date: Fri, 8 Aug 2025 13:20:08 +0800 Subject: [PATCH] Add tests for covering additional, important scenarios of `FileUtil`. --- .../java/cn/hutool/core/io/FileUtilTest.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/hutool-core/src/test/java/cn/hutool/core/io/FileUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/io/FileUtilTest.java index 056a209b3..8405af6ca 100644 --- a/hutool-core/src/test/java/cn/hutool/core/io/FileUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/io/FileUtilTest.java @@ -528,6 +528,44 @@ public class FileUtilTest { assertTrue(FileUtil.isSub(file, file2)); } + @Test + public void isSub_SubIsAncestorOfParentTest() { + File parent = new File("d:/home/user/docs/notes"); + File sub = new File("d:/home/user/docs"); + assertFalse(FileUtil.isSub(parent, sub)); + } + + @Test + public void isSub_SamePathTest() { + File parent = new File("d:/home/user/docs"); + File sub = new File("d:/home/user/docs"); + assertTrue(FileUtil.isSub(parent, sub)); + } + + @Test + public void isSub_NonexistentPathsTest() { + File parent = new File("d:/unlikely/to/exist/parent"); + File sub = new File("d:/unlikely/to/exist/parent/child/file.txt"); + assertTrue(FileUtil.isSub(parent, sub)); + + File nonchild = new File("d:/also/unlikely/path.txt"); + assertFalse(FileUtil.isSub(parent, nonchild)); + } + + @Test + public void isSub_NullParentTest() { + assertThrows(IllegalArgumentException.class, () -> { + FileUtil.isSub(null, new java.io.File("d:/any/path")); + }); + } + + @Test + public void isSub_NullSubTest() { + assertThrows(IllegalArgumentException.class, () -> { + FileUtil.isSub(new java.io.File("d:/any/path"), null); + }); + } + @Test @Disabled public void appendLinesTest(){