1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.artifact.resolver.filter;
20
21 import java.util.Arrays;
22 import java.util.Collections;
23
24 import org.apache.maven.artifact.Artifact;
25 import org.apache.maven.model.Exclusion;
26 import org.junit.jupiter.api.BeforeEach;
27 import org.junit.jupiter.api.Test;
28
29 import static org.hamcrest.CoreMatchers.is;
30 import static org.hamcrest.MatcherAssert.assertThat;
31 import static org.mockito.Mockito.mock;
32 import static org.mockito.Mockito.when;
33
34 class ExclusionArtifactFilterTest {
35 private Artifact artifact;
36 private Artifact artifact2;
37
38 @BeforeEach
39 void setup() {
40 artifact = mock(Artifact.class);
41 when(artifact.getGroupId()).thenReturn("org.apache.maven");
42 when(artifact.getArtifactId()).thenReturn("maven-core");
43
44 artifact2 = mock(Artifact.class);
45 when(artifact2.getGroupId()).thenReturn("org.junit.jupiter");
46 when(artifact2.getArtifactId()).thenReturn("junit-jupiter-engine");
47 }
48
49 @Test
50 void testExcludeExact() {
51 Exclusion exclusion = new Exclusion();
52 exclusion.setGroupId("org.apache.maven");
53 exclusion.setArtifactId("maven-core");
54 ExclusionArtifactFilter filter = new ExclusionArtifactFilter(Collections.singletonList(exclusion));
55
56 assertThat(filter.include(artifact), is(false));
57 }
58
59 @Test
60 void testExcludeNoMatch() {
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 void testExcludeGroupIdWildcard() {
71 Exclusion exclusion = new Exclusion();
72 exclusion.setGroupId("*");
73 exclusion.setArtifactId("maven-core");
74 ExclusionArtifactFilter filter = new ExclusionArtifactFilter(Collections.singletonList(exclusion));
75
76 assertThat(filter.include(artifact), is(false));
77 }
78
79 @Test
80 void testExcludeGroupIdWildcardNoMatch() {
81 Exclusion exclusion = new Exclusion();
82 exclusion.setGroupId("*");
83 exclusion.setArtifactId("maven-compat");
84 ExclusionArtifactFilter filter = new ExclusionArtifactFilter(Collections.singletonList(exclusion));
85
86 assertThat(filter.include(artifact), is(true));
87 }
88
89 @Test
90 void testExcludeArtifactIdWildcard() {
91 Exclusion exclusion = new Exclusion();
92 exclusion.setGroupId("org.apache.maven");
93 exclusion.setArtifactId("*");
94 ExclusionArtifactFilter filter = new ExclusionArtifactFilter(Collections.singletonList(exclusion));
95
96 assertThat(filter.include(artifact), is(false));
97 }
98
99 @Test
100 void testExcludeArtifactIdWildcardNoMatch() {
101 Exclusion exclusion = new Exclusion();
102 exclusion.setGroupId("org.apache.groovy");
103 exclusion.setArtifactId("*");
104 ExclusionArtifactFilter filter = new ExclusionArtifactFilter(Collections.singletonList(exclusion));
105
106 assertThat(filter.include(artifact), is(true));
107 }
108
109 @Test
110 void testExcludeAllWildcard() {
111 Exclusion exclusion = new Exclusion();
112 exclusion.setGroupId("*");
113 exclusion.setArtifactId("*");
114 ExclusionArtifactFilter filter = new ExclusionArtifactFilter(Collections.singletonList(exclusion));
115
116 assertThat(filter.include(artifact), is(false));
117 }
118
119 @Test
120 void testMultipleExclusionsExcludeArtifactIdWildcard() {
121 Exclusion exclusion1 = new Exclusion();
122 exclusion1.setGroupId("org.apache.groovy");
123 exclusion1.setArtifactId("*");
124
125 Exclusion exclusion2 = new Exclusion();
126 exclusion2.setGroupId("org.apache.maven");
127 exclusion2.setArtifactId("maven-core");
128
129 ExclusionArtifactFilter filter = new ExclusionArtifactFilter(Arrays.asList(exclusion1, exclusion2));
130
131 assertThat(filter.include(artifact), is(false));
132 }
133
134 @Test
135 void testMultipleExclusionsExcludeGroupIdWildcard() {
136 Exclusion exclusion1 = new Exclusion();
137 exclusion1.setGroupId("*");
138 exclusion1.setArtifactId("maven-model");
139
140 Exclusion exclusion2 = new Exclusion();
141 exclusion2.setGroupId("org.apache.maven");
142 exclusion2.setArtifactId("maven-core");
143
144 ExclusionArtifactFilter filter = new ExclusionArtifactFilter(Arrays.asList(exclusion1, exclusion2));
145
146 assertThat(filter.include(artifact), is(false));
147 }
148
149 @Test
150 void testExcludeWithGlob() {
151 Exclusion exclusion = new Exclusion();
152 exclusion.setGroupId("*");
153 exclusion.setArtifactId("maven-*");
154 ExclusionArtifactFilter filter = new ExclusionArtifactFilter(Collections.singletonList(exclusion));
155
156 assertThat(filter.include(artifact), is(false));
157 assertThat(filter.include(artifact2), is(true));
158 }
159
160 @Test
161 void testExcludeWithGlobStar() {
162 Exclusion exclusion = new Exclusion();
163 exclusion.setGroupId("**");
164 exclusion.setArtifactId("maven-**");
165 ExclusionArtifactFilter filter = new ExclusionArtifactFilter(Collections.singletonList(exclusion));
166
167 assertThat(filter.include(artifact), is(false));
168 assertThat(filter.include(artifact2), is(true));
169 }
170 }