Remove reference to InitializrMetadataTestBuilder from metadata tests

This will ease the migration of the metadata to its own module
This commit is contained in:
Stephane Nicoll 2019-01-30 14:33:41 +01:00
parent 3856aef259
commit 662c0b1e15

View File

@ -16,12 +16,14 @@
package io.spring.initializr.metadata;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Arrays;
import java.util.List;
import io.spring.initializr.metadata.BillOfMaterials.Mapping;
import io.spring.initializr.metadata.InitializrConfiguration.Env.Kotlin;
import io.spring.initializr.test.metadata.InitializrMetadataTestBuilder;
import io.spring.initializr.metadata.InitializrConfiguration.Env.Maven.ParentPom;
import io.spring.initializr.util.Version;
import org.junit.jupiter.api.Test;
@ -29,123 +31,122 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
/**
* Tests for {@link InitializrMetadata}.
*
* @author Stephane Nicoll
*/
class InitializrMetadataTests {
@Test
void invalidBom() {
InitializrMetadata metadata = initializeMetadata();
Dependency foo = Dependency.withId("foo", "org.acme", "foo");
foo.setBom("foo-bom");
InitializrMetadataTestBuilder builder = InitializrMetadataTestBuilder
.withDefaults().addBom("my-bom", "org.acme", "foo", "1.2.3")
.addDependencyGroup("test", foo);
addTestDependencyGroup(metadata, foo);
metadata.getConfiguration().getEnv().getBoms().put("my-bom",
BillOfMaterials.create("org.acme", "foo", "1.2.3"));
assertThatExceptionOfType(InvalidInitializrMetadataException.class)
.isThrownBy(builder::build).withMessageContaining("foo-bom")
.isThrownBy(metadata::validate).withMessageContaining("foo-bom")
.withMessageContaining("my-bom");
}
@Test
void invalidRepository() {
void invalidRepository() throws MalformedURLException {
InitializrMetadata metadata = initializeMetadata();
Dependency foo = Dependency.withId("foo", "org.acme", "foo");
foo.setRepository("foo-repo");
InitializrMetadataTestBuilder builder = InitializrMetadataTestBuilder
.withDefaults()
.addRepository("my-repo", "repo", "http://example.com/repo", true)
.addDependencyGroup("test", foo);
addTestDependencyGroup(metadata, foo);
metadata.getConfiguration().getEnv().getRepositories().put("my-repo",
new Repository("repo", new URL("http://example.com/repo"), true));
assertThatExceptionOfType(InvalidInitializrMetadataException.class)
.isThrownBy(builder::build).withMessageContaining("foo-repo")
.isThrownBy(metadata::validate).withMessageContaining("foo-repo")
.withMessageContaining("my-repo");
}
@Test
void invalidBomNoVersion() {
BillOfMaterials bom = BillOfMaterials.create("org.acme", "foo-bom");
InitializrMetadataTestBuilder builder = InitializrMetadataTestBuilder
.withDefaults().addBom("foo-bom", bom);
InitializrMetadata metadata = initializeMetadata();
metadata.getConfiguration().getEnv().getBoms().put("foo-bom",
BillOfMaterials.create("org.acme", "foo-bom"));
assertThatExceptionOfType(InvalidInitializrMetadataException.class)
.isThrownBy(builder::build).withMessageContaining("No version")
.isThrownBy(metadata::validate).withMessageContaining("No version")
.withMessageContaining("foo-bom");
}
@Test
void invalidBomUnknownRepository() {
InitializrMetadata metadata = initializeMetadata();
BillOfMaterials bom = BillOfMaterials.create("org.acme", "foo-bom",
"1.0.0.RELEASE");
bom.getRepositories().add("foo-repo");
InitializrMetadataTestBuilder builder = InitializrMetadataTestBuilder
.withDefaults().addBom("foo-bom", bom);
metadata.getConfiguration().getEnv().getBoms().put("foo-bom", bom);
assertThatExceptionOfType(InvalidInitializrMetadataException.class)
.isThrownBy(builder::build)
.isThrownBy(metadata::validate)
.withMessageContaining("invalid repository id foo-repo")
.withMessageContaining("foo-bom");
}
@Test
void invalidBomUnknownAdditionalBom() {
InitializrMetadata metadata = initializeMetadata();
BillOfMaterials bom = BillOfMaterials.create("org.acme", "foo-bom",
"1.0.0.RELEASE");
bom.getAdditionalBoms().addAll(Arrays.asList("bar-bom", "biz-bom"));
BillOfMaterials barBom = BillOfMaterials.create("org.acme", "bar-bom",
"1.0.0.RELEASE");
InitializrMetadataTestBuilder builder = InitializrMetadataTestBuilder
.withDefaults().addBom("foo-bom", bom).addBom("bar-bom", barBom);
metadata.getConfiguration().getEnv().getBoms().put("foo-bom", bom);
metadata.getConfiguration().getEnv().getBoms().put("bar-bom", barBom);
assertThatExceptionOfType(InvalidInitializrMetadataException.class)
.isThrownBy(builder::build)
.isThrownBy(metadata::validate)
.withMessageContaining("invalid additional bom")
.withMessageContaining("biz-bom");
}
@Test
void invalidBomVersionRangeMapping() {
InitializrMetadata metadata = initializeMetadata();
BillOfMaterials bom = BillOfMaterials.create("org.acme", "foo-bom");
bom.getMappings().add(Mapping.create("[1.2.0.RELEASE,1.3.0.M1)", "1.0.0"));
bom.getMappings().add(Mapping.create("FOO_BAR", "1.2.0"));
InitializrMetadataTestBuilder builder = InitializrMetadataTestBuilder
.withDefaults().addBom("foo-bom", bom);
metadata.getConfiguration().getEnv().getBoms().put("foo-bom", bom);
assertThatExceptionOfType(InvalidInitializrMetadataException.class)
.isThrownBy(builder::build).withMessageContaining("FOO_BAR")
.isThrownBy(metadata::validate).withMessageContaining("FOO_BAR")
.withMessageContaining("foo-bom");
}
@Test
void invalidBomVersionRangeMappingUnknownRepo() {
InitializrMetadata metadata = initializeMetadata();
BillOfMaterials bom = BillOfMaterials.create("org.acme", "foo-bom");
bom.getMappings().add(Mapping.create("[1.0.0.RELEASE,1.3.0.M1)", "1.0.0"));
Mapping mapping = Mapping.create("1.3.0.M2", "1.2.0");
mapping.getRepositories().add("foo-repo");
bom.getMappings().add(mapping);
InitializrMetadataTestBuilder builder = InitializrMetadataTestBuilder
.withDefaults().addBom("foo-bom", bom);
metadata.getConfiguration().getEnv().getBoms().put("foo-bom", bom);
assertThatExceptionOfType(InvalidInitializrMetadataException.class)
.isThrownBy(builder::build)
.isThrownBy(metadata::validate)
.withMessageContaining("invalid repository id foo-repo")
.withMessageContaining("1.3.0.M2").withMessageContaining("foo-bom");
}
@Test
void invalidBomVersionRangeMappingUnknownAdditionalBom() {
InitializrMetadata metadata = initializeMetadata();
BillOfMaterials bom = BillOfMaterials.create("org.acme", "foo-bom");
bom.getMappings().add(Mapping.create("[1.0.0.RELEASE,1.3.0.M1)", "1.0.0"));
Mapping mapping = Mapping.create("1.3.0.M2", "1.2.0");
mapping.getAdditionalBoms().add("bar-bom");
bom.getMappings().add(mapping);
InitializrMetadataTestBuilder builder = InitializrMetadataTestBuilder
.withDefaults().addBom("foo-bom", bom);
metadata.getConfiguration().getEnv().getBoms().put("foo-bom", bom);
assertThatExceptionOfType(InvalidInitializrMetadataException.class)
.isThrownBy(builder::build)
.isThrownBy(metadata::validate)
.withMessageContaining("invalid additional bom")
.withMessageContaining("1.3.0.M2").withMessageContaining("bar-bom");
}
@Test
void updateSpringBootVersions() {
InitializrMetadata metadata = initializeMetadata();
BillOfMaterials bom = BillOfMaterials.create("org.acme", "foo-bom");
bom.getMappings().add(Mapping.create("[1.2.0.RELEASE,1.3.x.RELEASE]", "1.0.0"));
bom.getMappings()
@ -155,13 +156,16 @@ class InitializrMetadataTests {
.create("[1.3.0.RELEASE, 1.3.x.RELEASE]", null, null, "0.1.0.RELEASE"));
dependency.getMappings().add(Dependency.Mapping.create("1.3.x.BUILD-SNAPSHOT",
null, null, "0.2.0.RELEASE"));
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
.addDependencyGroup("test", dependency).addBom("foo-bom", bom)
.setKotlinEnv("1.3",
createKotlinVersionMapping("[1.2.0.RELEASE,1.3.x.RELEASE]",
"1.1"),
createKotlinVersionMapping("1.3.x.BUILD-SNAPSHOT", "1.2"))
.build();
addTestDependencyGroup(metadata, dependency);
metadata.getConfiguration().getEnv().getBoms().put("foo-bom", bom);
Kotlin kotlin = metadata.getConfiguration().getEnv().getKotlin();
kotlin.setDefaultVersion("1.3");
kotlin.getMappings()
.add(createKotlinVersionMapping("[1.2.0.RELEASE,1.3.x.RELEASE]", "1.1"));
kotlin.getMappings()
.add(createKotlinVersionMapping("1.3.x.BUILD-SNAPSHOT", "1.2"));
metadata.validate();
List<DefaultMetadataElement> bootVersions = Arrays.asList(
DefaultMetadataElement.create("1.3.6.RELEASE", "1.3.6", false),
@ -185,27 +189,41 @@ class InitializrMetadataTests {
@Test
void invalidParentMissingVersion() {
InitializrMetadataTestBuilder builder = InitializrMetadataTestBuilder
.withDefaults().setMavenParent("org.foo", "foo-parent", null, false);
InitializrMetadata metadata = initializeMetadata();
ParentPom parent = metadata.getConfiguration().getEnv().getMaven().getParent();
parent.setGroupId("org.foo");
parent.setArtifactId("foo-parent");
assertThatExceptionOfType(InvalidInitializrMetadataException.class)
.isThrownBy(builder::build).withMessageContaining(
.isThrownBy(metadata::validate).withMessageContaining(
"Custom maven pom requires groupId, artifactId and version");
}
@Test
void stripInvalidCharsFromPackage() {
InitializrMetadata metadata = InitializrMetadataTestBuilder.withDefaults()
.build();
InitializrMetadata metadata = initializeMetadata();
metadata.getGroupId().setContent("org.acme");
metadata.getArtifactId().setContent("2foo.bar");
assertThat(metadata.getPackageName().getContent()).isEqualTo("org.acme.foo.bar");
metadata = InitializrMetadataTestBuilder.withDefaults().build();
metadata = initializeMetadata();
metadata.getGroupId().setContent("org.ac-me");
metadata.getArtifactId().setContent("foo-bar");
assertThat(metadata.getPackageName().getContent()).isEqualTo("org.acme.foobar");
}
private InitializrMetadata initializeMetadata() {
return new InitializrMetadata();
}
private void addTestDependencyGroup(InitializrMetadata metadata,
Dependency... dependencies) {
DependencyGroup group = DependencyGroup.create("test");
for (Dependency dependency : dependencies) {
group.getContent().add(dependency);
}
metadata.getDependencies().getContent().add(group);
}
private Kotlin.Mapping createKotlinVersionMapping(String versionRange,
String kotlinVersion) {
Kotlin.Mapping mapping = new Kotlin.Mapping();