package com.fasterxml.jackson.databind.creators; import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.databind.*; public class TestPolymorphicDelegating extends BaseMapTest { // For [databind#580] @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS) static abstract class Issue580Base { } static class Issue580Impl extends Issue580Base { public int id = 3; public Issue580Impl() { } public Issue580Impl(int id) { this.id = id; } } static class Issue580Bean { public Issue580Base value; @JsonCreator public Issue580Bean(Issue580Base v) { value = v; } @JsonValue public Issue580Base value() { return value; } } /* /********************************************************** /* Unit tests /********************************************************** */ public void testAbstractDelegateWithCreator() throws Exception { Issue580Bean input = new Issue580Bean(new Issue580Impl(13)); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(input); Issue580Bean result = mapper.readValue(json, Issue580Bean.class); assertNotNull(result); assertNotNull(result.value); assertEquals(13, ((Issue580Impl) result.value).id); } }