1 package org.apache.maven.artifact.resolver.filter;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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 }