From 0359e64c0beaa6eb14099aa967895ff2b016280b Mon Sep 17 00:00:00 2001 From: "Kim, Joo Hyuk" Date: Wed, 3 Jul 2024 11:28:32 +0900 Subject: [PATCH] Create TypeId4607Test.java (#4608) --- .../jackson/failing/TypeId4607Test.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/test/java/com/fasterxml/jackson/failing/TypeId4607Test.java diff --git a/src/test/java/com/fasterxml/jackson/failing/TypeId4607Test.java b/src/test/java/com/fasterxml/jackson/failing/TypeId4607Test.java new file mode 100644 index 0000000000..6ca992e914 --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/failing/TypeId4607Test.java @@ -0,0 +1,47 @@ +package com.fasterxml.jackson.failing; + +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonIdentityInfo; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.ObjectIdGenerators; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import static com.fasterxml.jackson.databind.BaseMapTest.newJsonMapper; + +public class TypeId4607Test { + + @JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) + @JsonTypeInfo(use = JsonTypeInfo.Id.NAME) + @JsonSubTypes({ + @JsonSubTypes.Type(value = EnumTypeDefinition.class, name = "enum"), + @JsonSubTypes.Type(value = NumberTypeDefinition.class, name = "number") + }) + interface TypeDefinition { + } + + static class EnumTypeDefinition implements TypeDefinition { + public List values; + } + + static class NumberTypeDefinition implements TypeDefinition { + } + + private static final ObjectMapper mapper = newJsonMapper(); + + @Test + public void shouldHandleTypeDefinitionJson() throws Exception { + String input = "{" + + " \"@type\": \"number\" " + + " }"; + + TypeDefinition model = mapper.readValue(input, TypeDefinition.class); + + Assertions.assertInstanceOf(NumberTypeDefinition.class, model); + } +} +