From 8a0d413a06620443cab84d3be8e51e823f75d200 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Tue, 5 Feb 2019 16:36:56 +0100 Subject: [PATCH] Clean build assertions --- .../AbstractProjectGeneratorTests.java | 4 +- .../generator/ProjectGeneratorTests.java | 50 +++++++++++++++++-- .../test/generator/GradleBuildAssert.java | 18 ++----- .../initializr/test/generator/PomAssert.java | 13 ----- 4 files changed, 52 insertions(+), 33 deletions(-) diff --git a/initializr-generator/src/test/java/io/spring/initializr/generator/AbstractProjectGeneratorTests.java b/initializr-generator/src/test/java/io/spring/initializr/generator/AbstractProjectGeneratorTests.java index 7d9cacf4..6efe605d 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/generator/AbstractProjectGeneratorTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/generator/AbstractProjectGeneratorTests.java @@ -81,13 +81,13 @@ public abstract class AbstractProjectGeneratorTests { protected PomAssert generateMavenPom(ProjectRequest request) { request.setType("maven-build"); String content = new String(this.projectGenerator.generateMavenPom(request)); - return new PomAssert(content).validateProjectRequest(request); + return new PomAssert(content); } protected GradleBuildAssert generateGradleBuild(ProjectRequest request) { request.setType("gradle-build"); String content = new String(this.projectGenerator.generateGradleBuild(request)); - return new GradleBuildAssert(content).validateProjectRequest(request); + return new GradleBuildAssert(content); } protected ProjectAssert generateProject(ProjectRequest request) { diff --git a/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectGeneratorTests.java b/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectGeneratorTests.java index ad04d391..34a8661d 100755 --- a/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectGeneratorTests.java +++ b/initializr-generator/src/test/java/io/spring/initializr/generator/ProjectGeneratorTests.java @@ -49,14 +49,22 @@ class ProjectGeneratorTests extends AbstractProjectGeneratorTests { @Test void defaultMavenPom() { ProjectRequest request = createProjectRequest("web"); - generateMavenPom(request).hasNoRepository().hasSpringBootStarterDependency("web"); + generateMavenPom(request).hasGroupId(request.getGroupId()) + .hasArtifactId(request.getArtifactId()).hasVersion(request.getVersion()) + .hasPackaging(request.getPackaging()).hasName(request.getName()) + .hasDescription(request.getDescription()) + .hasJavaVersion(request.getJavaVersion()) + .hasSpringBootParent(request.getBootVersion()).hasNoRepository() + .hasSpringBootStarterDependency("web"); verifyProjectSuccessfulEventFor(request); } @Test void defaultGradleBuild() { ProjectRequest request = createProjectRequest("web"); - generateGradleBuild(request).doesNotContain("import"); + generateGradleBuild(request).hasVersion(request.getVersion()) + .hasSpringBootBuildScriptPlugin(request.getBootVersion()) + .hasJavaVersion(request.getJavaVersion()).doesNotContain("import"); verifyProjectSuccessfulEventFor(request); } @@ -81,6 +89,37 @@ class ProjectGeneratorTests extends AbstractProjectGeneratorTests { verifyProjectSuccessfulEventFor(request); } + @Test + void mavenBuildWithCustomCoordinates() { + ProjectRequest request = createProjectRequest("web"); + request.setGroupId("com.example.test"); + request.setArtifactId("test-project"); + request.setVersion("1.0.0.TEST-SNAPSHOT"); + request.setPackaging("war"); + request.setName("Test Project"); + request.setDescription("Test Project Description"); + generateMavenPom(request).hasGroupId("com.example.test") + .hasArtifactId("test-project").hasVersion("1.0.0.TEST-SNAPSHOT") + .hasPackaging("war").hasName("Test Project") + .hasDescription("Test Project Description"); + } + + @Test + void gradleBuildWithProjectVersion() { + ProjectRequest request = createProjectRequest("web"); + request.setVersion("1.0.0.TEST-SNAPSHOT"); + generateGradleBuild(request).hasVersion("1.0.0.TEST-SNAPSHOT"); + verifyProjectSuccessfulEventFor(request); + } + + @Test + void gradleBuildWithJavaVersion() { + ProjectRequest request = createProjectRequest("web"); + request.setJavaVersion("11"); + generateGradleBuild(request).hasJavaVersion("11"); + verifyProjectSuccessfulEventFor(request); + } + @Test void noDependencyAddsRootStarter() { ProjectRequest request = createProjectRequest(); @@ -504,7 +543,9 @@ class ProjectGeneratorTests extends AbstractProjectGeneratorTests { void gradleBuildWithSpringBoot15() { ProjectRequest request = createProjectRequest("web"); request.setBootVersion("1.5.20.BUILD-SNAPSHOT"); - generateGradleBuild(request).contains("apply plugin: 'org.springframework.boot'") + generateGradleBuild(request) + .hasSpringBootBuildScriptPlugin("1.5.20.BUILD-SNAPSHOT") + .contains("apply plugin: 'org.springframework.boot'") .contains( "implementation 'org.springframework.boot:spring-boot-starter-web'") .contains( @@ -516,7 +557,8 @@ class ProjectGeneratorTests extends AbstractProjectGeneratorTests { void gradleBuildWithSpringBoot20() { ProjectRequest request = createProjectRequest("web"); request.setBootVersion("2.0.0.RELEASE"); - generateGradleBuild(request).contains("apply plugin: 'org.springframework.boot'") + generateGradleBuild(request).hasSpringBootBuildScriptPlugin("2.0.0.RELEASE") + .contains("apply plugin: 'org.springframework.boot'") .doesNotContain("apply plugin: 'spring-boot'") .contains("apply plugin: 'io.spring.dependency-management'") .contains( diff --git a/initializr-generator/src/test/java/io/spring/initializr/test/generator/GradleBuildAssert.java b/initializr-generator/src/test/java/io/spring/initializr/test/generator/GradleBuildAssert.java index 0e684670..ed0046db 100644 --- a/initializr-generator/src/test/java/io/spring/initializr/test/generator/GradleBuildAssert.java +++ b/initializr-generator/src/test/java/io/spring/initializr/test/generator/GradleBuildAssert.java @@ -16,8 +16,6 @@ package io.spring.initializr.test.generator; -import io.spring.initializr.generator.ProjectRequest; - import static org.assertj.core.api.Assertions.assertThat; /** @@ -33,22 +31,14 @@ public class GradleBuildAssert { this.content = content; } - /** - * Validate that this generated gradle build validates against its request. - * @param request the source request - * @return a gradle assert - */ - public GradleBuildAssert validateProjectRequest(ProjectRequest request) { - return hasVersion(request.getVersion()).hasBootVersion(request.getBootVersion()) - .hasJavaVersion(request.getJavaVersion()); - } - public GradleBuildAssert hasVersion(String version) { return contains("version = '" + version + "'"); } - public GradleBuildAssert hasBootVersion(String bootVersion) { - return contains("springBootVersion = '" + bootVersion + "'"); + public GradleBuildAssert hasSpringBootBuildScriptPlugin(String bootVersion) { + return contains("ext {").contains("springBootVersion = '" + bootVersion + "'") + .contains( + "classpath(\"org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}\")"); } public GradleBuildAssert hasJavaVersion(String javaVersion) { diff --git a/initializr-generator/src/test/java/io/spring/initializr/test/generator/PomAssert.java b/initializr-generator/src/test/java/io/spring/initializr/test/generator/PomAssert.java index d1405af0..f3287145 100644 --- a/initializr-generator/src/test/java/io/spring/initializr/test/generator/PomAssert.java +++ b/initializr-generator/src/test/java/io/spring/initializr/test/generator/PomAssert.java @@ -21,7 +21,6 @@ import java.net.URL; import java.util.LinkedHashMap; import java.util.Map; -import io.spring.initializr.generator.ProjectRequest; import io.spring.initializr.metadata.BillOfMaterials; import io.spring.initializr.metadata.Dependency; import io.spring.initializr.metadata.InitializrConfiguration.Env.Maven.ParentPom; @@ -82,18 +81,6 @@ public class PomAssert { parseRepositories(); } - /** - * Validate that this generated pom validates against its request. - * @param request the source request - * @return a POM assert - */ - public PomAssert validateProjectRequest(ProjectRequest request) { - return hasGroupId(request.getGroupId()).hasArtifactId(request.getArtifactId()) - .hasVersion(request.getVersion()).hasPackaging(request.getPackaging()) - .hasName(request.getName()).hasDescription(request.getDescription()) - .hasJavaVersion(request.getJavaVersion()); - } - public PomAssert contains(String expression) { assertThat(this.content).contains(expression); return this;