aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/com/fasterxml/jackson/databind/jsontype
diff options
context:
space:
mode:
authorTatu Saloranta <tatu.saloranta@iki.fi>2020-06-19 19:19:48 -0700
committerTatu Saloranta <tatu.saloranta@iki.fi>2020-06-19 19:19:48 -0700
commit65c81af00cdfc9af51f89d249061acca6f9b68b5 (patch)
tree046ae9acbd774dfab3ee9535588e990f38fe6c44 /src/test/java/com/fasterxml/jackson/databind/jsontype
parent75c992461bf5f332984c9c52ae8b649ae1f33557 (diff)
parent5d1f645b6d8fa6b15800c54272764b715636f95b (diff)
downloadjackson-databind-65c81af00cdfc9af51f89d249061acca6f9b68b5.tar.gz
Merge branch '2.11' into 2.12
Diffstat (limited to 'src/test/java/com/fasterxml/jackson/databind/jsontype')
-rw-r--r--src/test/java/com/fasterxml/jackson/databind/jsontype/deftyping/DefaultTypeResolverForLong2753Test.java62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/test/java/com/fasterxml/jackson/databind/jsontype/deftyping/DefaultTypeResolverForLong2753Test.java b/src/test/java/com/fasterxml/jackson/databind/jsontype/deftyping/DefaultTypeResolverForLong2753Test.java
new file mode 100644
index 000000000..b9ff71d00
--- /dev/null
+++ b/src/test/java/com/fasterxml/jackson/databind/jsontype/deftyping/DefaultTypeResolverForLong2753Test.java
@@ -0,0 +1,62 @@
+package com.fasterxml.jackson.databind.jsontype.deftyping;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.fasterxml.jackson.annotation.*;
+
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.JsonTypeResolver;
+import com.fasterxml.jackson.databind.cfg.MapperConfig;
+import com.fasterxml.jackson.databind.jsontype.impl.StdTypeResolverBuilder;
+
+public class DefaultTypeResolverForLong2753Test extends BaseMapTest
+{
+ static class Data {
+ private Long key;
+
+ @JsonCreator
+ private Data(@JsonProperty("key") Long key) {
+ this.key = key;
+ }
+
+ @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class")
+ @JsonTypeResolver(MyTypeResolverBuilder.class)
+ public long key() {
+ return key;
+ }
+ }
+
+ static class MyTypeResolverBuilder extends StdTypeResolverBuilder {
+ @Override
+ protected boolean allowPrimitiveTypes(MapperConfig<?> config,
+ JavaType baseType) {
+ return true;
+ }
+ }
+
+ public void testDefaultTypingWithLong() throws Exception
+ {
+ Data data = new Data(1L);
+ Map<String, Object> mapData = new HashMap<>();
+ mapData.put("longInMap", 2L);
+ mapData.put("longAsField", data);
+
+ // Configure Jackson to preserve types
+// StdTypeResolverBuilder resolver = new MyTypeResolverBuilder();
+// resolver.init(JsonTypeInfo.Id.CLASS, null);
+// resolver.inclusion(JsonTypeInfo.As.PROPERTY);
+// resolver.typeProperty("__t");
+ ObjectMapper mapper = jsonMapperBuilder()
+// .setDefaultTyping(resolver)
+ .enable(SerializationFeature.INDENT_OUTPUT)
+ .build();
+
+ // Serialize
+ String json = mapper.writeValueAsString(mapData);
+//System.err.println("JSON:\n"+json);
+ Map<?,?> result = mapper.readValue(json, Map.class);
+ assertNotNull(result);
+ assertEquals(2, result.size());
+ }
+}