1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.aether.util.graph.versions;
20
21 import java.util.Iterator;
22
23 import org.eclipse.aether.DefaultRepositorySystemSession;
24 import org.eclipse.aether.artifact.DefaultArtifact;
25 import org.eclipse.aether.collection.VersionFilter;
26 import org.eclipse.aether.graph.Dependency;
27 import org.eclipse.aether.internal.test.util.TestUtils;
28 import org.eclipse.aether.resolution.VersionRangeRequest;
29 import org.eclipse.aether.resolution.VersionRangeResult;
30 import org.eclipse.aether.util.version.GenericVersionScheme;
31 import org.eclipse.aether.version.InvalidVersionSpecificationException;
32 import org.eclipse.aether.version.Version;
33 import org.eclipse.aether.version.VersionScheme;
34 import org.junit.jupiter.api.AfterEach;
35 import org.junit.jupiter.api.BeforeEach;
36
37 import static org.junit.jupiter.api.Assertions.*;
38
39 public abstract class AbstractVersionFilterTest {
40
41 protected DefaultRepositorySystemSession session;
42
43 @BeforeEach
44 void setUp() {
45 session = TestUtils.newSession();
46 }
47
48 @AfterEach
49 void tearDown() {
50 session = null;
51 }
52
53 protected VersionFilter.VersionFilterContext newContext(String gav, String... versions) {
54 VersionRangeRequest request = new VersionRangeRequest();
55 request.setArtifact(new DefaultArtifact(gav));
56 VersionRangeResult result = new VersionRangeResult(request);
57 VersionScheme scheme = new GenericVersionScheme();
58 try {
59 result.setVersionConstraint(
60 scheme.parseVersionConstraint(request.getArtifact().getVersion()));
61 for (String version : versions) {
62 result.addVersion(scheme.parseVersion(version));
63 }
64 } catch (InvalidVersionSpecificationException e) {
65 throw new IllegalArgumentException(e);
66 }
67 return TestUtils.newVersionFilterContext(session, result);
68 }
69
70 protected VersionFilter derive(VersionFilter filter, String gav) {
71 return filter.deriveChildFilter(
72 TestUtils.newCollectionContext(session, new Dependency(new DefaultArtifact(gav), ""), null));
73 }
74
75 protected void assertVersions(VersionFilter.VersionFilterContext context, String... versions) {
76 assertEquals(versions.length, context.getCount());
77 Iterator<Version> it = context.iterator();
78 for (String version : versions) {
79 assertTrue(it.hasNext());
80 assertEquals(version, it.next().toString());
81 }
82 }
83 }