View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.eclipse.aether.util.filter;
20  
21  import java.util.Collection;
22  import java.util.LinkedList;
23  import java.util.List;
24  
25  import org.eclipse.aether.graph.DependencyFilter;
26  import org.eclipse.aether.graph.DependencyNode;
27  import org.eclipse.aether.internal.test.util.NodeBuilder;
28  import org.junit.Test;
29  
30  import static org.junit.Assert.*;
31  
32  public class AndDependencyFilterTest extends AbstractDependencyFilterTest {
33      @Test
34      public void acceptTest() {
35          NodeBuilder builder = new NodeBuilder();
36          builder.artifactId("test");
37          List<DependencyNode> parents = new LinkedList<>();
38  
39          // Empty AND
40          assertTrue(new AndDependencyFilter().accept(builder.build(), parents));
41  
42          // Basic Boolean Input
43          assertTrue(new AndDependencyFilter(getAcceptFilter()).accept(builder.build(), parents));
44          assertFalse(new AndDependencyFilter(getDenyFilter()).accept(builder.build(), parents));
45  
46          assertFalse(new AndDependencyFilter(getDenyFilter(), getDenyFilter()).accept(builder.build(), parents));
47          assertFalse(new AndDependencyFilter(getDenyFilter(), getAcceptFilter()).accept(builder.build(), parents));
48          assertFalse(new AndDependencyFilter(getAcceptFilter(), getDenyFilter()).accept(builder.build(), parents));
49          assertTrue(new AndDependencyFilter(getAcceptFilter(), getAcceptFilter()).accept(builder.build(), parents));
50  
51          assertFalse(new AndDependencyFilter(getDenyFilter(), getDenyFilter(), getDenyFilter())
52                  .accept(builder.build(), parents));
53          assertFalse(new AndDependencyFilter(getAcceptFilter(), getDenyFilter(), getDenyFilter())
54                  .accept(builder.build(), parents));
55          assertFalse(new AndDependencyFilter(getAcceptFilter(), getAcceptFilter(), getDenyFilter())
56                  .accept(builder.build(), parents));
57          assertTrue(new AndDependencyFilter(getAcceptFilter(), getAcceptFilter(), getAcceptFilter())
58                  .accept(builder.build(), parents));
59  
60          // User another constructor
61          Collection<DependencyFilter> filters = new LinkedList<>();
62          filters.add(getDenyFilter());
63          filters.add(getAcceptFilter());
64          assertFalse(new AndDependencyFilter(filters).accept(builder.build(), parents));
65  
66          filters = new LinkedList<>();
67          filters.add(getDenyFilter());
68          filters.add(getDenyFilter());
69          assertFalse(new AndDependencyFilter(filters).accept(builder.build(), parents));
70  
71          filters = new LinkedList<>();
72          filters.add(getAcceptFilter());
73          filters.add(getAcceptFilter());
74          assertTrue(new AndDependencyFilter(filters).accept(builder.build(), parents));
75  
76          // newInstance
77          assertTrue(AndDependencyFilter.newInstance(getAcceptFilter(), getAcceptFilter())
78                  .accept(builder.build(), parents));
79          assertFalse(AndDependencyFilter.newInstance(getAcceptFilter(), getDenyFilter())
80                  .accept(builder.build(), parents));
81  
82          assertFalse(AndDependencyFilter.newInstance(getDenyFilter(), null).accept(builder.build(), parents));
83          assertTrue(AndDependencyFilter.newInstance(getAcceptFilter(), null).accept(builder.build(), parents));
84          assertNull(AndDependencyFilter.newInstance(null, null));
85      }
86  }