Skip to content

Commit 3f2ba49

Browse files
committed
Add failing tests wrt #78
1 parent c29ed5d commit 3f2ba49

File tree

15 files changed

+148
-26
lines changed

15 files changed

+148
-26
lines changed

jr-objects/src/main/java/com/fasterxml/jackson/jr/ob/JSON.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ public final boolean isEnabled(int flags) {
343343
}
344344

345345
// Important: has to come before 'std' instance, since it refers to it
346-
private final static int DEFAULT_FEATURES = Feature.defaults();
346+
final static int DEFAULT_FEATURES = Feature.defaults();
347347

348348
public final static int CACHE_FLAGS = Feature.cacheBreakers();
349349

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
package com.fasterxml.jackson.jr.failing;
2+
3+
import java.util.LinkedHashMap;
4+
import java.util.Map;
5+
6+
import com.fasterxml.jackson.jr.ob.JSON;
7+
import com.fasterxml.jackson.jr.ob.TestBase;
8+
9+
public class NullHandling78Test extends TestBase
10+
{
11+
// [jackson-jr#78]
12+
static class IntegerWrapper {
13+
public Integer value;
14+
}
15+
static class IntPrimitiveWrapper {
16+
public int value;
17+
}
18+
static class LongWrapper {
19+
public Long value;
20+
}
21+
static class LongPrimitiveWrapper {
22+
public long value;
23+
}
24+
static class BooleanWrapper {
25+
public Boolean value;
26+
}
27+
static class BooleanPrimitiveWrapper {
28+
public boolean value;
29+
}
30+
static class DoubleWrapper {
31+
public Double value;
32+
}
33+
static class DoublePrimitiveWrapper {
34+
public double value;
35+
}
36+
37+
// Test to verify that outputting of nulls is configurable
38+
public void testMapNullEntries() throws Exception
39+
{
40+
Map<String,Object> map = new LinkedHashMap<String,Object>();
41+
map.put("a", 1);
42+
map.put("b", null);
43+
// By default we do NOT write null-valued entries:
44+
assertEquals("{\"a\":1}", JSON.std.asString(map));
45+
// but we can disable it easily
46+
assertEquals("{\"a\":1,\"b\":null}",
47+
JSON.std.with(JSON.Feature.WRITE_NULL_PROPERTIES).asString(map));
48+
}
49+
50+
// [jackson-jr#78], int/Integer
51+
52+
public void testIntPrimitive() throws Exception
53+
{
54+
IntPrimitiveWrapper w = JSON.std.beanFrom(IntPrimitiveWrapper.class,
55+
a2q("{'value':1}"));
56+
assertEquals(1, w.value);
57+
58+
w = JSON.std.beanFrom(IntPrimitiveWrapper.class,
59+
a2q("{'value':null}"));
60+
assertEquals(0, w.value);
61+
}
62+
63+
public void testIntWrapper() throws Exception
64+
{
65+
IntegerWrapper w = JSON.std.beanFrom(IntegerWrapper.class,
66+
a2q("{'value':1}"));
67+
assertEquals(Integer.valueOf(1), w.value);
68+
69+
w = JSON.std.beanFrom(IntegerWrapper.class,
70+
a2q("{'value':null}"));
71+
assertNull(w.value);
72+
}
73+
74+
// [jackson-jr#78], long/Long
75+
76+
public void testLongPrimitive() throws Exception
77+
{
78+
LongPrimitiveWrapper w = JSON.std.beanFrom(LongPrimitiveWrapper.class,
79+
a2q("{'value':2}"));
80+
assertEquals(2L, w.value);
81+
82+
w = JSON.std.beanFrom(LongPrimitiveWrapper.class,
83+
a2q("{'value':null}"));
84+
assertEquals(0L, w.value);
85+
}
86+
87+
public void testLongWrapper() throws Exception
88+
{
89+
LongWrapper w = JSON.std.beanFrom(LongWrapper.class,
90+
a2q("{'value':2}"));
91+
assertEquals(Long.valueOf(2L), w.value);
92+
93+
w = JSON.std.beanFrom(LongWrapper.class,
94+
a2q("{'value':null}"));
95+
assertNull(w.value);
96+
}
97+
98+
// [jackson-jr#78], boolean/Boolean
99+
100+
public void testBooleanPrimitive() throws Exception
101+
{
102+
BooleanPrimitiveWrapper w = JSON.std.beanFrom(BooleanPrimitiveWrapper.class,
103+
a2q("{'value':true}"));
104+
assertTrue(w.value);
105+
106+
w = JSON.std.beanFrom(BooleanPrimitiveWrapper.class,
107+
a2q("{'value':null}"));
108+
assertFalse(w.value);
109+
}
110+
111+
public void testBooleanWrapper() throws Exception
112+
{
113+
BooleanWrapper w = JSON.std.beanFrom(BooleanWrapper.class,
114+
a2q("{'value':true}"));
115+
assertEquals(Boolean.TRUE, w.value);
116+
117+
w = JSON.std.beanFrom(BooleanWrapper.class,
118+
a2q("{'value':null}"));
119+
assertNull(w.value);
120+
}
121+
122+
// [jackson-jr#78], boolean/Boolean
123+
124+
public void testDoublePrimitive() throws Exception
125+
{
126+
DoublePrimitiveWrapper w = JSON.std.beanFrom(DoublePrimitiveWrapper.class,
127+
a2q("{'value':0.25}"));
128+
assertEquals(0.25, w.value);
129+
130+
w = JSON.std.beanFrom(DoublePrimitiveWrapper.class,
131+
a2q("{'value':null}"));
132+
// yeah yeah, not kosher wrt epsilon etc but...
133+
assertEquals(0.0, w.value);
134+
}
135+
136+
public void testDoubleWrapper() throws Exception
137+
{
138+
DoubleWrapper w = JSON.std.beanFrom(DoubleWrapper.class,
139+
a2q("{'value':0.25}"));
140+
assertEquals(Double.valueOf(0.25), w.value);
141+
142+
w = JSON.std.beanFrom(DoubleWrapper.class,
143+
a2q("{'value':null}"));
144+
assertNull(w.value);
145+
}
146+
}

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

-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
import java.util.*;
44

5-
import com.fasterxml.jackson.jr.ob.JSON;
6-
75
public class IndentationTest extends TestBase
86
{
97
public void testSimpleList() throws Exception

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

-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
import java.util.LinkedHashMap;
44
import java.util.Map;
55

6-
import com.fasterxml.jackson.jr.ob.JSON;
7-
86
public class NullHandlingTest extends TestBase
97
{
108
// Test to verify that outputting of nulls is configurable

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

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import java.util.*;
44

55
import com.fasterxml.jackson.core.JsonParser;
6-
import com.fasterxml.jackson.jr.ob.JSON;
76

87
public class ReadBeansTest extends TestBase
98
{

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

-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.fasterxml.jackson.jr.ob;
22

3-
import com.fasterxml.jackson.jr.ob.JSON;
4-
53
public class ReadFeaturesTest extends TestBase
64
{
75
static class IsBean {

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import java.util.*;
44

55
import com.fasterxml.jackson.core.JsonParser;
6-
import com.fasterxml.jackson.jr.ob.JSON;
6+
77
import com.fasterxml.jackson.jr.ob.api.MapBuilder;
88

99
// for [jackson-jr#49], where `DeferredMap` explodes

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

-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
import com.fasterxml.jackson.core.JsonParser;
1111
import com.fasterxml.jackson.core.TreeNode;
12-
import com.fasterxml.jackson.jr.ob.JSON;
1312
import com.fasterxml.jackson.jr.ob.JSON.Feature;
1413

1514
public class ReadSimpleTest extends TestBase

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

-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.fasterxml.jackson.jr.ob;
22

3-
import com.fasterxml.jackson.jr.ob.JSON;
4-
53
public class ReadWithCtorsTest extends TestBase
64
{
75
static class FromString {

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

-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
import java.util.*;
44

5-
import com.fasterxml.jackson.jr.ob.JSON;
6-
75
public class SimpleComposerTest extends TestBase
86
{
97
public static class NameBean {

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

-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.fasterxml.jackson.jr.ob;
22

3-
import com.fasterxml.jackson.jr.ob.JSON;
4-
53
public class SimpleFieldTest extends TestBase
64
{
75
static class XY {

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

-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import java.net.URL;
88
import java.util.*;
99

10-
import com.fasterxml.jackson.jr.ob.JSON;
1110
import com.fasterxml.jackson.jr.ob.JSON.Feature;
1211

1312
public class WriteSimpleTest extends TestBase

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

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import java.util.*;
44

55
import com.fasterxml.jackson.jr.ob.TestBase;
6-
import com.fasterxml.jackson.jr.ob.impl.ValueWriterLocator;
76

87
public class ValueWriterLocatorTest extends TestBase
98
{

jr-stree/src/test/java/com/fasterxml/jackson/jr/stree/SimpleTraverseTest.java

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.fasterxml.jackson.jr.stree;
22

33
import com.fasterxml.jackson.core.*;
4-
import com.fasterxml.jackson.jr.stree.JacksonJrsTreeCodec;
54

65
public class SimpleTraverseTest extends JacksonJrTreeTestBase
76
{

jr-stree/src/test/java/com/fasterxml/jackson/jr/stree/WriteViaCodecTest.java

-7
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,6 @@
77
import com.fasterxml.jackson.core.JsonGenerator;
88
import com.fasterxml.jackson.core.TreeCodec;
99
import com.fasterxml.jackson.core.TreeNode;
10-
import com.fasterxml.jackson.jr.stree.JacksonJrsTreeCodec;
11-
import com.fasterxml.jackson.jr.stree.JrsArray;
12-
import com.fasterxml.jackson.jr.stree.JrsBoolean;
13-
import com.fasterxml.jackson.jr.stree.JrsNumber;
14-
import com.fasterxml.jackson.jr.stree.JrsObject;
15-
import com.fasterxml.jackson.jr.stree.JrsString;
16-
import com.fasterxml.jackson.jr.stree.JrsValue;
1710

1811
public class WriteViaCodecTest extends JacksonJrTreeTestBase
1912
{

0 commit comments

Comments
 (0)