From 8efe5f34bec115933694d2f5414cd0d7df90446f Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Mon, 18 Sep 2017 15:02:01 +0200 Subject: [PATCH] Ensure configuration can be serialized Closes gh-506 --- .../initializr/metadata/Dependency.java | 1 + .../initializr/util/VersionProperty.java | 3 + .../resources/application-test-default.yml | 1 + .../service/InitializrServiceSmokeTests.java | 86 +++++++++++++++++++ .../metadata/config/test-default.json | 1 + 5 files changed, 92 insertions(+) create mode 100644 initializr-service/src/test/java/io/spring/initializr/service/InitializrServiceSmokeTests.java diff --git a/initializr-generator/src/main/java/io/spring/initializr/metadata/Dependency.java b/initializr-generator/src/main/java/io/spring/initializr/metadata/Dependency.java index c6428560..a454838c 100644 --- a/initializr-generator/src/main/java/io/spring/initializr/metadata/Dependency.java +++ b/initializr-generator/src/main/java/io/spring/initializr/metadata/Dependency.java @@ -425,6 +425,7 @@ public class Dependency extends MetadataElement implements Describable { */ private String version; + @JsonIgnore private VersionRange range; public String getGroupId() { diff --git a/initializr-generator/src/main/java/io/spring/initializr/util/VersionProperty.java b/initializr-generator/src/main/java/io/spring/initializr/util/VersionProperty.java index f01480fa..7a5eb554 100644 --- a/initializr-generator/src/main/java/io/spring/initializr/util/VersionProperty.java +++ b/initializr-generator/src/main/java/io/spring/initializr/util/VersionProperty.java @@ -20,6 +20,8 @@ import java.io.Serializable; import java.util.Arrays; import java.util.List; +import com.fasterxml.jackson.annotation.JsonValue; + import org.springframework.util.StringUtils; /** @@ -55,6 +57,7 @@ public class VersionProperty implements Serializable, Comparable request = RequestEntity.get(new URI("/")) + .accept(MediaType.parseMediaType("application/vnd.initializr.v2.1+json")) + .build(); + ResponseEntity response = this.restTemplate.exchange(request, String.class); + assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK); + new JSONObject(response.getBody()); + } + + @Test + public void configurationCanBeSerialized() throws URISyntaxException { + RequestEntity request = RequestEntity.get(new URI("/metadata/config")) + .accept(MediaType.APPLICATION_JSON) + .build(); + ResponseEntity response = this.restTemplate.exchange(request, String.class); + assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK); + InitializrMetadata actual = InitializrMetadataBuilder.create() + .withInitializrMetadata(new ByteArrayResource( + response.getBody().getBytes())) + .build(); + assertThat(actual).isNotNull(); + InitializrMetadata expected = metadataProvider.get(); + assertThat(actual.getDependencies().getAll().size()) + .isEqualTo(expected.getDependencies().getAll().size()); + assertThat(actual.getConfiguration().getEnv().getBoms().size()) + .isEqualTo(expected.getConfiguration().getEnv().getBoms().size()); + } + +} diff --git a/initializr-web/src/test/resources/metadata/config/test-default.json b/initializr-web/src/test/resources/metadata/config/test-default.json index bc9e0d82..75dc1db4 100644 --- a/initializr-web/src/test/resources/metadata/config/test-default.json +++ b/initializr-web/src/test/resources/metadata/config/test-default.json @@ -86,6 +86,7 @@ "my-api-bom": { "groupId": "org.acme", "artifactId": "my-api-bom", + "versionProperty": "my-api.version", "additionalBoms": [ "my-api-dependencies-bom" ],