View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.eclipse.aether.util.graph.traverser;
20  
21  import java.util.Collections;
22  
23  import org.eclipse.aether.RepositorySystemSession;
24  import org.eclipse.aether.artifact.DefaultArtifact;
25  import org.eclipse.aether.collection.DependencyCollectionContext;
26  import org.eclipse.aether.collection.DependencyTraverser;
27  import org.eclipse.aether.graph.Dependency;
28  import org.eclipse.aether.internal.test.util.TestFileUtils;
29  import org.eclipse.aether.internal.test.util.TestUtils;
30  import org.junit.jupiter.api.AfterEach;
31  import org.junit.jupiter.api.BeforeEach;
32  import org.junit.jupiter.api.Test;
33  
34  import static org.junit.jupiter.api.Assertions.*;
35  
36  public class StaticDependencyTraverserTest {
37  
38      private RepositorySystemSession session;
39      private DependencyCollectionContext context;
40  
41      @BeforeEach
42      void setup() {
43          session = TestUtils.newSession();
44          context = TestUtils.newCollectionContext(session, null, Collections.emptyList());
45      }
46  
47      @AfterEach
48      void teardown() throws Exception {
49          if (session.getLocalRepository() != null) {
50              TestFileUtils.deleteFile(session.getLocalRepository().getBasedir());
51          }
52          session = null;
53          context = null;
54      }
55  
56      @Test
57      void testTraverseDependency() {
58          Dependency dependency = new Dependency(new DefaultArtifact("g:a:v:1"), "runtime");
59          DependencyTraverser traverser = new StaticDependencyTraverser(true);
60          assertTrue(traverser.traverseDependency(dependency));
61          traverser = new StaticDependencyTraverser(false);
62          assertFalse(traverser.traverseDependency(dependency));
63      }
64  
65      @Test
66      void testDeriveChildTraverser() {
67          DependencyTraverser traverser = new StaticDependencyTraverser(true);
68          assertSame(traverser, traverser.deriveChildTraverser(context));
69      }
70  
71      @Test
72      void testEquals() {
73          DependencyTraverser traverser1 = new StaticDependencyTraverser(true);
74          DependencyTraverser traverser2 = new StaticDependencyTraverser(true);
75          DependencyTraverser traverser3 = new StaticDependencyTraverser(false);
76          assertEquals(traverser1, traverser1);
77          assertEquals(traverser1, traverser2);
78          assertNotEquals(traverser1, traverser3);
79          assertNotEquals(traverser1, this);
80          assertNotEquals(traverser1, null);
81      }
82  
83      @Test
84      void testHashCode() {
85          DependencyTraverser traverser1 = new StaticDependencyTraverser(true);
86          DependencyTraverser traverser2 = new StaticDependencyTraverser(true);
87          assertEquals(traverser1.hashCode(), traverser2.hashCode());
88      }
89  }