1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs2.filter;
18
19 import static org.junit.jupiter.api.Assertions.assertFalse;
20 import static org.junit.jupiter.api.Assertions.assertTrue;
21
22 import java.io.File;
23 import java.util.ArrayList;
24 import java.util.List;
25
26 import org.apache.commons.vfs2.FileFilter;
27 import org.apache.commons.vfs2.FileSelectInfo;
28 import org.apache.commons.vfs2.FileSystemException;
29 import org.junit.jupiter.api.Test;
30
31
32 public class OrFileFilterTest extends BaseFilterTest {
33
34
35
36
37 private static class DummyFilter implements FileFilter {
38
39 @Override
40 public boolean accept(final FileSelectInfo fileInfo) {
41 return false;
42 }
43
44 }
45
46 @Test
47 public void testAccept() throws FileSystemException {
48
49 final FileSelectInfo any = createFileSelectInfo(new File("anyfile"));
50
51
52 assertFalse(new OrFileFilter().accept(any));
53
54
55 assertTrue(new OrFileFilter(new AlwaysTrueFileFilter()).accept(any));
56 assertTrue(new OrFileFilter(new AlwaysTrueFileFilter(), new AlwaysTrueFileFilter()).accept(any));
57 assertTrue(new OrFileFilter(new AlwaysFalseFileFilter(), new AlwaysTrueFileFilter()).accept(any));
58 assertTrue(new OrFileFilter(new AlwaysTrueFileFilter(), new AlwaysFalseFileFilter()).accept(any));
59
60
61 assertFalse(new OrFileFilter(new AlwaysFalseFileFilter()).accept(any));
62 assertFalse(new OrFileFilter(new AlwaysFalseFileFilter(), new AlwaysFalseFileFilter()).accept(any));
63 }
64
65 @Test
66 public void testAddFileFilter() {
67
68
69 final FileFilter filter1 = new DummyFilter();
70 final FileFilter filter2 = new DummyFilter();
71 final FileFilter filter3 = new DummyFilter();
72
73
74 final OrFileFilter testee = new OrFileFilter();
75 testee.addFileFilter(filter1);
76 testee.addFileFilter(filter2);
77 testee.addFileFilter(filter3);
78
79
80 assertContainsOnly(testee.getFileFilters(), filter1, filter2, filter3);
81 }
82
83 @Test
84 public void testOrFileFilterFileFilter() {
85
86
87 final FileFilter filter1 = new DummyFilter();
88 final FileFilter filter2 = new DummyFilter();
89 final FileFilter filter3 = new DummyFilter();
90
91
92 final OrFileFilter testee = new OrFileFilter(filter1, filter2, filter3);
93
94
95 assertContainsOnly(testee.getFileFilters(), filter1, filter2, filter3);
96 }
97
98 @Test
99 public void testOrFileFilterList() {
100
101
102 final FileFilter filter1 = new DummyFilter();
103 final FileFilter filter2 = new DummyFilter();
104 final FileFilter filter3 = new DummyFilter();
105 final List<FileFilter> list = new ArrayList<>();
106 list.add(filter1);
107 list.add(filter2);
108 list.add(filter3);
109
110
111 final OrFileFilter testee = new OrFileFilter(list);
112
113
114 assertContainsOnly(testee.getFileFilters(), filter1, filter2, filter3);
115 }
116
117 @Test
118 public void testRemoveFileFilter() {
119
120
121 final FileFilter filter1 = new DummyFilter();
122 final FileFilter filter2 = new DummyFilter();
123 final FileFilter filter3 = new DummyFilter();
124 final OrFileFilter testee = new OrFileFilter(filter1, filter2, filter3);
125
126
127 testee.removeFileFilter(filter2);
128
129
130 assertContainsOnly(testee.getFileFilters(), filter1, filter3);
131 }
132
133 @Test
134 public void testSetFileFilters() {
135
136
137 final FileFilter filter1 = new DummyFilter();
138 final FileFilter filter2 = new DummyFilter();
139 final FileFilter filter3 = new DummyFilter();
140 final List<FileFilter> list = new ArrayList<>();
141 list.add(filter1);
142 list.add(filter2);
143 list.add(filter3);
144 final OrFileFilter testee = new OrFileFilter();
145
146
147 testee.setFileFilters(list);
148
149
150 assertContainsOnly(testee.getFileFilters(), filter1, filter2, filter3);
151 }
152
153 }
154