From 7dab2ebc540c1bfd321829896691c79a6e9e69d1 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Fri, 26 Jul 2024 00:07:01 +0100 Subject: [PATCH 1/4] add extra single arg deser tests --- .../creators/ConstructorDetectorTest.java | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/creators/ConstructorDetectorTest.java b/src/test/java/com/fasterxml/jackson/databind/deser/creators/ConstructorDetectorTest.java index dd3e5d98f7..8b4fe4fb57 100644 --- a/src/test/java/com/fasterxml/jackson/databind/deser/creators/ConstructorDetectorTest.java +++ b/src/test/java/com/fasterxml/jackson/databind/deser/creators/ConstructorDetectorTest.java @@ -30,6 +30,46 @@ public SingleArgNotAnnotated(@ImplicitName("value") int value) { } } + static class SingleArgShort { + protected short v; + + SingleArgShort() { v = -1; } + + public SingleArgShort(@ImplicitName("value") short value) { + v = value; + } + } + + static class SingleArgLong { + protected long v; + + SingleArgLong() { v = -1; } + + public SingleArgLong(@ImplicitName("value") long value) { + v = value; + } + } + + static class SingleArgFloat { + protected float v; + + SingleArgFloat() { v = -1.0f; } + + public SingleArgFloat(@ImplicitName("value") float value) { + v = value; + } + } + + static class SingleArgDouble { + protected double v; + + SingleArgDouble() { v = -1.0f; } + + public SingleArgDouble(@ImplicitName("value") double value) { + v = value; + } + } + static class SingleArgNoMode { protected int v; @@ -111,6 +151,47 @@ public void test1ArgDefaultsToPropertiesNonAnnotated() throws Exception assertEquals(137, value.v); } + @Test + public void test1ArgDefaultsToPropertiesNonAnnotatedDecimal() throws Exception + { + SingleArgNotAnnotated value = MAPPER_PROPS.readValue(a2q("{'value' : 137.0 }"), + SingleArgNotAnnotated.class); + assertEquals(137, value.v); + } + + @Test + public void test1ArgDefaultsToPropertiesShort() throws Exception + { + SingleArgShort value = MAPPER_PROPS.readValue(a2q("{'value' : 137 }"), + SingleArgShort.class); + assertEquals(137, value.v); + } + + @Test + public void test1ArgDefaultsToPropertiesLong() throws Exception + { + String val = Long.toString(Long.MAX_VALUE); + SingleArgLong value = MAPPER_PROPS.readValue(a2q("{'value' : " + val + " }"), + SingleArgLong.class); + assertEquals(Long.MAX_VALUE, value.v); + } + + @Test + public void test1ArgDefaultsToPropertiesFloat() throws Exception + { + SingleArgFloat value = MAPPER_PROPS.readValue(a2q("{'value' : 136.99 }"), + SingleArgFloat.class); + assertEquals(136.99f, value.v); + } + + @Test + public void test1ArgDefaultsToPropertiesDouble() throws Exception + { + SingleArgDouble value = MAPPER_PROPS.readValue(a2q("{'value' : 999999999999999999.99 }"), + SingleArgDouble.class); + assertEquals(999999999999999999.99, value.v); + } + @Test public void test1ArgDefaultsToPropertiesNoMode() throws Exception { From 7ee5c3941c45055e49d493864fe711493832a293 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Fri, 26 Jul 2024 00:18:31 +0100 Subject: [PATCH 2/4] Update ConstructorDetectorTest.java --- .../databind/deser/creators/ConstructorDetectorTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/creators/ConstructorDetectorTest.java b/src/test/java/com/fasterxml/jackson/databind/deser/creators/ConstructorDetectorTest.java index 8b4fe4fb57..9c939ca9fb 100644 --- a/src/test/java/com/fasterxml/jackson/databind/deser/creators/ConstructorDetectorTest.java +++ b/src/test/java/com/fasterxml/jackson/databind/deser/creators/ConstructorDetectorTest.java @@ -63,7 +63,7 @@ public SingleArgFloat(@ImplicitName("value") float value) { static class SingleArgDouble { protected double v; - SingleArgDouble() { v = -1.0f; } + SingleArgDouble() { v = -1.0; } public SingleArgDouble(@ImplicitName("value") double value) { v = value; From 48b92f3c580168b6d20ca32fae628a14208fb075 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Fri, 26 Jul 2024 00:22:52 +0100 Subject: [PATCH 3/4] byte test --- .../creators/ConstructorDetectorTest.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/creators/ConstructorDetectorTest.java b/src/test/java/com/fasterxml/jackson/databind/deser/creators/ConstructorDetectorTest.java index 9c939ca9fb..52be64f176 100644 --- a/src/test/java/com/fasterxml/jackson/databind/deser/creators/ConstructorDetectorTest.java +++ b/src/test/java/com/fasterxml/jackson/databind/deser/creators/ConstructorDetectorTest.java @@ -29,6 +29,16 @@ public SingleArgNotAnnotated(@ImplicitName("value") int value) { v = value; } } + + static class SingleArgByte { + protected byte v; + + SingleArgByte() { v = -1; } + + public SingleArgByte(@ImplicitName("value") byte value) { + v = value; + } + } static class SingleArgShort { protected short v; @@ -159,6 +169,14 @@ public void test1ArgDefaultsToPropertiesNonAnnotatedDecimal() throws Exception assertEquals(137, value.v); } + @Test + public void test1ArgDefaultsToPropertiesByte() throws Exception + { + SingleArgByte value = MAPPER_PROPS.readValue(a2q("{'value' : -99 }"), + SingleArgByte.class); + assertEquals(-99, value.v); + } + @Test public void test1ArgDefaultsToPropertiesShort() throws Exception { From c0e0efdcf785cc4ea1b1e4ebd6ee8ea8c2867216 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Fri, 26 Jul 2024 00:47:34 +0100 Subject: [PATCH 4/4] Update ConstructorDetectorTest.java --- .../databind/deser/creators/ConstructorDetectorTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/creators/ConstructorDetectorTest.java b/src/test/java/com/fasterxml/jackson/databind/deser/creators/ConstructorDetectorTest.java index 52be64f176..1c06ce647e 100644 --- a/src/test/java/com/fasterxml/jackson/databind/deser/creators/ConstructorDetectorTest.java +++ b/src/test/java/com/fasterxml/jackson/databind/deser/creators/ConstructorDetectorTest.java @@ -29,7 +29,7 @@ public SingleArgNotAnnotated(@ImplicitName("value") int value) { v = value; } } - + static class SingleArgByte { protected byte v;