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.internal.impl.collect;
20  
21  import java.util.Collections;
22  
23  import org.eclipse.aether.artifact.DefaultArtifact;
24  import org.eclipse.aether.graph.Dependency;
25  import org.eclipse.aether.internal.test.util.TestUtils;
26  import org.eclipse.aether.repository.RemoteRepository;
27  import org.eclipse.aether.resolution.ArtifactDescriptorRequest;
28  import org.eclipse.aether.resolution.ArtifactDescriptorResult;
29  import org.eclipse.aether.resolution.VersionRangeRequest;
30  import org.junit.jupiter.api.Test;
31  
32  import static org.junit.jupiter.api.Assertions.*;
33  
34  public class DataPoolTest {
35  
36      private DataPool newDataPool() {
37          return new DataPool(TestUtils.newSession());
38      }
39  
40      @Test
41      void testArtifactDescriptorCaching() {
42          ArtifactDescriptorRequest request = new ArtifactDescriptorRequest();
43          request.setArtifact(new DefaultArtifact("gid:aid:1"));
44          ArtifactDescriptorResult result = new ArtifactDescriptorResult(request);
45          result.setArtifact(new DefaultArtifact("gid:aid:2"));
46          result.addRelocation(request.getArtifact());
47          result.addDependency(new Dependency(new DefaultArtifact("gid:dep:3"), "compile"));
48          result.addManagedDependency(new Dependency(new DefaultArtifact("gid:mdep:3"), "runtime"));
49          result.addRepository(new RemoteRepository.Builder("test", "default", "http://localhost").build());
50          result.addAlias(new DefaultArtifact("gid:alias:4"));
51  
52          DataPool pool = newDataPool();
53          Object key = pool.toKey(request);
54          pool.putDescriptor(key, result);
55          ArtifactDescriptorResult cached = pool.getDescriptor(key, request);
56          assertNotNull(cached);
57          assertEquals(result.getArtifact(), cached.getArtifact());
58          assertEquals(result.getRelocations(), cached.getRelocations());
59          assertEquals(result.getDependencies(), cached.getDependencies());
60          assertEquals(result.getManagedDependencies(), cached.getManagedDependencies());
61          assertEquals(result.getRepositories(), cached.getRepositories());
62          assertEquals(result.getAliases(), cached.getAliases());
63      }
64  
65      @Test
66      void testConstraintKey() {
67          VersionRangeRequest request = new VersionRangeRequest();
68          request.setRepositories(Collections.singletonList(
69                  new RemoteRepository.Builder("some-id", "some-type", "http://www.example.com").build()));
70          request.setArtifact(new DefaultArtifact("group:artifact:1.0"));
71  
72          DataPool pool = newDataPool();
73  
74          Object key1 = pool.toKey(request);
75          Object key2 = pool.toKey(request);
76          assertEquals(key1, key2);
77      }
78  }