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  import java.util.Map;
23  
24  import org.eclipse.aether.RepositorySystemSession;
25  import org.eclipse.aether.artifact.ArtifactProperties;
26  import org.eclipse.aether.artifact.DefaultArtifact;
27  import org.eclipse.aether.collection.DependencyCollectionContext;
28  import org.eclipse.aether.collection.DependencyTraverser;
29  import org.eclipse.aether.graph.Dependency;
30  import org.eclipse.aether.internal.test.util.TestFileUtils;
31  import org.eclipse.aether.internal.test.util.TestUtils;
32  import org.junit.After;
33  import org.junit.Before;
34  import org.junit.Test;
35  
36  import static org.junit.Assert.*;
37  
38  public class FatArtifactTraverserTest {
39  
40      private RepositorySystemSession session;
41      private DependencyCollectionContext context;
42  
43      @Before
44      public void setup() {
45          session = TestUtils.newSession();
46          context = TestUtils.newCollectionContext(session, null, Collections.emptyList());
47      }
48  
49      @After
50      public void teardown() throws Exception {
51          if (session.getLocalRepository() != null) {
52              TestFileUtils.deleteFile(session.getLocalRepository().getBasedir());
53          }
54          session = null;
55          context = null;
56      }
57  
58      @Test
59      public void testTraverseDependency() {
60          DependencyTraverser traverser = new FatArtifactTraverser();
61          Map<String, String> props = null;
62          assertTrue(traverser.traverseDependency(new Dependency(new DefaultArtifact("g:a:v:1", props), "test")));
63          props = Collections.singletonMap(ArtifactProperties.INCLUDES_DEPENDENCIES, "false");
64          assertTrue(traverser.traverseDependency(new Dependency(new DefaultArtifact("g:a:v:1", props), "test")));
65          props = Collections.singletonMap(ArtifactProperties.INCLUDES_DEPENDENCIES, "unrecognized");
66          assertTrue(traverser.traverseDependency(new Dependency(new DefaultArtifact("g:a:v:1", props), "test")));
67          props = Collections.singletonMap(ArtifactProperties.INCLUDES_DEPENDENCIES, "true");
68          assertFalse(traverser.traverseDependency(new Dependency(new DefaultArtifact("g:a:v:1", props), "test")));
69      }
70  
71      @Test
72      public void testDeriveChildTraverser() {
73          DependencyTraverser traverser = new FatArtifactTraverser();
74          assertSame(traverser, traverser.deriveChildTraverser(context));
75      }
76  
77      @Test
78      public void testEquals() {
79          DependencyTraverser traverser1 = new FatArtifactTraverser();
80          DependencyTraverser traverser2 = new FatArtifactTraverser();
81          assertEquals(traverser1, traverser1);
82          assertEquals(traverser1, traverser2);
83          assertNotEquals(traverser1, this);
84          assertNotEquals(traverser1, null);
85      }
86  
87      @Test
88      public void testHashCode() {
89          DependencyTraverser traverser1 = new FatArtifactTraverser();
90          DependencyTraverser traverser2 = new FatArtifactTraverser();
91          assertEquals(traverser1.hashCode(), traverser2.hashCode());
92      }
93  }