diff --git a/afterburner/src/test/java/com/fasterxml/jackson/module/afterburner/deser/TestSimpleDeserialize.java b/afterburner/src/test/java/com/fasterxml/jackson/module/afterburner/deser/BasicDeserializeTest.java similarity index 87% rename from afterburner/src/test/java/com/fasterxml/jackson/module/afterburner/deser/TestSimpleDeserialize.java rename to afterburner/src/test/java/com/fasterxml/jackson/module/afterburner/deser/BasicDeserializeTest.java index 718e825e..6da3767e 100644 --- a/afterburner/src/test/java/com/fasterxml/jackson/module/afterburner/deser/TestSimpleDeserialize.java +++ b/afterburner/src/test/java/com/fasterxml/jackson/module/afterburner/deser/BasicDeserializeTest.java @@ -4,10 +4,12 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; + import com.fasterxml.jackson.databind.ObjectMapper; + import com.fasterxml.jackson.module.afterburner.AfterburnerTestBase; -public class TestSimpleDeserialize extends AfterburnerTestBase +public class BasicDeserializeTest extends AfterburnerTestBase { public enum MyEnum { A, B, C; @@ -143,6 +145,23 @@ static class Issue60Pojo { public List foos; } + // [modules-base#123]: fluent method(s) + public static class Model123 { + int value = 10; + + protected Model123() { } + public Model123(int v) { value = v; } + + public int getValue() { + return value; + } + + public Model123 setValue(int value) { + this.value = value; + return this; + } + } + /* /********************************************************************** /* Test methods, method access @@ -325,38 +344,13 @@ public void testProblemWithIndentation() throws Exception { assertEquals(0, pojo.foos.size()); } - // 28-Sep-2019, tatu: I do not fully understand what this method tried to do; - // it seemed to be a contribution from July 2016. But I noticed that it breaks - // with JDK 12 and unlikely to be allowed so let's comment it out. - /* + // [modules-base#123] + public void testFluentMethod() throws Exception + { + String json = MAPPER.writeValueAsString(new Model123(28)); - static class CheckGeneratedDeserializerName { - public String stringField; - } - - @SuppressWarnings("unchecked") - public void testGeneratedDeserializerName() throws Exception { - MAPPER.readValue("{\"stringField\":\"foo\"}", CheckGeneratedDeserializerName.class); - ClassLoader cl = getClass().getClassLoader(); - Field declaredField = ClassLoader.class.getDeclaredField("classes"); - declaredField.setAccessible(true); - // 06-Sep-2017, tatu: Hmmh. Whatever this code does... is not very robust. - // But has to do for now. OpenJDK 7 had issues with size, increased: - Class[] os = new Class[8192]; - ((Vector>) declaredField.get(cl)).copyInto(os); - - String expectedClassName = TestSimpleDeserialize.class.getCanonicalName() - + "$CheckGeneratedDeserializerName$Access4JacksonDeserializer"; - for (Class clz : os) { - if (clz == null) { - break; - } - if (clz.getCanonicalName() != null - && clz.getCanonicalName().startsWith(expectedClassName)) { - return; - } - } - fail("Expected class not found:" + expectedClassName); + Model123 result = MAPPER.readValue(json, Model123.class); + assertNotNull(result); + assertEquals(28, result.value); } - */ } diff --git a/blackbird/src/test/java/com/fasterxml/jackson/module/blackbird/deser/TestSimpleDeserialize.java b/blackbird/src/test/java/com/fasterxml/jackson/module/blackbird/deser/BasicDeserializeTest.java similarity index 99% rename from blackbird/src/test/java/com/fasterxml/jackson/module/blackbird/deser/TestSimpleDeserialize.java rename to blackbird/src/test/java/com/fasterxml/jackson/module/blackbird/deser/BasicDeserializeTest.java index ba57e25b..1367c448 100644 --- a/blackbird/src/test/java/com/fasterxml/jackson/module/blackbird/deser/TestSimpleDeserialize.java +++ b/blackbird/src/test/java/com/fasterxml/jackson/module/blackbird/deser/BasicDeserializeTest.java @@ -1,12 +1,15 @@ package com.fasterxml.jackson.module.blackbird.deser; import java.util.List; + import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; + import com.fasterxml.jackson.databind.ObjectMapper; + import com.fasterxml.jackson.module.blackbird.BlackbirdTestBase; -public class TestSimpleDeserialize extends BlackbirdTestBase +public class BasicDeserializeTest extends BlackbirdTestBase { public enum MyEnum { A, B, C; diff --git a/blackbird/src/test/java/com/fasterxml/jackson/module/blackbird/failing/BasicDeserialize123Test.java b/blackbird/src/test/java/com/fasterxml/jackson/module/blackbird/failing/BasicDeserialize123Test.java new file mode 100644 index 00000000..de3084a9 --- /dev/null +++ b/blackbird/src/test/java/com/fasterxml/jackson/module/blackbird/failing/BasicDeserialize123Test.java @@ -0,0 +1,38 @@ +package com.fasterxml.jackson.module.blackbird.failing; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import com.fasterxml.jackson.module.blackbird.BlackbirdTestBase; + +// Failing test from "BasicDeserializeTest", see [modules-base#123] +public class BasicDeserialize123Test extends BlackbirdTestBase +{ + // [modules-base#123]: fluent method(s) + static class Model123 { + int value = 10; + + protected Model123() { } + public Model123(int v) { value = v; } + + public int getValue() { + return value; + } + + public Model123 setValue(int value) { + this.value = value; + return this; + } + } + + private final ObjectMapper MAPPER = newObjectMapper(); + + // [modules-base#123] + public void testFluentMethod() throws Exception + { + String json = MAPPER.writeValueAsString(new Model123(28)); + + Model123 result = MAPPER.readValue(json, Model123.class); + assertNotNull(result); + assertEquals(28, result.value); + } +}