garydgregory commented on code in PR #450:
URL: https://github.com/apache/commons-io/pull/450#discussion_r1171206899
##########
src/test/java/org/apache/commons/io/filefilter/SymbolicLinkFileFilterTest.java:
##########
@@ -17,21 +17,198 @@
package org.apache.commons.io.filefilter;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
+import java.io.File;
+import java.io.IOException;
import java.nio.file.FileVisitResult;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.function.BiFunction;
import org.apache.commons.io.file.PathUtils;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
/**
* Tests {@link SymbolicLinkFileFilter}.
*/
public class SymbolicLinkFileFilterTest {
+ public static final String TARGET_SHORT_NAME = "SLFF_Target";
+ public static final String TARGET_EXT = ".txt";
+ public static final String TARGET_NAME = TARGET_SHORT_NAME + TARGET_EXT;
+ public static final String DIRECTORY_NAME = "SLFF_TargetDirectory";
+ public static final String DIRECTORY_LINK_NAME = "SLFF_LinkDirectory";
+ public static final String MISSING = "Missing";
+ private static File testTargetFile; // hard file
+ private static Path testTargetPath; // hard file Path
+ private static File parentDirectoryFile; // System Temp directory
+ private static File testLinkFile; // symbolic link to hard file
+ private static String linkName; // Name of link file
+ private static Path testLinkPath; // symbolic link to hard file
Path
+ private static File targetDirFile; //
+ private static Path targetDirPath; // hard directory Path
+ private static Path testLinkDirPath; // symbolic link to
hardDirectory
+ private static File testLinkDirFile;
+ private static File missingFile; // non-existent file
+ private static SymbolicLinkFileFilter filter;
+
+ private static Path createRealSymbolicLink(Path link, Path target) {
+ try {
+ if (Files.exists(link)) {
+ Files.delete(link);
+ }
+ return Files.createSymbolicLink(link, target);
+ } catch (IOException e) {
+ throw new IllegalStateException("Failure to create Symbolic Link",
e);
Review Comment:
Let the exception percolate up.
##########
src/test/java/org/apache/commons/io/filefilter/SymbolicLinkFileFilterTest.java:
##########
@@ -17,21 +17,198 @@
package org.apache.commons.io.filefilter;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
+import java.io.File;
+import java.io.IOException;
import java.nio.file.FileVisitResult;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.function.BiFunction;
import org.apache.commons.io.file.PathUtils;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
/**
* Tests {@link SymbolicLinkFileFilter}.
*/
public class SymbolicLinkFileFilterTest {
+ public static final String TARGET_SHORT_NAME = "SLFF_Target";
+ public static final String TARGET_EXT = ".txt";
+ public static final String TARGET_NAME = TARGET_SHORT_NAME + TARGET_EXT;
+ public static final String DIRECTORY_NAME = "SLFF_TargetDirectory";
+ public static final String DIRECTORY_LINK_NAME = "SLFF_LinkDirectory";
+ public static final String MISSING = "Missing";
+ private static File testTargetFile; // hard file
+ private static Path testTargetPath; // hard file Path
+ private static File parentDirectoryFile; // System Temp directory
+ private static File testLinkFile; // symbolic link to hard file
+ private static String linkName; // Name of link file
+ private static Path testLinkPath; // symbolic link to hard file
Path
+ private static File targetDirFile; //
+ private static Path targetDirPath; // hard directory Path
+ private static Path testLinkDirPath; // symbolic link to
hardDirectory
+ private static File testLinkDirFile;
+ private static File missingFile; // non-existent file
+ private static SymbolicLinkFileFilter filter;
+
+ private static Path createRealSymbolicLink(Path link, Path target) {
+ try {
+ if (Files.exists(link)) {
+ Files.delete(link);
+ }
+ return Files.createSymbolicLink(link, target);
+ } catch (IOException e) {
+ throw new IllegalStateException("Failure to create Symbolic Link",
e);
+ }
+ }
+
+ private static Path createMockSymbolicLink(Path lnk, Path tgt) {
+ try {
+ return Files.createFile(lnk);
+ } catch (IOException e) {
+ throw new IllegalStateException("Failure to create Symbolic Link",
e);
Review Comment:
Let the exception percolate up.
##########
src/test/java/org/apache/commons/io/filefilter/SymbolicLinkFileFilterTest.java:
##########
@@ -17,21 +17,198 @@
package org.apache.commons.io.filefilter;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
+import java.io.File;
+import java.io.IOException;
import java.nio.file.FileVisitResult;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.function.BiFunction;
import org.apache.commons.io.file.PathUtils;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
/**
* Tests {@link SymbolicLinkFileFilter}.
*/
public class SymbolicLinkFileFilterTest {
+ public static final String TARGET_SHORT_NAME = "SLFF_Target";
+ public static final String TARGET_EXT = ".txt";
+ public static final String TARGET_NAME = TARGET_SHORT_NAME + TARGET_EXT;
+ public static final String DIRECTORY_NAME = "SLFF_TargetDirectory";
+ public static final String DIRECTORY_LINK_NAME = "SLFF_LinkDirectory";
+ public static final String MISSING = "Missing";
+ private static File testTargetFile; // hard file
+ private static Path testTargetPath; // hard file Path
+ private static File parentDirectoryFile; // System Temp directory
+ private static File testLinkFile; // symbolic link to hard file
+ private static String linkName; // Name of link file
+ private static Path testLinkPath; // symbolic link to hard file
Path
+ private static File targetDirFile; //
+ private static Path targetDirPath; // hard directory Path
+ private static Path testLinkDirPath; // symbolic link to
hardDirectory
+ private static File testLinkDirFile;
+ private static File missingFile; // non-existent file
+ private static SymbolicLinkFileFilter filter;
+
+ private static Path createRealSymbolicLink(Path link, Path target) {
+ try {
+ if (Files.exists(link)) {
+ Files.delete(link);
+ }
+ return Files.createSymbolicLink(link, target);
+ } catch (IOException e) {
+ throw new IllegalStateException("Failure to create Symbolic Link",
e);
+ }
+ }
+
+ private static Path createMockSymbolicLink(Path lnk, Path tgt) {
+ try {
+ return Files.createFile(lnk);
+ } catch (IOException e) {
+ throw new IllegalStateException("Failure to create Symbolic Link",
e);
+ }
+ }
+
+ // Mock filter for testing on Windows.
+ private static SymbolicLinkFileFilter createMockFilter() {
+ return new SymbolicLinkFileFilter() {
+ @Override
+ boolean isSymbolicLink(final Path filePath) {
+ return filePath.toFile().exists() &&
filePath.toString().contains("Link"); // Mock test
+ }
+ };
+ }
+
+ /**
+ * <p>Unit test setup creates a hard file, a symbolic link to the hard
file, a hard directory,
+ * and a symbolic link to that directory. All are created in the temp
directory</p>
+ * <p>Unit test teardown deletes all four of these files.</p>
+ *
+ * @throws IOException If it fails to create the temporary files
+ */
+ @BeforeAll
+ static void testSetup() throws IOException {
+ final BiFunction<Path, Path, Path> symbolicLinkCreator;
+
+ // We can't create symbolic links on Windows without admin privileges,
+ // so iff that's our OS, we mock them.
+ final String os = System.getProperty("os.name");
+ if (os.toLowerCase().contains("windows")) {
Review Comment:
Reuse `org.apache.commons.lang3.SystemUtils.IS_OS_WINDOWS`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]