diff --git a/core-java-io/src/test/java/com/baeldung/file/FilenameFilterManualTest.java b/core-java-io/src/test/java/com/baeldung/file/FilenameFilterManualTest.java new file mode 100644 index 0000000000..47a7973b34 --- /dev/null +++ b/core-java-io/src/test/java/com/baeldung/file/FilenameFilterManualTest.java @@ -0,0 +1,48 @@ +package com.baeldung.file; + +import java.io.File; +import java.io.FilenameFilter; +import java.util.Arrays; +import java.util.List; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +public class FilenameFilterManualTest { + + private static File directory; + + @BeforeClass + public static void setupClass() { + directory = new File(FilenameFilterManualTest.class.getClassLoader() + .getResource("testFolder") + .getFile()); + } + + @Test + public void whenFilteringFilesEndingWithJson_thenEqualExpectedFiles() { + FilenameFilter filter = (dir, name) -> name.endsWith(".json"); + + String[] expectedFiles = { "people.json", "students.json" }; + String[] actualFiles = directory.list(filter); + + Assert.assertArrayEquals(expectedFiles, actualFiles); + } + + @Test + public void whenFilteringFilesEndingWithXml_thenEqualExpectedFiles() { + Predicate predicate = (name) -> name.endsWith(".xml"); + + String[] expectedFiles = { "teachers.xml", "workers.xml" }; + List files = Arrays.stream(directory.list()) + .filter(predicate) + .collect(Collectors.toList()); + String[] actualFiles = files.toArray(new String[files.size()]); + + Assert.assertArrayEquals(expectedFiles, actualFiles); + } + +} diff --git a/core-java-io/src/test/resources/testFolder/people.json b/core-java-io/src/test/resources/testFolder/people.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/core-java-io/src/test/resources/testFolder/people.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/core-java-io/src/test/resources/testFolder/students.json b/core-java-io/src/test/resources/testFolder/students.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/core-java-io/src/test/resources/testFolder/students.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/core-java-io/src/test/resources/testFolder/teachers.xml b/core-java-io/src/test/resources/testFolder/teachers.xml new file mode 100644 index 0000000000..19b16cc72c --- /dev/null +++ b/core-java-io/src/test/resources/testFolder/teachers.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/core-java-io/src/test/resources/testFolder/workers.xml b/core-java-io/src/test/resources/testFolder/workers.xml new file mode 100644 index 0000000000..19b16cc72c --- /dev/null +++ b/core-java-io/src/test/resources/testFolder/workers.xml @@ -0,0 +1 @@ + \ No newline at end of file