1 package org.eclipse.aether.util.filter;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import static org.junit.Assert.*;
23
24 import java.util.LinkedList;
25 import java.util.List;
26
27 import org.eclipse.aether.graph.DependencyNode;
28 import org.eclipse.aether.internal.test.util.NodeBuilder;
29 import org.eclipse.aether.util.filter.PatternExclusionsDependencyFilter;
30 import org.eclipse.aether.util.version.GenericVersionScheme;
31 import org.eclipse.aether.version.VersionScheme;
32 import org.junit.Test;
33
34 public class PatternExclusionsDependencyFilterTest
35 {
36
37 @Test
38 public void acceptTestCornerCases()
39 {
40 NodeBuilder builder = new NodeBuilder();
41 builder.artifactId( "testArtifact" );
42 DependencyNode node = builder.build();
43 List<DependencyNode> parents = new LinkedList<DependencyNode>();
44
45
46 assertTrue( dontAccept( node, "" ) );
47 assertTrue( new PatternExclusionsDependencyFilter( new LinkedList<String>() ).accept( node, parents ) );
48 assertTrue( new PatternExclusionsDependencyFilter( (String[]) null ).accept( node, parents ) );
49 assertTrue( new PatternExclusionsDependencyFilter( (VersionScheme) null, "[1,10]" ).accept( node, parents ) );
50 }
51
52 @Test
53 public void acceptTestMatches()
54 {
55 NodeBuilder builder = new NodeBuilder();
56 builder.groupId( "com.example.test" ).artifactId( "testArtifact" ).ext( "jar" ).version( "1.0.3" );
57 DependencyNode node = builder.build();
58
59
60 assertEquals( "com.example.test:testArtifact:jar:1.0.3", true,
61 dontAccept( node, "com.example.test:testArtifact:jar:1.0.3" ) );
62
63
64 assertEquals( "*:testArtifact:jar:1.0.3", true, dontAccept( node, "*:testArtifact:jar:1.0.3" ) );
65 assertEquals( "com.example.test:*:jar:1.0.3", true, dontAccept( node, "com.example.test:*:jar:1.0.3" ) );
66 assertEquals( "com.example.test:testArtifact:*:1.0.3", true,
67 dontAccept( node, "com.example.test:testArtifact:*:1.0.3" ) );
68 assertEquals( "com.example.test:testArtifact:*:1.0.3", true,
69 dontAccept( node, "com.example.test:testArtifact:*:1.0.3" ) );
70
71
72 assertEquals( ":testArtifact:jar:1.0.3", true, dontAccept( node, ":testArtifact:jar:1.0.3" ) );
73 assertEquals( "com.example.test::jar:1.0.3", true, dontAccept( node, "com.example.test::jar:1.0.3" ) );
74 assertEquals( "com.example.test:testArtifact::1.0.3", true,
75 dontAccept( node, "com.example.test:testArtifact::1.0.3" ) );
76 assertEquals( "com.example.test:testArtifact:jar:", true,
77 dontAccept( node, "com.example.test:testArtifact:jar:" ) );
78
79
80 assertEquals( "*:*:jar:1.0.3", true, dontAccept( node, "*:*:jar:1.0.3" ) );
81 assertEquals( "com.example.test:*:*:1.0.3", true, dontAccept( node, "com.example.test:*:*:1.0.3" ) );
82 assertEquals( "com.example.test:testArtifact:*:*", true, dontAccept( node, "com.example.test:testArtifact:*:*" ) );
83 assertEquals( "*:testArtifact:jar:*", true, dontAccept( node, "*:testArtifact:jar:*" ) );
84 assertEquals( "*:*:jar:*", true, dontAccept( node, "*:*:jar:*" ) );
85 assertEquals( ":*:jar:", true, dontAccept( node, ":*:jar:" ) );
86
87
88 assertEquals( "*.example.test:testArtifact:jar:1.0.3", true,
89 dontAccept( node, "*.example.test:testArtifact:jar:1.0.3" ) );
90 assertEquals( "com.example.test:testArtifact:*ar:1.0.*", true,
91 dontAccept( node, "com.example.test:testArtifact:*ar:1.0.*" ) );
92 assertEquals( "com.example.test:testArtifact:jar:1.0.*", true,
93 dontAccept( node, "com.example.test:testArtifact:jar:1.0.*" ) );
94 assertEquals( "*.example.*:testArtifact:jar:1.0.3", true,
95 dontAccept( node, "*.example.*:testArtifact:jar:1.0.3" ) );
96
97
98 assertEquals( "com.example.test*:testArtifact:jar:1.0.3", true,
99 dontAccept( node, "com.example.test*:testArtifact:jar:1.0.3" ) );
100 }
101
102 @Test
103 public void acceptTestLessToken()
104 {
105 NodeBuilder builder = new NodeBuilder();
106 builder.groupId( "com.example.test" ).artifactId( "testArtifact" ).ext( "jar" ).version( "1.0.3" );
107 DependencyNode node = builder.build();
108
109 assertEquals( "com.example.test:testArtifact:jar", true, dontAccept( node, "com.example.test:testArtifact:jar" ) );
110 assertEquals( "com.example.test:testArtifact", true, dontAccept( node, "com.example.test:testArtifact" ) );
111 assertEquals( "com.example.test", true, dontAccept( node, "com.example.test" ) );
112
113 assertEquals( "com.example.foo", false, dontAccept( node, "com.example.foo" ) );
114 }
115
116 @Test
117 public void acceptTestMissmatch()
118 {
119 NodeBuilder builder = new NodeBuilder();
120 builder.groupId( "com.example.test" ).artifactId( "testArtifact" ).ext( "jar" ).version( "1.0.3" );
121 DependencyNode node = builder.build();
122
123 assertEquals( "OTHER.GROUP.ID:testArtifact:jar:1.0.3", false,
124 dontAccept( node, "OTHER.GROUP.ID:testArtifact:jar:1.0.3" ) );
125 assertEquals( "com.example.test:OTHER_ARTIFACT:jar:1.0.3", false,
126 dontAccept( node, "com.example.test:OTHER_ARTIFACT:jar:1.0.3" ) );
127 assertEquals( "com.example.test:OTHER_ARTIFACT:jar:1.0.3", false,
128 dontAccept( node, "com.example.test:OTHER_ARTIFACT:jar:1.0.3" ) );
129 assertEquals( "com.example.test:testArtifact:WAR:1.0.3", false,
130 dontAccept( node, "com.example.test:testArtifact:WAR:1.0.3" ) );
131 assertEquals( "com.example.test:testArtifact:jar:SNAPSHOT", false,
132 dontAccept( node, "com.example.test:testArtifact:jar:SNAPSHOT" ) );
133
134 assertEquals( "*:*:war:*", false, dontAccept( node, "*:*:war:*" ) );
135 assertEquals( "OTHER.GROUP.ID", false, dontAccept( node, "OTHER.GROUP.ID" ) );
136 }
137
138 @Test
139 public void acceptTestMoreToken()
140 {
141 NodeBuilder builder = new NodeBuilder();
142 builder.groupId( "com.example.test" ).artifactId( "testArtifact" ).ext( "jar" ).version( "1.0.3" );
143
144 DependencyNode node = builder.build();
145 assertEquals( "com.example.test:testArtifact:jar:1.0.3:foo", false,
146 dontAccept( node, "com.example.test:testArtifact:jar:1.0.3:foo" ) );
147 }
148
149 @Test
150 public void acceptTestRange()
151 {
152 NodeBuilder builder = new NodeBuilder();
153 builder.groupId( "com.example.test" ).artifactId( "testArtifact" ).ext( "jar" ).version( "1.0.3" );
154 DependencyNode node = builder.build();
155
156 String prefix = "com.example.test:testArtifact:jar:";
157
158 assertTrue( prefix + "[1.0.3,1.0.4)", dontAcceptVersionRange( node, prefix + "[1.0.3,1.0.4)" ) );
159 assertTrue( prefix + "[1.0.3,)", dontAcceptVersionRange( node, prefix + "[1.0.3,)" ) );
160 assertTrue( prefix + "[1.0.3,]", dontAcceptVersionRange( node, prefix + "[1.0.3,]" ) );
161 assertTrue( prefix + "(,1.0.3]", dontAcceptVersionRange( node, prefix + "(,1.0.3]" ) );
162 assertTrue( prefix + "[1.0,]", dontAcceptVersionRange( node, prefix + "[1.0,]" ) );
163 assertTrue( prefix + "[1,4]", dontAcceptVersionRange( node, prefix + "[1,4]" ) );
164 assertTrue( prefix + "(1,4)", dontAcceptVersionRange( node, prefix + "(1,4)" ) );
165
166 assertTrue( prefix + "(1.0.2,1.0.3]",
167 dontAcceptVersionRange( node, prefix + "(1.0.2,1.0.3]", prefix + "(1.1,)" ) );
168
169 assertFalse( prefix + "(1.0.3,2.0]", dontAcceptVersionRange( node, prefix + "(1.0.3,2.0]" ) );
170 assertFalse( prefix + "(1,1.0.2]", dontAcceptVersionRange( node, prefix + "(1,1.0.2]" ) );
171
172 assertFalse( prefix + "(1.0.2,1.0.3)",
173 dontAcceptVersionRange( node, prefix + "(1.0.2,1.0.3)", prefix + "(1.0.3,)" ) );
174 }
175
176 private boolean dontAccept( DependencyNode node, String expression )
177 {
178 return !new PatternExclusionsDependencyFilter( expression ).accept( node, new LinkedList<DependencyNode>() );
179 }
180
181 private boolean dontAcceptVersionRange( DependencyNode node, String... expression )
182 {
183 return !new PatternExclusionsDependencyFilter( new GenericVersionScheme(), expression ).accept( node,
184 new LinkedList<DependencyNode>() );
185 }
186
187 }