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 OrDependencyFilterTest extends AbstractDependencyFilterTest {
33  
34      @Test
35      public void acceptTest() {
36          NodeBuilder builder = new NodeBuilder();
37          builder.artifactId("test");
38          List<DependencyNode> parents = new LinkedList<>();
39          // Empty OR
40          assertFalse(new OrDependencyFilter().accept(builder.build(), parents));
41  
42          // Basic Boolean Input
43          assertTrue(new OrDependencyFilter(getAcceptFilter()).accept(builder.build(), parents));
44          assertFalse(new OrDependencyFilter(getDenyFilter()).accept(builder.build(), parents));
45  
46          assertFalse(new OrDependencyFilter(getDenyFilter(), getDenyFilter()).accept(builder.build(), parents));
47          assertTrue(new OrDependencyFilter(getDenyFilter(), getAcceptFilter()).accept(builder.build(), parents));
48          assertTrue(new OrDependencyFilter(getAcceptFilter(), getDenyFilter()).accept(builder.build(), parents));
49          assertTrue(new OrDependencyFilter(getAcceptFilter(), getAcceptFilter()).accept(builder.build(), parents));
50  
51          assertFalse(new OrDependencyFilter(getDenyFilter(), getDenyFilter(), getDenyFilter())
52                  .accept(builder.build(), parents));
53          assertTrue(new OrDependencyFilter(getAcceptFilter(), getDenyFilter(), getDenyFilter())
54                  .accept(builder.build(), parents));
55          assertTrue(new OrDependencyFilter(getAcceptFilter(), getAcceptFilter(), getDenyFilter())
56                  .accept(builder.build(), parents));
57          assertTrue(new OrDependencyFilter(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          assertTrue(new OrDependencyFilter(filters).accept(builder.build(), parents));
65  
66          filters = new LinkedList<>();
67          filters.add(getDenyFilter());
68          filters.add(getDenyFilter());
69          assertFalse(new OrDependencyFilter(filters).accept(builder.build(), parents));
70  
71          // newInstance
72          assertTrue(AndDependencyFilter.newInstance(getAcceptFilter(), getAcceptFilter())
73                  .accept(builder.build(), parents));
74          assertFalse(AndDependencyFilter.newInstance(getAcceptFilter(), getDenyFilter())
75                  .accept(builder.build(), parents));
76          assertTrue(AndDependencyFilter.newInstance(getAcceptFilter(), null).accept(builder.build(), parents));
77          assertFalse(AndDependencyFilter.newInstance(getDenyFilter(), null).accept(builder.build(), parents));
78          assertNull(AndDependencyFilter.newInstance(null, null));
79      }
80  }