/
ModelUtilsTest.java
53 lines (42 loc) · 1.95 KB
/
ModelUtilsTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package io.quarkus.bootstrap.resolver.maven.workspace;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import org.apache.maven.model.Model;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
public class ModelUtilsTest {
@Test
void resolveVersion_literal() {
assertThat(ModelUtils.resolveVersion("1.0.0", new Model())).isEqualTo("1.0.0");
}
@ParameterizedTest
@ValueSource(strings = { "${revision}", "${sha1}", "${changelist}" })
void resolveVersion_notResolvable(String rawVersion) {
assertThat(ModelUtils.resolveVersion(rawVersion, new Model())).isNull();
}
@ParameterizedTest
@ValueSource(strings = { "revision", "sha1", "changelist" })
void resolveVersion_resolvable(String ciFriendlyPropertyName) {
var model = new Model();
model.getProperties().put(ciFriendlyPropertyName, "1.0.0");
assertThat(ModelUtils.resolveVersion("${" + ciFriendlyPropertyName + "}", model)).isEqualTo("1.0.0");
}
@Test
void resolveVersion_allCiFriendlyPropertyNames() {
var model = new Model();
model.getProperties().put("revision", "1");
model.getProperties().put("sha1", "2");
model.getProperties().put("changelist", "3");
assertThat(ModelUtils.resolveVersion("${revision}.${sha1}.${changelist}", model)).isEqualTo("1.2.3");
}
@Test
void resolveVersion_illegalPlaceholder() {
var model = new Model();
model.getProperties().put("revision", "${main.project.version}");
model.getProperties().put("main.project.version", "1.6.0-SNAPSHOT");
assertThatThrownBy(() -> ModelUtils.resolveVersion("${revision}", model))
.isExactlyInstanceOf(IllegalArgumentException.class)
.hasMessageContainingAll("revision", "main.project.version");
}
}