1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 DataPool.DescriptorKey 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 }