View Javadoc
1   package org.eclipse.aether.util.graph.versions;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   * 
12   *  http://www.apache.org/licenses/LICENSE-2.0
13   * 
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
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  }