aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTatu Saloranta <tatu.saloranta@iki.fi>2020-07-17 15:04:02 -0700
committerTatu Saloranta <tatu.saloranta@iki.fi>2020-07-17 15:04:02 -0700
commit1a3a3e1707fdb4324e4f08258da36364c2dbd737 (patch)
treece0e911a3617313ba4ffaf7c5ba5a6cf7f0ae7e6
parent4250c00ae183ddc7ce7c56654596c565fe60ada6 (diff)
parent781457b9af8438bc87deddb237812d30fedbd609 (diff)
downloadjackson-databind-1a3a3e1707fdb4324e4f08258da36364c2dbd737.tar.gz
Merge branch '2.11' into 2.12
-rw-r--r--src/test/java/com/fasterxml/jackson/databind/ser/TestAutoDetect.java16
-rw-r--r--src/test/java/com/fasterxml/jackson/failing/TestAutoDetect2789.java82
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());
+ }
+}