1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.aether.artifact;
20
21 import java.io.File;
22 import java.util.Collections;
23 import java.util.HashMap;
24 import java.util.Map;
25
26 import org.junit.jupiter.api.Test;
27
28 import static org.junit.jupiter.api.Assertions.*;
29
30
31
32 public class DefaultArtifactTest {
33
34 @Test
35 void testDefaultArtifactString() {
36 Artifact a;
37
38 a = new DefaultArtifact("gid:aid:ver");
39 assertEquals("gid", a.getGroupId());
40 assertEquals("aid", a.getArtifactId());
41 assertEquals("ver", a.getVersion());
42 assertEquals("ver", a.getBaseVersion());
43 assertEquals("jar", a.getExtension());
44 assertEquals("", a.getClassifier());
45
46 a = new DefaultArtifact("gid:aid:ext:ver");
47 assertEquals("gid", a.getGroupId());
48 assertEquals("aid", a.getArtifactId());
49 assertEquals("ver", a.getVersion());
50 assertEquals("ver", a.getBaseVersion());
51 assertEquals("ext", a.getExtension());
52 assertEquals("", a.getClassifier());
53
54 a = new DefaultArtifact("org.gid:foo-bar:jar:1.1-20101116.150650-3");
55 assertEquals("org.gid", a.getGroupId());
56 assertEquals("foo-bar", a.getArtifactId());
57 assertEquals("1.1-20101116.150650-3", a.getVersion());
58 assertEquals("1.1-SNAPSHOT", a.getBaseVersion());
59 assertEquals("jar", a.getExtension());
60 assertEquals("", a.getClassifier());
61
62 a = new DefaultArtifact("gid:aid:ext:cls:ver");
63 assertEquals("gid", a.getGroupId());
64 assertEquals("aid", a.getArtifactId());
65 assertEquals("ver", a.getVersion());
66 assertEquals("ver", a.getBaseVersion());
67 assertEquals("ext", a.getExtension());
68 assertEquals("cls", a.getClassifier());
69
70 a = new DefaultArtifact("gid:aid::cls:ver");
71 assertEquals("gid", a.getGroupId());
72 assertEquals("aid", a.getArtifactId());
73 assertEquals("ver", a.getVersion());
74 assertEquals("ver", a.getBaseVersion());
75 assertEquals("jar", a.getExtension());
76 assertEquals("cls", a.getClassifier());
77
78 a = new DefaultArtifact(new DefaultArtifact("gid:aid:ext:cls:ver").toString());
79 assertEquals("gid", a.getGroupId());
80 assertEquals("aid", a.getArtifactId());
81 assertEquals("ver", a.getVersion());
82 assertEquals("ver", a.getBaseVersion());
83 assertEquals("ext", a.getExtension());
84 assertEquals("cls", a.getClassifier());
85 }
86
87 @Test
88 void testDefaultArtifactContainsGroupAndArtifactOnly() {
89 assertThrows(IllegalArgumentException.class, () -> new DefaultArtifact("gid:aid"));
90 }
91
92 @Test
93 void testDefaultArtifactContainsGroupOnly() {
94 assertThrows(IllegalArgumentException.class, () -> new DefaultArtifact("gid"));
95 }
96
97 @Test
98 void testImmutability() {
99 Artifact a = new DefaultArtifact("gid:aid:ext:cls:ver");
100 assertNotSame(a, a.setFile(new File("file")));
101 assertNotSame(a, a.setVersion("otherVersion"));
102 assertNotSame(a, a.setProperties(Collections.singletonMap("key", "value")));
103 }
104
105 @Test
106 void testArtifactType() {
107 DefaultArtifactType type = new DefaultArtifactType("typeId", "typeExt", "typeCls", "typeLang", true, true);
108
109 Artifact a = new DefaultArtifact("gid", "aid", null, null, null, null, type);
110 assertEquals("typeExt", a.getExtension());
111 assertEquals("typeCls", a.getClassifier());
112 assertEquals("typeLang", a.getProperties().get(ArtifactProperties.LANGUAGE));
113 assertEquals("typeId", a.getProperties().get(ArtifactProperties.TYPE));
114 assertEquals("true", a.getProperties().get(ArtifactProperties.INCLUDES_DEPENDENCIES));
115 assertEquals("true", a.getProperties().get(ArtifactProperties.CONSTITUTES_BUILD_PATH));
116
117 a = new DefaultArtifact("gid", "aid", "cls", "ext", "ver", null, type);
118 assertEquals("ext", a.getExtension());
119 assertEquals("cls", a.getClassifier());
120 assertEquals("typeLang", a.getProperties().get(ArtifactProperties.LANGUAGE));
121 assertEquals("typeId", a.getProperties().get(ArtifactProperties.TYPE));
122 assertEquals("true", a.getProperties().get(ArtifactProperties.INCLUDES_DEPENDENCIES));
123 assertEquals("true", a.getProperties().get(ArtifactProperties.CONSTITUTES_BUILD_PATH));
124
125 Map<String, String> props = new HashMap<>();
126 props.put("someNonStandardProperty", "someNonStandardProperty");
127 a = new DefaultArtifact("gid", "aid", "cls", "ext", "ver", props, type);
128 assertEquals("ext", a.getExtension());
129 assertEquals("cls", a.getClassifier());
130 assertEquals("typeLang", a.getProperties().get(ArtifactProperties.LANGUAGE));
131 assertEquals("typeId", a.getProperties().get(ArtifactProperties.TYPE));
132 assertEquals("true", a.getProperties().get(ArtifactProperties.INCLUDES_DEPENDENCIES));
133 assertEquals("true", a.getProperties().get(ArtifactProperties.CONSTITUTES_BUILD_PATH));
134 assertEquals("someNonStandardProperty", a.getProperties().get("someNonStandardProperty"));
135
136 props = new HashMap<>();
137 props.put("someNonStandardProperty", "someNonStandardProperty");
138 props.put(ArtifactProperties.CONSTITUTES_BUILD_PATH, "rubbish");
139 props.put(ArtifactProperties.INCLUDES_DEPENDENCIES, "rubbish");
140 a = new DefaultArtifact("gid", "aid", "cls", "ext", "ver", props, type);
141 assertEquals("ext", a.getExtension());
142 assertEquals("cls", a.getClassifier());
143 assertEquals("typeLang", a.getProperties().get(ArtifactProperties.LANGUAGE));
144 assertEquals("typeId", a.getProperties().get(ArtifactProperties.TYPE));
145 assertEquals("rubbish", a.getProperties().get(ArtifactProperties.INCLUDES_DEPENDENCIES));
146 assertEquals("rubbish", a.getProperties().get(ArtifactProperties.CONSTITUTES_BUILD_PATH));
147 assertEquals("someNonStandardProperty", a.getProperties().get("someNonStandardProperty"));
148 }
149
150 @Test
151 void testPropertiesCopied() {
152 Map<String, String> props = new HashMap<>();
153 props.put("key", "value1");
154
155 Artifact a = new DefaultArtifact("gid:aid:1", props);
156 assertEquals("value1", a.getProperty("key", null));
157 props.clear();
158 assertEquals("value1", a.getProperty("key", null));
159
160 props.put("key", "value2");
161 a = a.setProperties(props);
162 assertEquals("value2", a.getProperty("key", null));
163 props.clear();
164 assertEquals("value2", a.getProperty("key", null));
165 }
166
167 @Test
168 void testIsSnapshot() {
169 Artifact a = new DefaultArtifact("gid:aid:ext:cls:1.0");
170 assertFalse(a.isSnapshot(), a.getVersion());
171
172 a = new DefaultArtifact("gid:aid:ext:cls:1.0-SNAPSHOT");
173 assertTrue(a.isSnapshot(), a.getVersion());
174
175 a = new DefaultArtifact("gid:aid:ext:cls:1.0-20101116.150650-3");
176 assertTrue(a.isSnapshot(), a.getVersion());
177
178 a = new DefaultArtifact("gid:aid:ext:cls:1.0-20101116x150650-3");
179 assertFalse(a.isSnapshot(), a.getVersion());
180 }
181 }