diff --git a/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsOptions.java b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsOptions.java index 941d70938..735c90983 100644 --- a/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsOptions.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsOptions.java @@ -309,6 +309,7 @@ private Inline(Collection values, @Nullable String promptRef, * @return */ @JsonProperty + @JsonInclude(Include.ALWAYS) public Collection getInline() { return inline; } diff --git a/src/test/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsJacksonModuleIntegrationTest.java b/src/test/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsJacksonModuleIntegrationTest.java index f9f3feb21..dab84b2cb 100644 --- a/src/test/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsJacksonModuleIntegrationTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsJacksonModuleIntegrationTest.java @@ -481,6 +481,27 @@ void rendersFullInlineOptions() { }); } + @Test // #2257 + void rendersEmptyInlineOptions() { + + var options = HalFormsOptions.inline() + .withPromptField("my-prompt-field") + .withValueField("my-value-field") + .withMinItems(2L) + .withMaxItems(3L); + + getCuriedMapper() + .assertSerializes(options) + .into(result -> { + + assertThat(result.read("$.inline", Collection.class)).isEmpty(); + assertThat(result.read("$.promptField", String.class)).isEqualTo("my-prompt-field"); + assertThat(result.read("$.valueField", String.class)).isEqualTo("my-value-field"); + assertThat(result.read("$.minItems", Long.class)).isEqualTo(2L); + assertThat(result.read("$.maxItems", Long.class)).isEqualTo(3L); + }); + } + @Test // #2257 void rendersFullRemoteOptions() {