FileUtil.java 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package de.jplag.testutils;
  2. import static org.junit.jupiter.api.Assertions.assertArrayEquals;
  3. import static org.junit.jupiter.api.Assertions.assertTrue;
  4. import java.io.File;
  5. import java.util.Arrays;
  6. /**
  7. * Test utility regarding files and directories.
  8. */
  9. public final class FileUtil {
  10. private static final String CONTENT_NOT_FOUND = "Directory contents not as expected";
  11. private static final String DIRECTORY_NOT_FOUND = "Could not find directory: ";
  12. private FileUtil() {
  13. // private constructor to prevent instantiation
  14. }
  15. /**
  16. * Checks if a directory exists and contains the expected files.
  17. * @param directory is the directory to check.
  18. * @param expectedFilesSorted is the sorted list (a to z) of expected file names.
  19. */
  20. public static void assertDirectory(File directory, String[] expectedFilesSorted) {
  21. assertTrue(directory.exists(), DIRECTORY_NOT_FOUND + directory);
  22. String[] filesInDirectory = directory.list();
  23. Arrays.sort(filesInDirectory);
  24. assertArrayEquals(expectedFilesSorted, filesInDirectory, CONTENT_NOT_FOUND);
  25. }
  26. /**
  27. * Clears all files from a directory that whose names end in a certain suffix.
  28. * @param directory is the target directory.
  29. * @param suffix is the file suffix of the files to clear.
  30. */
  31. public static void clearFiles(File directory, String suffix) {
  32. Arrays.stream(directory.listFiles()).filter(file -> file.getName().endsWith(suffix)).forEach(File::delete);
  33. }
  34. }