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.synccontext.named;
20
21 import java.util.Collection;
22 import java.util.Iterator;
23
24 import org.eclipse.aether.artifact.DefaultArtifact;
25 import org.eclipse.aether.metadata.DefaultMetadata;
26 import org.eclipse.aether.metadata.Metadata;
27 import org.eclipse.aether.named.NamedLockKey;
28 import org.junit.jupiter.api.Test;
29
30 import static java.util.Collections.emptyList;
31 import static java.util.Collections.singletonList;
32 import static org.junit.jupiter.api.Assertions.*;
33
34 public class HashingNameMapperTest extends NameMapperTestSupport {
35 HashingNameMapper mapper = new HashingNameMapper(GAVNameMapper.gav());
36
37 @Test
38 void nullsAndEmptyInputs() {
39 Collection<NamedLockKey> names;
40
41 names = mapper.nameLocks(session, null, null);
42 assertTrue(names.isEmpty());
43
44 names = mapper.nameLocks(session, null, emptyList());
45 assertTrue(names.isEmpty());
46
47 names = mapper.nameLocks(session, emptyList(), null);
48 assertTrue(names.isEmpty());
49
50 names = mapper.nameLocks(session, emptyList(), emptyList());
51 assertTrue(names.isEmpty());
52 }
53
54 @Test
55 void singleArtifact_depth0() {
56 configProperties.put("aether.syncContext.named.hashing.depth", "0");
57 DefaultArtifact artifact = new DefaultArtifact("group:artifact:1.0");
58 Collection<NamedLockKey> names = mapper.nameLocks(session, singletonList(artifact), null);
59 assertEquals(names.size(), 1);
60 assertEquals(names.iterator().next().name(), "46e98183d232f1e16f863025080c7f2b9797fd10");
61 }
62
63 @Test
64 void singleMetadata_depth0() {
65 configProperties.put("aether.syncContext.named.hashing.depth", "0");
66 DefaultMetadata metadata =
67 new DefaultMetadata("group", "artifact", "maven-metadata.xml", Metadata.Nature.RELEASE_OR_SNAPSHOT);
68 Collection<NamedLockKey> names = mapper.nameLocks(session, null, singletonList(metadata));
69 assertEquals(names.size(), 1);
70 assertEquals(names.iterator().next().name(), "293b3990971f4b4b02b220620d2538eaac5f221b");
71 }
72
73 @Test
74 void oneAndOne_depth0() {
75 configProperties.put("aether.syncContext.named.hashing.depth", "0");
76 DefaultArtifact artifact = new DefaultArtifact("agroup:artifact:1.0");
77 DefaultMetadata metadata =
78 new DefaultMetadata("bgroup", "artifact", "maven-metadata.xml", Metadata.Nature.RELEASE_OR_SNAPSHOT);
79 Collection<NamedLockKey> names = mapper.nameLocks(session, singletonList(artifact), singletonList(metadata));
80
81 assertEquals(names.size(), 2);
82 Iterator<NamedLockKey> namesIterator = names.iterator();
83
84
85 assertEquals(namesIterator.next().name(), "d36504431d00d1c6e4d1c34258f2bf0a004de085");
86 assertEquals(namesIterator.next().name(), "fbcebba60d7eb931eca634f6ca494a8a1701b638");
87 }
88
89 @Test
90 void singleArtifact_depth2() {
91 configProperties.put("aether.syncContext.named.hashing.depth", "2");
92 DefaultArtifact artifact = new DefaultArtifact("group:artifact:1.0");
93 Collection<NamedLockKey> names = mapper.nameLocks(session, singletonList(artifact), null);
94
95 assertEquals(names.size(), 1);
96 assertEquals(names.iterator().next().name(), "46/e9/46e98183d232f1e16f863025080c7f2b9797fd10");
97 }
98
99 @Test
100 void singleMetadata_depth2() {
101 configProperties.put("aether.syncContext.named.hashing.depth", "2");
102 DefaultMetadata metadata =
103 new DefaultMetadata("group", "artifact", "maven-metadata.xml", Metadata.Nature.RELEASE_OR_SNAPSHOT);
104 Collection<NamedLockKey> names = mapper.nameLocks(session, null, singletonList(metadata));
105
106 assertEquals(names.size(), 1);
107 assertEquals(names.iterator().next().name(), "29/3b/293b3990971f4b4b02b220620d2538eaac5f221b");
108 }
109
110 @Test
111 void oneAndOne_depth2() {
112 configProperties.put("aether.syncContext.named.hashing.depth", "2");
113 DefaultArtifact artifact = new DefaultArtifact("agroup:artifact:1.0");
114 DefaultMetadata metadata =
115 new DefaultMetadata("bgroup", "artifact", "maven-metadata.xml", Metadata.Nature.RELEASE_OR_SNAPSHOT);
116 Collection<NamedLockKey> names = mapper.nameLocks(session, singletonList(artifact), singletonList(metadata));
117
118 assertEquals(names.size(), 2);
119 Iterator<NamedLockKey> namesIterator = names.iterator();
120
121
122 assertEquals(namesIterator.next().name(), "d3/65/d36504431d00d1c6e4d1c34258f2bf0a004de085");
123 assertEquals(namesIterator.next().name(), "fb/ce/fbcebba60d7eb931eca634f6ca494a8a1701b638");
124 }
125 }