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 org.eclipse.aether.collection.DependencyCollectionContext;
22 import org.eclipse.aether.collection.VersionFilter;
23 import org.eclipse.aether.collection.VersionFilter.VersionFilterContext;
24 import org.eclipse.aether.util.graph.version.ChainedVersionFilter;
25 import org.eclipse.aether.util.graph.version.HighestVersionFilter;
26 import org.eclipse.aether.util.graph.version.SnapshotVersionFilter;
27 import org.junit.jupiter.api.Test;
28
29 import static org.junit.jupiter.api.Assertions.*;
30
31 public class ChainedVersionFilterTest extends AbstractVersionFilterTest {
32
33 @Test
34 void testFilterVersions() throws Exception {
35 VersionFilter filter =
36 ChainedVersionFilter.newInstance(new SnapshotVersionFilter(), new HighestVersionFilter());
37 VersionFilterContext ctx = newContext("g:a:[1,9]", "1", "2", "3-SNAPSHOT");
38 filter.filterVersions(ctx);
39 assertVersions(ctx, "2");
40 }
41
42 @Test
43 void testDeriveChildFilter() {
44 VersionFilter filter1 = new HighestVersionFilter();
45 VersionFilter filter2 = new VersionFilter() {
46 public void filterVersions(VersionFilterContext context) {}
47
48 public VersionFilter deriveChildFilter(DependencyCollectionContext context) {
49 return null;
50 }
51 };
52
53 VersionFilter filter = ChainedVersionFilter.newInstance(filter1);
54 assertSame(filter, derive(filter, "g:a:1"));
55
56 filter = ChainedVersionFilter.newInstance(filter2);
57 assertSame(null, derive(filter, "g:a:1"));
58
59 filter = ChainedVersionFilter.newInstance(filter1, filter2);
60 assertSame(filter1, derive(filter, "g:a:1"));
61
62 filter = ChainedVersionFilter.newInstance(filter2, filter1);
63 assertSame(filter1, derive(filter, "g:a:1"));
64 }
65
66 @SuppressWarnings("EqualsWithItself")
67 @Test
68 void testEquals() {
69 VersionFilter filter = ChainedVersionFilter.newInstance(new HighestVersionFilter());
70 assertNotEquals(null, filter);
71 assertEquals(filter, filter);
72 assertEquals(filter, ChainedVersionFilter.newInstance(new HighestVersionFilter()));
73 }
74 }