1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.io.file;
19
20 import static org.junit.jupiter.api.Assertions.assertEquals;
21 import static org.junit.jupiter.api.Assertions.assertFalse;
22 import static org.junit.jupiter.api.Assertions.assertNotEquals;
23
24 import java.nio.file.DirectoryStream;
25 import java.nio.file.Files;
26 import java.nio.file.Path;
27 import java.util.Iterator;
28
29 import org.apache.commons.io.filefilter.NameFileFilter;
30 import org.junit.jupiter.api.Test;
31
32
33
34
35 public class DirectoryStreamFilterTest {
36
37 private static final String PATH_FIXTURE = "NOTICE.txt";
38
39 @Test
40 public void testFilterByName() throws Exception {
41 final PathFilter pathFilter = new NameFileFilter(PATH_FIXTURE);
42 final DirectoryStreamFilter streamFilter = new DirectoryStreamFilter(pathFilter);
43 assertEquals(pathFilter, streamFilter.getPathFilter());
44 try (DirectoryStream<Path> stream = Files.newDirectoryStream(PathUtils.current(), streamFilter)) {
45 final Iterator<Path> iterator = stream.iterator();
46 final Path path = iterator.next();
47 assertEquals(PATH_FIXTURE, PathUtils.getFileNameString(path));
48 assertFalse(iterator.hasNext());
49 }
50 }
51
52 @Test
53 public void testFilterByNameNot() throws Exception {
54 final PathFilter pathFilter = new NameFileFilter(PATH_FIXTURE).negate();
55 final DirectoryStreamFilter streamFilter = new DirectoryStreamFilter(pathFilter);
56 assertEquals(pathFilter, streamFilter.getPathFilter());
57 try (DirectoryStream<Path> stream = Files.newDirectoryStream(PathUtils.current(), streamFilter)) {
58 stream.forEach(path -> assertNotEquals(PATH_FIXTURE, PathUtils.getFileNameString(path)));
59 }
60 }
61
62 }