View Javadoc
1   package org.apache.maven.artifact.resolver.filter;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *  http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import org.apache.maven.artifact.Artifact;
23  import org.apache.maven.model.Exclusion;
24  import org.junit.Before;
25  import org.junit.Test;
26  
27  import java.util.Arrays;
28  import java.util.Collections;
29  
30  import static org.hamcrest.CoreMatchers.is;
31  import static org.junit.Assert.assertThat;
32  import static org.mockito.Mockito.mock;
33  import static org.mockito.Mockito.when;
34  
35  public class ExclusionArtifactFilterTest
36  {
37      private Artifact artifact;
38  
39      @Before
40      public void setup()
41      {
42          artifact = mock( Artifact.class );
43          when( artifact.getGroupId() ).thenReturn( "org.apache.maven" );
44          when( artifact.getArtifactId() ).thenReturn( "maven-core" );
45      }
46  
47      @Test
48      public void testExcludeExact()
49      {
50          Exclusion exclusion = new Exclusion();
51          exclusion.setGroupId( "org.apache.maven" );
52          exclusion.setArtifactId( "maven-core" );
53          ExclusionArtifactFilter filter = new ExclusionArtifactFilter( Collections.singletonList( exclusion ) );
54  
55          assertThat( filter.include( artifact ), is( false ) );
56      }
57  
58      @Test
59      public void testExcludeNoMatch()
60      {
61          Exclusion exclusion = new Exclusion();
62          exclusion.setGroupId( "org.apache.maven" );
63          exclusion.setArtifactId( "maven-model" );
64          ExclusionArtifactFilter filter = new ExclusionArtifactFilter( Collections.singletonList( exclusion ) );
65  
66          assertThat( filter.include( artifact ), is( true ) );
67      }
68  
69      @Test
70      public void testExcludeGroupIdWildcard()
71      {
72          Exclusion exclusion = new Exclusion();
73          exclusion.setGroupId( "*" );
74          exclusion.setArtifactId( "maven-core" );
75          ExclusionArtifactFilter filter = new ExclusionArtifactFilter( Collections.singletonList( exclusion ) );
76  
77          assertThat( filter.include( artifact ), is( false ) );
78      }
79  
80  
81      @Test
82      public void testExcludeGroupIdWildcardNoMatch()
83      {
84          Exclusion exclusion = new Exclusion();
85          exclusion.setGroupId( "*" );
86          exclusion.setArtifactId( "maven-compat" );
87          ExclusionArtifactFilter filter = new ExclusionArtifactFilter( Collections.singletonList( exclusion ) );
88  
89          assertThat( filter.include( artifact ), is( true ) );
90      }
91  
92      @Test
93      public void testExcludeArtifactIdWildcard()
94      {
95          Exclusion exclusion = new Exclusion();
96          exclusion.setGroupId( "org.apache.maven" );
97          exclusion.setArtifactId( "*" );
98          ExclusionArtifactFilter filter = new ExclusionArtifactFilter( Collections.singletonList( exclusion ) );
99  
100         assertThat( filter.include( artifact ), is( false ) );
101     }
102 
103     @Test
104     public void testExcludeArtifactIdWildcardNoMatch()
105     {
106         Exclusion exclusion = new Exclusion();
107         exclusion.setGroupId( "org.apache.groovy" );
108         exclusion.setArtifactId( "*" );
109         ExclusionArtifactFilter filter = new ExclusionArtifactFilter( Collections.singletonList( exclusion ) );
110 
111         assertThat( filter.include( artifact ), is( true ) );
112     }
113 
114     @Test
115     public void testExcludeAllWildcard()
116     {
117         Exclusion exclusion = new Exclusion();
118         exclusion.setGroupId( "*" );
119         exclusion.setArtifactId( "*" );
120         ExclusionArtifactFilter filter = new ExclusionArtifactFilter( Collections.singletonList( exclusion ) );
121 
122         assertThat( filter.include( artifact ), is( false ) );
123     }
124     
125     @Test
126     public void testMultipleExclusionsExcludeArtifactIdWildcard()
127     {
128         Exclusion exclusion1 = new Exclusion();
129         exclusion1.setGroupId( "org.apache.groovy" );
130         exclusion1.setArtifactId( "*" );
131         
132         Exclusion exclusion2 = new Exclusion();
133         exclusion2.setGroupId( "org.apache.maven" );
134         exclusion2.setArtifactId( "maven-core" );
135         
136         ExclusionArtifactFilter filter = new ExclusionArtifactFilter( Arrays.asList( exclusion1, exclusion2 ) );
137         
138         assertThat( filter.include( artifact ), is( false ) );
139     }
140     
141     @Test
142     public void testMultipleExclusionsExcludeGroupIdWildcard()
143     {
144         Exclusion exclusion1 = new Exclusion();
145         exclusion1.setGroupId( "*" );
146         exclusion1.setArtifactId( "maven-model" );
147         
148         Exclusion exclusion2 = new Exclusion();
149         exclusion2.setGroupId( "org.apache.maven" );
150         exclusion2.setArtifactId( "maven-core" );
151         
152         ExclusionArtifactFilter filter = new ExclusionArtifactFilter( Arrays.asList( exclusion1, exclusion2 ) );
153         
154         assertThat( filter.include( artifact ), is( false ) );
155     }
156 }