[GitHub] [commons-io] SwingGuy1024 commented on a diff in pull request #450: IO-790 Fix symbolic link file filter

2023-04-19 Thread via GitHub


SwingGuy1024 commented on code in PR #450:
URL: https://github.com/apache/commons-io/pull/450#discussion_r1171835409


##
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;

Review Comment:
   Done. CheckStyles doesn't have a test for this? (I'm not too familiar with 
CheckStyles anymore. It's been years.)



-- 
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: issues-unsubscr...@commons.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[GitHub] [commons-io] SwingGuy1024 commented on a diff in pull request #450: IO-790 Fix symbolic link file filter

2023-04-19 Thread via GitHub


SwingGuy1024 commented on code in PR #450:
URL: https://github.com/apache/commons-io/pull/450#discussion_r1171833260


##
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
+}
+};
+}
+
+/**
+ * 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
+ * Unit test teardown deletes all four of these files.
+ *
+ * @throws IOException If it fails to create the temporary files
+ */
+@BeforeAll
+static void testSetup() throws IOException {
+final BiFunction 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:
   Done. This is an improvement. Thanks.



-- 
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: issues-unsubscr...@commons.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[GitHub] [commons-io] SwingGuy1024 commented on a diff in pull request #450: IO-790 Fix symbolic link file filter

2023-04-19 Thread via GitHub


SwingGuy1024 commented on code in PR #450:
URL: https://github.com/apache/commons-io/pull/450#discussion_r1171832585


##
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) {

Review Comment:
   Done.



-- 
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: issues-unsubscr...@commons.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[GitHub] [commons-io] SwingGuy1024 commented on a diff in pull request #450: IO-790 Fix symbolic link file filter

2023-04-19 Thread via GitHub


SwingGuy1024 commented on code in PR #450:
URL: https://github.com/apache/commons-io/pull/450#discussion_r1171832215


##
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)) {

Review Comment:
   Because I'm new to the Files API. :) I changed it.



-- 
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: issues-unsubscr...@commons.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[GitHub] [commons-io] SwingGuy1024 commented on a diff in pull request #450: IO-790 Fix symbolic link file filter

2023-04-19 Thread via GitHub


SwingGuy1024 commented on code in PR #450:
URL: https://github.com/apache/commons-io/pull/450#discussion_r1171826362


##
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:
   Done.



##
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