From 18eee34dd75eaafad6bc0f1922da0db8d4d09df0 Mon Sep 17 00:00:00 2001 From: Dmitry Spikhalskiy Date: Wed, 9 Nov 2016 22:39:33 +0300 Subject: [PATCH] Add failing test for an issue #1421 --- .../failing/SingleValueAsArray1421Test.java | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/test/java/com/fasterxml/jackson/failing/SingleValueAsArray1421Test.java diff --git a/src/test/java/com/fasterxml/jackson/failing/SingleValueAsArray1421Test.java b/src/test/java/com/fasterxml/jackson/failing/SingleValueAsArray1421Test.java new file mode 100644 index 0000000000..ee12ebb976 --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/failing/SingleValueAsArray1421Test.java @@ -0,0 +1,57 @@ +package com.fasterxml.jackson.failing; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.Test; + +import java.io.IOException; +import java.util.Collections; +import java.util.List; + +public class SingleValueAsArray1421Test +{ + private static final String JSON = "[{\"message\":\"messageHere\"}]"; + + static class A + { + List bs = Collections.emptyList(); + + @JsonCreator + A(final List bs) + { + this.bs = bs; + } + } + + static class B + { + List cs = Collections.emptyList(); + + @JsonCreator + B(final List cs) + { + this.cs = cs; + } + } + + public static class C + { + String message; + + @JsonCreator + C(@JsonProperty("message") String message) + { + this.message = message; + } + } + + @Test + public void testSuccessfulDeserializationOfObjectWithChainedArrayCreators() throws IOException + { + ObjectMapper om = new ObjectMapper(); + om.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); + om.readValue(JSON, A.class); + } +}