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