Skip to content

Commit 3b017b3

Browse files
committed
Add bit more testing
1 parent ce112a6 commit 3b017b3

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

jr-objects/src/test/java/com/fasterxml/jackson/jr/ob/WriteBeansTest.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,20 @@ public BaseImpl(int v, int x) {
4141
public void setExtra(int v) { _extra = v; }
4242

4343
}
44+
45+
static class StringBean {
46+
public String value;
47+
48+
public StringBean(String v) { value = v; }
49+
}
50+
51+
static class StringBeanBean {
52+
public StringBean bean;
53+
54+
public StringBeanBean(StringBean b) {
55+
bean = b;
56+
}
57+
}
4458

4559
public void testBinary() throws Exception
4660
{
@@ -95,4 +109,23 @@ public void testMethodsFromSuperclass() throws Exception
95109
assertEquals(5, result.getExtra());
96110
assertEquals(-245, result.getValue());
97111
}
112+
113+
public void testBeanNulls() throws Exception
114+
{
115+
final JSON withNulls = JSON.std.with(JSON.Feature.WRITE_NULL_PROPERTIES);
116+
117+
// by default, no nulls for either "String" property
118+
assertEquals("{}", JSON.std.asString(new StringBean(null)));
119+
assertEquals("{}", JSON.std.asString(new StringBeanBean(null)));
120+
assertEquals(a2q("{'bean':{}}"),
121+
JSON.std.asString(new StringBeanBean(new StringBean(null))));
122+
123+
// but we can make them appear
124+
assertEquals(a2q("{'value':null}"),
125+
withNulls.asString(new StringBean(null)));
126+
assertEquals(a2q("{'bean':null}"),
127+
withNulls.asString(new StringBeanBean(null)));
128+
assertEquals(a2q("{'bean':{'value':null}}"),
129+
withNulls.asString(new StringBeanBean(new StringBean(null))));
130+
}
98131
}

0 commit comments

Comments
 (0)