mirror of
https://gitee.com/dcren/initializr.git
synced 2025-12-17 17:41:31 +08:00
Clean build assertions
This commit is contained in:
@@ -81,13 +81,13 @@ public abstract class AbstractProjectGeneratorTests {
|
|||||||
protected PomAssert generateMavenPom(ProjectRequest request) {
|
protected PomAssert generateMavenPom(ProjectRequest request) {
|
||||||
request.setType("maven-build");
|
request.setType("maven-build");
|
||||||
String content = new String(this.projectGenerator.generateMavenPom(request));
|
String content = new String(this.projectGenerator.generateMavenPom(request));
|
||||||
return new PomAssert(content).validateProjectRequest(request);
|
return new PomAssert(content);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected GradleBuildAssert generateGradleBuild(ProjectRequest request) {
|
protected GradleBuildAssert generateGradleBuild(ProjectRequest request) {
|
||||||
request.setType("gradle-build");
|
request.setType("gradle-build");
|
||||||
String content = new String(this.projectGenerator.generateGradleBuild(request));
|
String content = new String(this.projectGenerator.generateGradleBuild(request));
|
||||||
return new GradleBuildAssert(content).validateProjectRequest(request);
|
return new GradleBuildAssert(content);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected ProjectAssert generateProject(ProjectRequest request) {
|
protected ProjectAssert generateProject(ProjectRequest request) {
|
||||||
|
|||||||
@@ -49,14 +49,22 @@ class ProjectGeneratorTests extends AbstractProjectGeneratorTests {
|
|||||||
@Test
|
@Test
|
||||||
void defaultMavenPom() {
|
void defaultMavenPom() {
|
||||||
ProjectRequest request = createProjectRequest("web");
|
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);
|
verifyProjectSuccessfulEventFor(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void defaultGradleBuild() {
|
void defaultGradleBuild() {
|
||||||
ProjectRequest request = createProjectRequest("web");
|
ProjectRequest request = createProjectRequest("web");
|
||||||
generateGradleBuild(request).doesNotContain("import");
|
generateGradleBuild(request).hasVersion(request.getVersion())
|
||||||
|
.hasSpringBootBuildScriptPlugin(request.getBootVersion())
|
||||||
|
.hasJavaVersion(request.getJavaVersion()).doesNotContain("import");
|
||||||
verifyProjectSuccessfulEventFor(request);
|
verifyProjectSuccessfulEventFor(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,6 +89,37 @@ class ProjectGeneratorTests extends AbstractProjectGeneratorTests {
|
|||||||
verifyProjectSuccessfulEventFor(request);
|
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
|
@Test
|
||||||
void noDependencyAddsRootStarter() {
|
void noDependencyAddsRootStarter() {
|
||||||
ProjectRequest request = createProjectRequest();
|
ProjectRequest request = createProjectRequest();
|
||||||
@@ -504,7 +543,9 @@ class ProjectGeneratorTests extends AbstractProjectGeneratorTests {
|
|||||||
void gradleBuildWithSpringBoot15() {
|
void gradleBuildWithSpringBoot15() {
|
||||||
ProjectRequest request = createProjectRequest("web");
|
ProjectRequest request = createProjectRequest("web");
|
||||||
request.setBootVersion("1.5.20.BUILD-SNAPSHOT");
|
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(
|
.contains(
|
||||||
"implementation 'org.springframework.boot:spring-boot-starter-web'")
|
"implementation 'org.springframework.boot:spring-boot-starter-web'")
|
||||||
.contains(
|
.contains(
|
||||||
@@ -516,7 +557,8 @@ class ProjectGeneratorTests extends AbstractProjectGeneratorTests {
|
|||||||
void gradleBuildWithSpringBoot20() {
|
void gradleBuildWithSpringBoot20() {
|
||||||
ProjectRequest request = createProjectRequest("web");
|
ProjectRequest request = createProjectRequest("web");
|
||||||
request.setBootVersion("2.0.0.RELEASE");
|
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'")
|
.doesNotContain("apply plugin: 'spring-boot'")
|
||||||
.contains("apply plugin: 'io.spring.dependency-management'")
|
.contains("apply plugin: 'io.spring.dependency-management'")
|
||||||
.contains(
|
.contains(
|
||||||
|
|||||||
@@ -16,8 +16,6 @@
|
|||||||
|
|
||||||
package io.spring.initializr.test.generator;
|
package io.spring.initializr.test.generator;
|
||||||
|
|
||||||
import io.spring.initializr.generator.ProjectRequest;
|
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -33,22 +31,14 @@ public class GradleBuildAssert {
|
|||||||
this.content = content;
|
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) {
|
public GradleBuildAssert hasVersion(String version) {
|
||||||
return contains("version = '" + version + "'");
|
return contains("version = '" + version + "'");
|
||||||
}
|
}
|
||||||
|
|
||||||
public GradleBuildAssert hasBootVersion(String bootVersion) {
|
public GradleBuildAssert hasSpringBootBuildScriptPlugin(String bootVersion) {
|
||||||
return contains("springBootVersion = '" + bootVersion + "'");
|
return contains("ext {").contains("springBootVersion = '" + bootVersion + "'")
|
||||||
|
.contains(
|
||||||
|
"classpath(\"org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}\")");
|
||||||
}
|
}
|
||||||
|
|
||||||
public GradleBuildAssert hasJavaVersion(String javaVersion) {
|
public GradleBuildAssert hasJavaVersion(String javaVersion) {
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ import java.net.URL;
|
|||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import io.spring.initializr.generator.ProjectRequest;
|
|
||||||
import io.spring.initializr.metadata.BillOfMaterials;
|
import io.spring.initializr.metadata.BillOfMaterials;
|
||||||
import io.spring.initializr.metadata.Dependency;
|
import io.spring.initializr.metadata.Dependency;
|
||||||
import io.spring.initializr.metadata.InitializrConfiguration.Env.Maven.ParentPom;
|
import io.spring.initializr.metadata.InitializrConfiguration.Env.Maven.ParentPom;
|
||||||
@@ -82,18 +81,6 @@ public class PomAssert {
|
|||||||
parseRepositories();
|
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) {
|
public PomAssert contains(String expression) {
|
||||||
assertThat(this.content).contains(expression);
|
assertThat(this.content).contains(expression);
|
||||||
return this;
|
return this;
|
||||||
|
|||||||
Reference in New Issue
Block a user