mirror of
https://gitee.com/dcren/initializr.git
synced 2025-07-15 23:13:30 +08:00
Map whitespace input to default value
This commit checks if a request for any of the text capability is set with only whitespaces and replaces it with the metadata default counterpart. Closes gh-769
This commit is contained in:
parent
8660fedd0b
commit
75307eab0f
@ -17,6 +17,7 @@
|
||||
package io.spring.initializr.web.project;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import io.spring.initializr.generator.buildsystem.BuildSystem;
|
||||
@ -50,14 +51,18 @@ public class ProjectRequestToDescriptionConverter {
|
||||
validateDependencyRange(springBootVersion, resolvedDependencies);
|
||||
ProjectDescription description = new ProjectDescription();
|
||||
description.setApplicationName(getApplicationName(request, metadata));
|
||||
description.setArtifactId(request.getArtifactId());
|
||||
description.setArtifactId(determineValue(request.getArtifactId(),
|
||||
() -> metadata.getArtifactId().getContent()));
|
||||
description.setBaseDirectory(request.getBaseDir());
|
||||
description.setBuildSystem(getBuildSystem(request, metadata));
|
||||
description.setDescription(request.getDescription());
|
||||
description.setGroupId(request.getGroupId());
|
||||
description.setDescription(determineValue(request.getDescription(),
|
||||
() -> metadata.getDescription().getContent()));
|
||||
description.setGroupId(determineValue(request.getGroupId(),
|
||||
() -> metadata.getGroupId().getContent()));
|
||||
description.setLanguage(
|
||||
Language.forId(request.getLanguage(), request.getJavaVersion()));
|
||||
description.setName(request.getName());
|
||||
description.setName(
|
||||
determineValue(request.getName(), () -> metadata.getName().getContent()));
|
||||
description.setPackageName(getPackageName(request, metadata));
|
||||
description.setPackaging(Packaging.forId(request.getPackaging()));
|
||||
description.setPlatformVersion(Version.parse(springBootVersion));
|
||||
@ -67,6 +72,10 @@ public class ProjectRequestToDescriptionConverter {
|
||||
return description;
|
||||
}
|
||||
|
||||
private String determineValue(String candidate, Supplier<String> fallback) {
|
||||
return (StringUtils.hasText(candidate)) ? candidate : fallback.get();
|
||||
}
|
||||
|
||||
private void validate(ProjectRequest request, InitializrMetadata metadata) {
|
||||
validateSpringBootVersion(request);
|
||||
validateType(request.getType(), metadata);
|
||||
|
@ -205,6 +205,63 @@ public class ProjectRequestToDescriptionConverterTests {
|
||||
assertThat(description.getLanguage().jvmVersion()).isEqualTo("1.8");
|
||||
}
|
||||
|
||||
@Test
|
||||
void convertShouldUsedDefaultFromMetadataOnEmptyGroup() {
|
||||
ProjectRequest request = createProjectRequest();
|
||||
request.setGroupId(" ");
|
||||
ProjectDescription description = this.converter.convert(request, this.metadata);
|
||||
assertThat(description.getGroupId()).isEqualTo("com.example");
|
||||
}
|
||||
|
||||
@Test
|
||||
void convertShouldUsedDefaultFromMetadataOnEmptyArtifact() {
|
||||
ProjectRequest request = createProjectRequest();
|
||||
request.setArtifactId("");
|
||||
ProjectDescription description = this.converter.convert(request, this.metadata);
|
||||
assertThat(description.getArtifactId()).isEqualTo("demo");
|
||||
}
|
||||
|
||||
@Test
|
||||
void convertShouldUsedDefaultFromMetadataOnEmptyName() {
|
||||
ProjectRequest request = createProjectRequest();
|
||||
request.setName(" ");
|
||||
ProjectDescription description = this.converter.convert(request, this.metadata);
|
||||
assertThat(description.getName()).isEqualTo("demo");
|
||||
}
|
||||
|
||||
@Test
|
||||
void convertShouldUsedDefaultFromMetadataOnEmptyDescription() {
|
||||
ProjectRequest request = createProjectRequest();
|
||||
request.setDescription(" ");
|
||||
ProjectDescription description = this.converter.convert(request, this.metadata);
|
||||
assertThat(description.getDescription())
|
||||
.isEqualTo("Demo project for Spring Boot");
|
||||
}
|
||||
|
||||
@Test
|
||||
void convertShouldUsedDefaultFromMetadataOnEmptyPackageName() {
|
||||
ProjectRequest request = createProjectRequest();
|
||||
request.setPackageName(" ");
|
||||
ProjectDescription description = this.converter.convert(request, this.metadata);
|
||||
assertThat(description.getPackageName()).isEqualTo("com.example.demo");
|
||||
}
|
||||
|
||||
@Test
|
||||
void convertShouldUsedDefaultFromMetadataWhenGeneratingPackageNameWithEmptyGroup() {
|
||||
ProjectRequest request = createProjectRequest();
|
||||
request.setGroupId(" ");
|
||||
ProjectDescription description = this.converter.convert(request, this.metadata);
|
||||
assertThat(description.getPackageName()).isEqualTo("com.example.demo");
|
||||
}
|
||||
|
||||
@Test
|
||||
void convertShouldUsedDefaultFromMetadataWhenGeneratingPackageNameWithEmptyArtifact() {
|
||||
ProjectRequest request = createProjectRequest();
|
||||
request.setArtifactId(" ");
|
||||
ProjectDescription description = this.converter.convert(request, this.metadata);
|
||||
assertThat(description.getPackageName()).isEqualTo("com.example.demo");
|
||||
}
|
||||
|
||||
private ProjectRequest createProjectRequest() {
|
||||
WebProjectRequest request = new WebProjectRequest();
|
||||
request.initialize(this.metadata);
|
||||
|
Loading…
Reference in New Issue
Block a user