diff options
author | Tatu Saloranta <tatu.saloranta@iki.fi> | 2020-07-17 15:04:02 -0700 |
---|---|---|
committer | Tatu Saloranta <tatu.saloranta@iki.fi> | 2020-07-17 15:04:02 -0700 |
commit | 1a3a3e1707fdb4324e4f08258da36364c2dbd737 (patch) | |
tree | ce0e911a3617313ba4ffaf7c5ba5a6cf7f0ae7e6 /src | |
parent | 4250c00ae183ddc7ce7c56654596c565fe60ada6 (diff) | |
parent | 781457b9af8438bc87deddb237812d30fedbd609 (diff) | |
download | jackson-databind-1a3a3e1707fdb4324e4f08258da36364c2dbd737.tar.gz |
Merge branch '2.11' into 2.12
Diffstat (limited to 'src')
-rw-r--r-- | src/test/java/com/fasterxml/jackson/databind/ser/TestAutoDetect.java | 16 | ||||
-rw-r--r-- | src/test/java/com/fasterxml/jackson/failing/TestAutoDetect2789.java | 82 |
2 files changed, 88 insertions, 10 deletions
diff --git a/src/test/java/com/fasterxml/jackson/databind/ser/TestAutoDetect.java b/src/test/java/com/fasterxml/jackson/databind/ser/TestAutoDetect.java index c468f2683..1f8e3623e 100644 --- a/src/test/java/com/fasterxml/jackson/databind/ser/TestAutoDetect.java +++ b/src/test/java/com/fasterxml/jackson/databind/ser/TestAutoDetect.java @@ -42,27 +42,26 @@ public class TestAutoDetect /********************************************************* */ + private final ObjectMapper MAPPER = newJsonMapper(); + public void testDefaults() throws Exception { - ObjectMapper m = new ObjectMapper(); // by default, only public fields and getters are detected assertEquals("{\"p1\":\"public\"}", - m.writeValueAsString(new FieldBean())); + MAPPER.writeValueAsString(new FieldBean())); assertEquals("{\"a\":\"a\"}", - m.writeValueAsString(new MethodBean())); + MAPPER.writeValueAsString(new MethodBean())); } public void testProtectedViaAnnotations() throws Exception { - ObjectMapper m = new ObjectMapper(); - - Map<String,Object> result = writeAndMap(m, new ProtFieldBean()); + Map<String,Object> result = writeAndMap(MAPPER, new ProtFieldBean()); assertEquals(2, result.size()); assertEquals("public", result.get("p1")); assertEquals("protected", result.get("p2")); assertNull(result.get("p3")); - result = writeAndMap(m, new ProtMethodBean()); + result = writeAndMap(MAPPER, new ProtMethodBean()); assertEquals(2, result.size()); assertEquals("a", result.get("a")); assertEquals("b", result.get("b")); @@ -93,7 +92,6 @@ public class TestAutoDetect assertEquals("c", result.get("c")); } - // [JACKSON-621] public void testBasicSetup() throws Exception { ObjectMapper m = new ObjectMapper(); @@ -108,7 +106,6 @@ public class TestAutoDetect assertEquals("private", result.get("p3")); } - // [JACKSON-595] public void testMapperShortcutMethods() throws Exception { ObjectMapper m = new ObjectMapper(); @@ -120,5 +117,4 @@ public class TestAutoDetect assertEquals("protected", result.get("p2")); assertEquals("private", result.get("p3")); } - } diff --git a/src/test/java/com/fasterxml/jackson/failing/TestAutoDetect2789.java b/src/test/java/com/fasterxml/jackson/failing/TestAutoDetect2789.java new file mode 100644 index 000000000..b2b703340 --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/failing/TestAutoDetect2789.java @@ -0,0 +1,82 @@ +package com.fasterxml.jackson.failing; + +import java.util.*; + +import com.fasterxml.jackson.annotation.*; + +import com.fasterxml.jackson.databind.*; + +/** + * Unit tests for checking extended auto-detect configuration, + * in context of serialization + */ +public class TestAutoDetect2789 + extends BaseMapTest +{ + // For [databind#2789] + + @SuppressWarnings("unused") + @JsonAutoDetect( + getterVisibility = JsonAutoDetect.Visibility.NONE, + creatorVisibility = JsonAutoDetect.Visibility.NONE, + isGetterVisibility = JsonAutoDetect.Visibility.NONE, + fieldVisibility = JsonAutoDetect.Visibility.NONE, + setterVisibility = JsonAutoDetect.Visibility.NONE) + @JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.PROPERTY, + property = "type", + visible = true) + @JsonSubTypes({ + @JsonSubTypes.Type(name = "CLASS_A", value = DataClassA.class) + }) + private static abstract class DataParent2789 { + + @JsonProperty("type") + @JsonTypeId + private final DataType2789 type; + + DataParent2789() { + super(); + this.type = null; + } + + DataParent2789(final DataType2789 type) { + super(); + this.type = Objects.requireNonNull(type); + } + + public DataType2789 getType() { + return this.type; + } + } + + private static final class DataClassA extends DataParent2789 { + DataClassA() { + super(DataType2789.CLASS_A); + } + } + + private enum DataType2789 { + CLASS_A; + } + + /* + /********************************************************* + /* Test methods + /********************************************************* + */ + + private final ObjectMapper MAPPER = newJsonMapper(); + + // [databind#2789] + + public void testAnnotatedFieldIssue2789() throws Exception { + final DataParent2789 test = new DataClassA(); + + final String json = MAPPER.writeValueAsString(test); + + final DataParent2789 copy = MAPPER.readValue(json, DataParent2789.class); + assertEquals(DataType2789.CLASS_A, copy.getType()); + } +} |