Skip to content

Commit 92181df

Browse files
authored
add extra single arg deser tests (#4647)
1 parent 7837805 commit 92181df

File tree

1 file changed

+99
-0
lines changed

1 file changed

+99
-0
lines changed

src/test/java/com/fasterxml/jackson/databind/deser/creators/ConstructorDetectorTest.java

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,56 @@ public SingleArgNotAnnotated(@ImplicitName("value") int value) {
3030
}
3131
}
3232

33+
static class SingleArgByte {
34+
protected byte v;
35+
36+
SingleArgByte() { v = -1; }
37+
38+
public SingleArgByte(@ImplicitName("value") byte value) {
39+
v = value;
40+
}
41+
}
42+
43+
static class SingleArgShort {
44+
protected short v;
45+
46+
SingleArgShort() { v = -1; }
47+
48+
public SingleArgShort(@ImplicitName("value") short value) {
49+
v = value;
50+
}
51+
}
52+
53+
static class SingleArgLong {
54+
protected long v;
55+
56+
SingleArgLong() { v = -1; }
57+
58+
public SingleArgLong(@ImplicitName("value") long value) {
59+
v = value;
60+
}
61+
}
62+
63+
static class SingleArgFloat {
64+
protected float v;
65+
66+
SingleArgFloat() { v = -1.0f; }
67+
68+
public SingleArgFloat(@ImplicitName("value") float value) {
69+
v = value;
70+
}
71+
}
72+
73+
static class SingleArgDouble {
74+
protected double v;
75+
76+
SingleArgDouble() { v = -1.0; }
77+
78+
public SingleArgDouble(@ImplicitName("value") double value) {
79+
v = value;
80+
}
81+
}
82+
3383
static class SingleArgNoMode {
3484
protected int v;
3585

@@ -111,6 +161,55 @@ public void test1ArgDefaultsToPropertiesNonAnnotated() throws Exception
111161
assertEquals(137, value.v);
112162
}
113163

164+
@Test
165+
public void test1ArgDefaultsToPropertiesNonAnnotatedDecimal() throws Exception
166+
{
167+
SingleArgNotAnnotated value = MAPPER_PROPS.readValue(a2q("{'value' : 137.0 }"),
168+
SingleArgNotAnnotated.class);
169+
assertEquals(137, value.v);
170+
}
171+
172+
@Test
173+
public void test1ArgDefaultsToPropertiesByte() throws Exception
174+
{
175+
SingleArgByte value = MAPPER_PROPS.readValue(a2q("{'value' : -99 }"),
176+
SingleArgByte.class);
177+
assertEquals(-99, value.v);
178+
}
179+
180+
@Test
181+
public void test1ArgDefaultsToPropertiesShort() throws Exception
182+
{
183+
SingleArgShort value = MAPPER_PROPS.readValue(a2q("{'value' : 137 }"),
184+
SingleArgShort.class);
185+
assertEquals(137, value.v);
186+
}
187+
188+
@Test
189+
public void test1ArgDefaultsToPropertiesLong() throws Exception
190+
{
191+
String val = Long.toString(Long.MAX_VALUE);
192+
SingleArgLong value = MAPPER_PROPS.readValue(a2q("{'value' : " + val + " }"),
193+
SingleArgLong.class);
194+
assertEquals(Long.MAX_VALUE, value.v);
195+
}
196+
197+
@Test
198+
public void test1ArgDefaultsToPropertiesFloat() throws Exception
199+
{
200+
SingleArgFloat value = MAPPER_PROPS.readValue(a2q("{'value' : 136.99 }"),
201+
SingleArgFloat.class);
202+
assertEquals(136.99f, value.v);
203+
}
204+
205+
@Test
206+
public void test1ArgDefaultsToPropertiesDouble() throws Exception
207+
{
208+
SingleArgDouble value = MAPPER_PROPS.readValue(a2q("{'value' : 999999999999999999.99 }"),
209+
SingleArgDouble.class);
210+
assertEquals(999999999999999999.99, value.v);
211+
}
212+
114213
@Test
115214
public void test1ArgDefaultsToPropertiesNoMode() throws Exception
116215
{

0 commit comments

Comments
 (0)