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