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