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/04/04 11:23:47 UTC
(commons-io) 01/02: Reuse AbstractTempDirTest
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 e72d0107dfda56e9bd243886eb494ff7a1bbf40f
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Thu Apr 4 07:02:06 2024 -0400
Reuse AbstractTempDirTest
---
.../commons/io/file/AbstractTempDirTest.java | 18 ++++++++
.../commons/io/file/DeletingPathVisitorTest.java | 48 +++++++++++-----------
.../org/apache/commons/io/file/PathUtilsTest.java | 24 ++---------
3 files changed, 44 insertions(+), 46 deletions(-)
diff --git a/src/test/java/org/apache/commons/io/file/AbstractTempDirTest.java b/src/test/java/org/apache/commons/io/file/AbstractTempDirTest.java
index b28598907..38c0a34ff 100644
--- a/src/test/java/org/apache/commons/io/file/AbstractTempDirTest.java
+++ b/src/test/java/org/apache/commons/io/file/AbstractTempDirTest.java
@@ -31,6 +31,24 @@ import org.junit.jupiter.api.io.TempDir;
*/
public abstract class AbstractTempDirTest {
+ /**
+ * Creates directory test fixtures.
+ * <ol>
+ * <li>tempDirPath/subdir</li>
+ * <li>tempDirPath/symlinked-dir -> tempDirPath/subdir</li>
+ * </ol>
+ * @param rootDir Root for directory entries.
+ * @return Path to tempDirPath/subdir.
+ * @throws IOException if an I/O error occurs or the parent directory does not exist.
+ */
+ protected static Path createTempSymlinkedRelativeDir(final Path rootDir) throws IOException {
+ final Path targetDir = rootDir.resolve("subdir");
+ final Path symlinkDir = rootDir.resolve("symlinked-dir");
+ Files.createDirectory(targetDir);
+ Files.createSymbolicLink(symlinkDir, targetDir);
+ return symlinkDir;
+ }
+
/**
* A temporary directory managed by JUnit.
*/
diff --git a/src/test/java/org/apache/commons/io/file/DeletingPathVisitorTest.java b/src/test/java/org/apache/commons/io/file/DeletingPathVisitorTest.java
index 800c2723c..8570d4a85 100644
--- a/src/test/java/org/apache/commons/io/file/DeletingPathVisitorTest.java
+++ b/src/test/java/org/apache/commons/io/file/DeletingPathVisitorTest.java
@@ -26,20 +26,18 @@ import java.nio.file.Paths;
import org.apache.commons.io.file.Counters.PathCounters;
import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.io.TempDir;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
/**
* Tests {@link DeletingPathVisitor}.
*/
-public class DeletingPathVisitorTest extends TestArguments {
+public class DeletingPathVisitorTest extends AbstractTempDirTest {
- @TempDir
- private Path tempDir;
+ private static final String ARGS = "org.apache.commons.io.file.TestArguments#";
private void applyDeleteEmptyDirectory(final DeletingPathVisitor visitor) throws IOException {
- Files.walkFileTree(tempDir, visitor);
+ Files.walkFileTree(tempDirPath, visitor);
assertCounts(1, 0, 0, visitor);
}
@@ -47,59 +45,59 @@ public class DeletingPathVisitorTest extends TestArguments {
* Tests an empty folder.
*/
@ParameterizedTest
- @MethodSource("deletingPathVisitors")
+ @MethodSource(ARGS + "deletingPathVisitors")
public void testDeleteEmptyDirectory(final DeletingPathVisitor visitor) throws IOException {
applyDeleteEmptyDirectory(visitor);
// This will throw if not empty.
- Files.deleteIfExists(tempDir);
+ Files.deleteIfExists(tempDirPath);
}
/**
* Tests an empty folder.
*/
@ParameterizedTest
- @MethodSource("pathCounters")
+ @MethodSource(ARGS + "pathCounters")
public void testDeleteEmptyDirectoryNullCtorArg(final PathCounters pathCounters) throws IOException {
applyDeleteEmptyDirectory(new DeletingPathVisitor(pathCounters, (String[]) null));
// This will throw if not empty.
- Files.deleteIfExists(tempDir);
+ Files.deleteIfExists(tempDirPath);
}
/**
* Tests a directory with one file of size 0.
*/
@ParameterizedTest
- @MethodSource("deletingPathVisitors")
+ @MethodSource(ARGS + "deletingPathVisitors")
public void testDeleteFolders1FileSize0(final DeletingPathVisitor visitor) throws IOException {
- PathUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-0"), tempDir);
- assertCounts(1, 1, 0, PathUtils.visitFileTree(visitor, tempDir));
+ PathUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-0"), tempDirPath);
+ assertCounts(1, 1, 0, PathUtils.visitFileTree(visitor, tempDirPath));
// This will throw if not empty.
- Files.deleteIfExists(tempDir);
+ Files.deleteIfExists(tempDirPath);
}
/**
* Tests a directory with one file of size 1.
*/
@ParameterizedTest
- @MethodSource("deletingPathVisitors")
+ @MethodSource(ARGS + "deletingPathVisitors")
public void testDeleteFolders1FileSize1(final DeletingPathVisitor visitor) throws IOException {
- PathUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-1"), tempDir);
- assertCounts(1, 1, 1, PathUtils.visitFileTree(visitor, tempDir));
+ PathUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-1"), tempDirPath);
+ assertCounts(1, 1, 1, PathUtils.visitFileTree(visitor, tempDirPath));
// This will throw if not empty.
- Files.deleteIfExists(tempDir);
+ Files.deleteIfExists(tempDirPath);
}
/**
* Tests a directory with one file of size 1 but skip that file.
*/
@ParameterizedTest
- @MethodSource("pathCounters")
+ @MethodSource(ARGS + "pathCounters")
public void testDeleteFolders1FileSize1Skip(final PathCounters pathCounters) throws IOException {
- PathUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-1"), tempDir);
+ PathUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-1-file-size-1"), tempDirPath);
final String skipFileName = "file-size-1.bin";
final CountingPathVisitor visitor = new DeletingPathVisitor(pathCounters, skipFileName);
- assertCounts(1, 1, 1, PathUtils.visitFileTree(visitor, tempDir));
- final Path skippedFile = tempDir.resolve(skipFileName);
+ assertCounts(1, 1, 1, PathUtils.visitFileTree(visitor, tempDirPath));
+ final Path skippedFile = tempDirPath.resolve(skipFileName);
Assertions.assertTrue(Files.exists(skippedFile));
Files.delete(skippedFile);
}
@@ -108,11 +106,11 @@ public class DeletingPathVisitorTest extends TestArguments {
* Tests a directory with two subdirectories, each containing one file of size 1.
*/
@ParameterizedTest
- @MethodSource("deletingPathVisitors")
+ @MethodSource(ARGS + "deletingPathVisitors")
public void testDeleteFolders2FileSize2(final DeletingPathVisitor visitor) throws IOException {
- PathUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-2-file-size-2"), tempDir);
- assertCounts(3, 2, 2, PathUtils.visitFileTree(visitor, tempDir));
+ PathUtils.copyDirectory(Paths.get("src/test/resources/org/apache/commons/io/dirs-2-file-size-2"), tempDirPath);
+ assertCounts(3, 2, 2, PathUtils.visitFileTree(visitor, tempDirPath));
// This will throw if not empty.
- Files.deleteIfExists(tempDir);
+ Files.deleteIfExists(tempDirPath);
}
}
diff --git a/src/test/java/org/apache/commons/io/file/PathUtilsTest.java b/src/test/java/org/apache/commons/io/file/PathUtilsTest.java
index 74c454009..a767a77f4 100644
--- a/src/test/java/org/apache/commons/io/file/PathUtilsTest.java
+++ b/src/test/java/org/apache/commons/io/file/PathUtilsTest.java
@@ -73,24 +73,6 @@ public class PathUtilsTest extends AbstractTempDirTest {
private static final String PATH_FIXTURE = "NOTICE.txt";
- /**
- * Creates directory test fixtures.
- * <ol>
- * <li>tempDirPath/subdir</li>
- * <li>tempDirPath/symlinked-dir -> tempDirPath/subdir</li>
- * </ol>
- *
- * @return Path to tempDirPath/subdir
- * @throws IOException if an I/O error occurs or the parent directory does not exist.
- */
- private Path createTempSymlinkedRelativeDir() throws IOException {
- final Path targetDir = tempDirPath.resolve("subdir");
- final Path symlinkDir = tempDirPath.resolve("symlinked-dir");
- Files.createDirectory(targetDir);
- Files.createSymbolicLink(symlinkDir, targetDir);
- return symlinkDir;
- }
-
private Path current() {
return PathUtils.current();
}
@@ -234,7 +216,7 @@ public class PathUtilsTest extends AbstractTempDirTest {
@Test
public void testCreateDirectoriesSymlink() throws IOException {
- final Path symlinkedDir = createTempSymlinkedRelativeDir();
+ final Path symlinkedDir = createTempSymlinkedRelativeDir(tempDirPath);
final String leafDirName = "child";
final Path newDirFollowed = PathUtils.createParentDirectories(symlinkedDir.resolve(leafDirName), PathUtils.NULL_LINK_OPTION);
assertEquals(Files.readSymbolicLink(symlinkedDir), newDirFollowed);
@@ -242,7 +224,7 @@ public class PathUtilsTest extends AbstractTempDirTest {
@Test
public void testCreateDirectoriesSymlinkClashing() throws IOException {
- final Path symlinkedDir = createTempSymlinkedRelativeDir();
+ final Path symlinkedDir = createTempSymlinkedRelativeDir(tempDirPath);
assertEquals(symlinkedDir, PathUtils.createParentDirectories(symlinkedDir.resolve("child")));
}
@@ -428,7 +410,7 @@ public class PathUtilsTest extends AbstractTempDirTest {
@Test
public void testNewOutputStreamNewFileInsideExistingSymlinkedDir() throws IOException {
- final Path symlinkDir = createTempSymlinkedRelativeDir();
+ final Path symlinkDir = createTempSymlinkedRelativeDir(tempDirPath);
final Path file = symlinkDir.resolve("test.txt");
try (OutputStream outputStream = PathUtils.newOutputStream(file, new LinkOption[] {})) {
// empty