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