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.Collections;
22  import java.util.List;
23  
24  import org.eclipse.aether.graph.DependencyFilter;
25  import org.eclipse.aether.graph.DependencyNode;
26  import org.eclipse.aether.internal.test.util.NodeBuilder;
27  import org.junit.Test;
28  
29  import static org.junit.Assert.*;
30  
31  /**
32   */
33  public class DependencyFilterUtilsTest {
34  
35      private static List<DependencyNode> PARENTS = Collections.emptyList();
36  
37      @Test
38      public void testClasspathFilterCompile() {
39          NodeBuilder builder = new NodeBuilder().artifactId("aid");
40          DependencyFilter filter = DependencyFilterUtils.classpathFilter("compile");
41  
42          assertTrue(filter.accept(builder.scope("compile").build(), PARENTS));
43          assertTrue(filter.accept(builder.scope("system").build(), PARENTS));
44          assertTrue(filter.accept(builder.scope("provided").build(), PARENTS));
45          assertFalse(filter.accept(builder.scope("runtime").build(), PARENTS));
46          assertFalse(filter.accept(builder.scope("test").build(), PARENTS));
47      }
48  
49      @Test
50      public void testClasspathFilterRuntime() {
51          NodeBuilder builder = new NodeBuilder().artifactId("aid");
52          DependencyFilter filter = DependencyFilterUtils.classpathFilter("runtime");
53  
54          assertTrue(filter.accept(builder.scope("compile").build(), PARENTS));
55          assertFalse(filter.accept(builder.scope("system").build(), PARENTS));
56          assertFalse(filter.accept(builder.scope("provided").build(), PARENTS));
57          assertTrue(filter.accept(builder.scope("runtime").build(), PARENTS));
58          assertFalse(filter.accept(builder.scope("test").build(), PARENTS));
59      }
60  
61      @Test
62      public void testClasspathFilterTest() {
63          NodeBuilder builder = new NodeBuilder().artifactId("aid");
64          DependencyFilter filter = DependencyFilterUtils.classpathFilter("test");
65  
66          assertTrue(filter.accept(builder.scope("compile").build(), PARENTS));
67          assertTrue(filter.accept(builder.scope("system").build(), PARENTS));
68          assertTrue(filter.accept(builder.scope("provided").build(), PARENTS));
69          assertTrue(filter.accept(builder.scope("runtime").build(), PARENTS));
70          assertTrue(filter.accept(builder.scope("test").build(), PARENTS));
71      }
72  
73      @Test
74      public void testClasspathFilterCompileRuntime() {
75          NodeBuilder builder = new NodeBuilder().artifactId("aid");
76          DependencyFilter filter = DependencyFilterUtils.classpathFilter("compile", "runtime");
77  
78          assertTrue(filter.accept(builder.scope("compile").build(), PARENTS));
79          assertTrue(filter.accept(builder.scope("system").build(), PARENTS));
80          assertTrue(filter.accept(builder.scope("provided").build(), PARENTS));
81          assertTrue(filter.accept(builder.scope("runtime").build(), PARENTS));
82          assertFalse(filter.accept(builder.scope("test").build(), PARENTS));
83      }
84  
85      @Test
86      public void testClasspathFilterCompilePlusRuntime() {
87          NodeBuilder builder = new NodeBuilder().artifactId("aid");
88          DependencyFilter filter = DependencyFilterUtils.classpathFilter("compile+runtime");
89  
90          assertTrue(filter.accept(builder.scope("compile").build(), PARENTS));
91          assertTrue(filter.accept(builder.scope("system").build(), PARENTS));
92          assertTrue(filter.accept(builder.scope("provided").build(), PARENTS));
93          assertTrue(filter.accept(builder.scope("runtime").build(), PARENTS));
94          assertFalse(filter.accept(builder.scope("test").build(), PARENTS));
95      }
96  
97      @Test
98      public void testClasspathFilterRuntimeCommaSystem() {
99          NodeBuilder builder = new NodeBuilder().artifactId("aid");
100         DependencyFilter filter = DependencyFilterUtils.classpathFilter("runtime,system");
101 
102         assertTrue(filter.accept(builder.scope("compile").build(), PARENTS));
103         assertTrue(filter.accept(builder.scope("system").build(), PARENTS));
104         assertFalse(filter.accept(builder.scope("provided").build(), PARENTS));
105         assertTrue(filter.accept(builder.scope("runtime").build(), PARENTS));
106         assertFalse(filter.accept(builder.scope("test").build(), PARENTS));
107     }
108 
109     @Test
110     public void testClasspathFilterNull() {
111         NodeBuilder builder = new NodeBuilder().artifactId("aid");
112         DependencyFilter filter = DependencyFilterUtils.classpathFilter((String[]) null);
113 
114         assertFalse(filter.accept(builder.scope("compile").build(), PARENTS));
115         assertFalse(filter.accept(builder.scope("system").build(), PARENTS));
116         assertFalse(filter.accept(builder.scope("provided").build(), PARENTS));
117         assertFalse(filter.accept(builder.scope("runtime").build(), PARENTS));
118         assertFalse(filter.accept(builder.scope("test").build(), PARENTS));
119     }
120 
121     @Test
122     public void testClasspathFilterUnknownScope() {
123         NodeBuilder builder = new NodeBuilder().artifactId("aid");
124         DependencyFilter filter = DependencyFilterUtils.classpathFilter("compile");
125 
126         assertTrue(filter.accept(builder.scope("").build(), PARENTS));
127         assertTrue(filter.accept(builder.scope("unknown").build(), PARENTS));
128     }
129 }