/* * Copyright (C) 2013 Intel Corporation * All rights reserved. */ package test.jackson; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.PropertyNamingStrategy; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.dataformat.xml.XmlMapper; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import com.intel.dcsg.cpg.crypto.RsaUtil; import com.intel.mtwilson.jackson.PublicKeyDeserializer; import com.intel.mtwilson.jackson.PublicKeySerializer; import java.security.KeyPair; import java.security.PublicKey; import org.junit.Test; import static org.junit.Assert.*; import org.junit.BeforeClass; /** * * @author jbuhacoff */ public class JacksonAbstractClassTest { private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(JacksonAbstractClassTest.class); public static abstract class A { } public static class B extends A { public String b; } public static class C extends A { public String c; } private static ObjectMapper json; @BeforeClass public static void createMapper() { json = new ObjectMapper(); json.setSerializationInclusion(JsonInclude.Include.NON_NULL); json.setPropertyNamingStrategy(new PropertyNamingStrategy.LowerCaseWithUnderscoresStrategy()); json.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); json.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); } @Test public void testAbstractClass() throws Exception { B b = new B(); b.b = "ok b"; String jsonB = json.writeValueAsString(b); log.debug("B: {}", jsonB); A a = json.readValue(jsonB, A.class); String jsonA = json.writeValueAsString(a); log.debug("A: {}", jsonA); } }