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<>();
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 assertTrue( "com.example.test:testArtifact:jar:1.0.3", accept( node, "com.example.test:testArtifact:jar:1.0.3" ) );
62
63
64 assertTrue( "*:testArtifact:jar:1.0.3", accept( node, "*:testArtifact:jar:1.0.3" ) );
65 assertTrue( "com.example.test:*:jar:1.0.3", accept( node, "com.example.test:*:jar:1.0.3" ) );
66 assertTrue( "com.example.test:testArtifact:*:1.0.3", accept( node, "com.example.test:testArtifact:*:1.0.3" ) );
67 assertTrue( "com.example.test:testArtifact:*:1.0.3", accept( node, "com.example.test:testArtifact:*:1.0.3" ) );
68
69
70 assertTrue( ":testArtifact:jar:1.0.3", accept( node, ":testArtifact:jar:1.0.3" ) );
71 assertTrue( "com.example.test::jar:1.0.3", accept( node, "com.example.test::jar:1.0.3" ) );
72 assertTrue( "com.example.test:testArtifact::1.0.3", accept( node, "com.example.test:testArtifact::1.0.3" ) );
73 assertTrue( "com.example.test:testArtifact:jar:", accept( node, "com.example.test:testArtifact:jar:" ) );
74
75
76 assertTrue( "*:*:jar:1.0.3", accept( node, "*:*:jar:1.0.3" ) );
77 assertTrue( "com.example.test:*:*:1.0.3", accept( node, "com.example.test:*:*:1.0.3" ) );
78 assertTrue( "com.example.test:testArtifact:*:*", accept( node, "com.example.test:testArtifact:*:*" ) );
79 assertTrue( "*:testArtifact:jar:*", accept( node, "*:testArtifact:jar:*" ) );
80 assertTrue( "*:*:jar:*", accept( node, "*:*:jar:*" ) );
81 assertTrue( ":*:jar:", accept( node, ":*:jar:" ) );
82
83
84 assertTrue( "*.example.test:testArtifact:jar:1.0.3", accept( node, "*.example.test:testArtifact:jar:1.0.3" ) );
85 assertTrue( "com.example.test:testArtifact:*ar:1.0.*", accept( node, "com.example.test:testArtifact:*ar:1.0.*" ) );
86 assertTrue( "com.example.test:testArtifact:jar:1.0.*", accept( node, "com.example.test:testArtifact:jar:1.0.*" ) );
87 assertTrue( "*.example.*:testArtifact:jar:1.0.3", accept( node, "*.example.*:testArtifact:jar:1.0.3" ) );
88
89
90 assertTrue( "com.example.test*:testArtifact:jar:1.0.3", accept( node, "com.example.test*:testArtifact:jar:1.0.3" ) );
91 }
92
93 @Test
94 public void acceptTestLessToken()
95 {
96 NodeBuilder builder = new NodeBuilder();
97 builder.groupId( "com.example.test" ).artifactId( "testArtifact" ).ext( "jar" ).version( "1.0.3" );
98 DependencyNode node = builder.build();
99
100 assertTrue( "com.example.test:testArtifact:jar", accept( node, "com.example.test:testArtifact:jar" ) );
101 assertTrue( "com.example.test:testArtifact", accept( node, "com.example.test:testArtifact" ) );
102 assertTrue( "com.example.test", accept( node, "com.example.test" ) );
103
104 assertFalse( "com.example.foo", accept( node, "com.example.foo" ) );
105 }
106
107 @Test
108 public void acceptTestMissmatch()
109 {
110 NodeBuilder builder = new NodeBuilder();
111 builder.groupId( "com.example.test" ).artifactId( "testArtifact" ).ext( "jar" ).version( "1.0.3" );
112 DependencyNode node = builder.build();
113
114 assertFalse( "OTHER.GROUP.ID:testArtifact:jar:1.0.3", accept( node, "OTHER.GROUP.ID:testArtifact:jar:1.0.3" ) );
115 assertFalse( "com.example.test:OTHER_ARTIFACT:jar:1.0.3", accept( node, "com.example.test:OTHER_ARTIFACT:jar:1.0.3" ) );
116 assertFalse( "com.example.test:OTHER_ARTIFACT:jar:1.0.3", accept( node, "com.example.test:OTHER_ARTIFACT:jar:1.0.3" ) );
117 assertFalse( "com.example.test:testArtifact:WAR:1.0.3", accept( node, "com.example.test:testArtifact:WAR:1.0.3" ) );
118 assertFalse( "com.example.test:testArtifact:jar:SNAPSHOT", accept( node, "com.example.test:testArtifact:jar:SNAPSHOT" ) );
119
120 assertFalse( "*:*:war:*", accept( node, "*:*:war:*" ) );
121 assertFalse( "OTHER.GROUP.ID", accept( node, "OTHER.GROUP.ID" ) );
122 }
123
124 @Test
125 public void acceptTestMoreToken()
126 {
127 NodeBuilder builder = new NodeBuilder();
128 builder.groupId( "com.example.test" ).artifactId( "testArtifact" ).ext( "jar" ).version( "1.0.3" );
129
130 DependencyNode node = builder.build();
131 assertFalse( "com.example.test:testArtifact:jar:1.0.3:foo", accept( node, "com.example.test:testArtifact:jar:1.0.3:foo" ) );
132 }
133
134 @Test
135 public void acceptTestRange()
136 {
137 NodeBuilder builder = new NodeBuilder();
138 builder.groupId( "com.example.test" ).artifactId( "testArtifact" ).ext( "jar" ).version( "1.0.3" );
139 DependencyNode node = builder.build();
140
141 String prefix = "com.example.test:testArtifact:jar:";
142
143 assertTrue( prefix + "[1.0.3,1.0.4)", acceptVersionRange( node, prefix + "[1.0.3,1.0.4)" ) );
144 assertTrue( prefix + "[1.0.3,)", acceptVersionRange( node, prefix + "[1.0.3,)" ) );
145 assertTrue( prefix + "[1.0.3,]", acceptVersionRange( node, prefix + "[1.0.3,]" ) );
146 assertTrue( prefix + "(,1.0.3]", acceptVersionRange( node, prefix + "(,1.0.3]" ) );
147 assertTrue( prefix + "[1.0,]", acceptVersionRange( node, prefix + "[1.0,]" ) );
148 assertTrue( prefix + "[1,4]", acceptVersionRange( node, prefix + "[1,4]" ) );
149 assertTrue( prefix + "(1,4)", acceptVersionRange( node, prefix + "(1,4)" ) );
150
151 assertTrue( prefix + "(1.0.2,1.0.3]", acceptVersionRange( node, prefix + "(1.0.2,1.0.3]", prefix + "(1.1,)" ) );
152
153 assertFalse( prefix + "(1.0.3,2.0]", acceptVersionRange( node, prefix + "(1.0.3,2.0]" ) );
154 assertFalse( prefix + "(1,1.0.2]", acceptVersionRange( node, prefix + "(1,1.0.2]" ) );
155
156 assertFalse( prefix + "(1.0.2,1.0.3)", acceptVersionRange( node, prefix + "(1.0.2,1.0.3)", prefix + "(1.0.3,)" ) );
157 }
158
159 public boolean accept( DependencyNode node, String expression )
160 {
161 return new PatternInclusionsDependencyFilter( expression ).accept( node, new LinkedList<DependencyNode>() );
162 }
163
164 public boolean acceptVersionRange( DependencyNode node, String... expression )
165 {
166 return new PatternInclusionsDependencyFilter( new GenericVersionScheme(), expression ).accept( node,
167 new LinkedList<DependencyNode>() );
168 }
169
170 }