View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
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  // CHECKSTYLE:OFF Test code
32  public class OrFileFilterTest extends BaseFilterTest {
33  
34      /**
35       * Just a filter class.
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          // Empty
52          assertFalse(new OrFileFilter().accept(any));
53  
54          // True
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          // False
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          // PREPARE
69          final FileFilter filter1 = new DummyFilter();
70          final FileFilter filter2 = new DummyFilter();
71          final FileFilter filter3 = new DummyFilter();
72  
73          // TEST
74          final OrFileFilter testee = new OrFileFilter();
75          testee.addFileFilter(filter1);
76          testee.addFileFilter(filter2);
77          testee.addFileFilter(filter3);
78  
79          // VERIFY
80          assertContainsOnly(testee.getFileFilters(), filter1, filter2, filter3);
81      }
82  
83      @Test
84      public void testOrFileFilterFileFilter() {
85  
86          // PREPARE
87          final FileFilter filter1 = new DummyFilter();
88          final FileFilter filter2 = new DummyFilter();
89          final FileFilter filter3 = new DummyFilter();
90  
91          // TEST
92          final OrFileFilter testee = new OrFileFilter(filter1, filter2, filter3);
93  
94          // VERIFY
95          assertContainsOnly(testee.getFileFilters(), filter1, filter2, filter3);
96      }
97  
98      @Test
99      public void testOrFileFilterList() {
100 
101         // PREPARE
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         // TEST
111         final OrFileFilter testee = new OrFileFilter(list);
112 
113         // VERIFY
114         assertContainsOnly(testee.getFileFilters(), filter1, filter2, filter3);
115     }
116 
117     @Test
118     public void testRemoveFileFilter() {
119 
120         // PREPARE
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         // TEST
127         testee.removeFileFilter(filter2);
128 
129         // VERIFY
130         assertContainsOnly(testee.getFileFilters(), filter1, filter3);
131     }
132 
133     @Test
134     public void testSetFileFilters() {
135 
136         // PREPARE
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         // TEST
147         testee.setFileFilters(list);
148 
149         // VERIFY
150         assertContainsOnly(testee.getFileFilters(), filter1, filter2, filter3);
151     }
152 
153 }
154 // CHECKSTYLE:ON