@@ -11,85 +11,156 @@ public class TestGeneratorWithSerializedString
11
11
final static String NAME_WITH_QUOTES = "\" name\" " ;
12
12
final static String NAME_WITH_LATIN1 = "P\u00f6 ll\u00f6 " ;
13
13
14
+ final static String VALUE_WITH_QUOTES = "\" Value\" " ;
15
+ final static String VALUE2 = "Slightly longer value" ;
16
+
17
+ private final JsonFactory JSON_F = new JsonFactory ();
18
+
14
19
private final SerializedString quotedName = new SerializedString (NAME_WITH_QUOTES );
15
20
private final SerializedString latin1Name = new SerializedString (NAME_WITH_LATIN1 );
16
21
17
- public void testSimple () throws Exception
22
+ public void testSimpleFieldNames () throws Exception
18
23
{
19
- JsonFactory jf = new JsonFactory ();
20
-
21
24
// First using char-backed generator
22
25
StringWriter sw = new StringWriter ();
23
- JsonGenerator jgen = jf .createGenerator (sw );
24
- _writeSimple (jgen );
25
- jgen .close ();
26
+ JsonGenerator gen = JSON_F .createGenerator (sw );
27
+ _writeSimple (gen );
28
+ gen .close ();
26
29
String json = sw .toString ();
27
- _verifySimple (jf .createParser (json ));
30
+ _verifySimple (JSON_F .createParser (json ));
28
31
29
32
// then using UTF-8
30
33
ByteArrayOutputStream out = new ByteArrayOutputStream ();
31
- jgen = jf .createGenerator (out , JsonEncoding .UTF8 );
32
- _writeSimple (jgen );
33
- jgen .close ();
34
+ gen = JSON_F .createGenerator (out , JsonEncoding .UTF8 );
35
+ _writeSimple (gen );
36
+ gen .close ();
34
37
byte [] jsonB = out .toByteArray ();
35
- _verifySimple (jf .createParser (jsonB ));
38
+ _verifySimple (JSON_F .createParser (jsonB ));
39
+ }
40
+
41
+ public void testSimpleValues () throws Exception
42
+ {
43
+ // First using char-backed generator
44
+ StringWriter sw = new StringWriter ();
45
+ JsonGenerator gen = JSON_F .createGenerator (sw );
46
+ _writeSimpleValues (gen );
47
+ gen .close ();
48
+ _verifySimpleValues (JSON_F .createParser (new StringReader (sw .toString ())));
49
+
50
+ // then using UTF-8
51
+ ByteArrayOutputStream out = new ByteArrayOutputStream ();
52
+ gen = JSON_F .createGenerator (out , JsonEncoding .UTF8 );
53
+ _writeSimpleValues (gen );
54
+ gen .close ();
55
+ _verifySimpleValues (JSON_F .createParser (new ByteArrayInputStream (out .toByteArray ())));
36
56
}
37
57
38
58
/*
39
59
/**********************************************************
40
60
/* Helper methods
41
61
/**********************************************************
42
62
*/
43
-
44
- private void _writeSimple (JsonGenerator jgen ) throws Exception
63
+
64
+ private void _writeSimple (JsonGenerator gen ) throws Exception
45
65
{
46
66
// Let's just write array of 2 objects
47
- jgen .writeStartArray ();
48
-
49
- jgen .writeStartObject ();
50
- jgen .writeFieldName (quotedName );
51
- jgen .writeString ("a" );
52
- jgen .writeFieldName (latin1Name );
53
- jgen .writeString ("b" );
54
- jgen .writeEndObject ();
55
-
56
- jgen .writeStartObject ();
57
- jgen .writeFieldName (latin1Name );
58
- jgen .writeString ("c" );
59
- jgen .writeFieldName (quotedName );
60
- jgen .writeString ("d" );
61
- jgen .writeEndObject ();
67
+ gen .writeStartArray ();
68
+
69
+ gen .writeStartObject ();
70
+ gen .writeFieldName (quotedName );
71
+ gen .writeString ("a" );
72
+ gen .writeFieldName (latin1Name );
73
+ gen .writeString ("b" );
74
+ gen .writeEndObject ();
75
+
76
+ gen .writeStartObject ();
77
+ gen .writeFieldName (latin1Name );
78
+ gen .writeString ("c" );
79
+ gen .writeFieldName (quotedName );
80
+ gen .writeString ("d" );
81
+ gen .writeEndObject ();
82
+
83
+ gen .writeEndArray ();
84
+ }
85
+
86
+ private void _writeSimpleValues (JsonGenerator gen ) throws Exception
87
+ {
88
+ // Let's just write an array of 2 objects
89
+ gen .writeStartArray ();
90
+ gen .writeStartObject ();
91
+ gen .writeFieldName (NAME_WITH_QUOTES );
92
+ gen .writeString (new SerializedString (VALUE_WITH_QUOTES ));
93
+ gen .writeFieldName (NAME_WITH_LATIN1 );
94
+ gen .writeString (VALUE2 );
95
+ gen .writeEndObject ();
96
+
97
+ gen .writeStartObject ();
98
+ gen .writeFieldName (NAME_WITH_LATIN1 );
99
+ gen .writeString (VALUE_WITH_QUOTES );
100
+ gen .writeFieldName (NAME_WITH_QUOTES );
101
+ gen .writeString (new SerializedString (VALUE2 ));
102
+ gen .writeEndObject ();
103
+
104
+ gen .writeEndArray ();
105
+ }
106
+
107
+ private void _verifySimple (JsonParser p ) throws Exception
108
+ {
109
+ assertToken (JsonToken .START_ARRAY , p .nextToken ());
110
+
111
+ assertToken (JsonToken .START_OBJECT , p .nextToken ());
112
+ assertToken (JsonToken .FIELD_NAME , p .nextToken ());
113
+ assertEquals (NAME_WITH_QUOTES , p .getText ());
114
+ assertToken (JsonToken .VALUE_STRING , p .nextToken ());
115
+ assertEquals ("a" , p .getText ());
116
+ assertToken (JsonToken .FIELD_NAME , p .nextToken ());
117
+ assertEquals (NAME_WITH_LATIN1 , p .getText ());
118
+ assertToken (JsonToken .VALUE_STRING , p .nextToken ());
119
+ assertEquals ("b" , p .getText ());
120
+ assertToken (JsonToken .END_OBJECT , p .nextToken ());
121
+
122
+ assertToken (JsonToken .START_OBJECT , p .nextToken ());
123
+ assertToken (JsonToken .FIELD_NAME , p .nextToken ());
124
+ assertEquals (NAME_WITH_LATIN1 , p .getText ());
125
+ assertToken (JsonToken .VALUE_STRING , p .nextToken ());
126
+ assertEquals ("c" , p .getText ());
127
+ assertToken (JsonToken .FIELD_NAME , p .nextToken ());
128
+ assertEquals (NAME_WITH_QUOTES , p .getText ());
129
+ assertToken (JsonToken .VALUE_STRING , p .nextToken ());
130
+ assertEquals ("d" , p .getText ());
131
+ assertToken (JsonToken .END_OBJECT , p .nextToken ());
62
132
63
- jgen .writeEndArray ();
133
+ assertToken (JsonToken .END_ARRAY , p .nextToken ());
134
+ assertNull (p .nextToken ());
64
135
}
65
136
66
- private void _verifySimple (JsonParser jp ) throws Exception
137
+ private void _verifySimpleValues (JsonParser p ) throws Exception
67
138
{
68
- assertToken (JsonToken .START_ARRAY , jp .nextToken ());
69
-
70
- assertToken (JsonToken .START_OBJECT , jp .nextToken ());
71
- assertToken (JsonToken .FIELD_NAME , jp .nextToken ());
72
- assertEquals (NAME_WITH_QUOTES , jp .getText ());
73
- assertToken (JsonToken .VALUE_STRING , jp .nextToken ());
74
- assertEquals ("a" , jp .getText ());
75
- assertToken (JsonToken .FIELD_NAME , jp .nextToken ());
76
- assertEquals (NAME_WITH_LATIN1 , jp .getText ());
77
- assertToken (JsonToken .VALUE_STRING , jp .nextToken ());
78
- assertEquals ("b" , jp .getText ());
79
- assertToken (JsonToken .END_OBJECT , jp .nextToken ());
80
-
81
- assertToken (JsonToken .START_OBJECT , jp .nextToken ());
82
- assertToken (JsonToken .FIELD_NAME , jp .nextToken ());
83
- assertEquals (NAME_WITH_LATIN1 , jp .getText ());
84
- assertToken (JsonToken .VALUE_STRING , jp .nextToken ());
85
- assertEquals ("c" , jp .getText ());
86
- assertToken (JsonToken .FIELD_NAME , jp .nextToken ());
87
- assertEquals (NAME_WITH_QUOTES , jp .getText ());
88
- assertToken (JsonToken .VALUE_STRING , jp .nextToken ());
89
- assertEquals ("d" , jp .getText ());
90
- assertToken (JsonToken .END_OBJECT , jp .nextToken ());
139
+ assertToken (JsonToken .START_ARRAY , p .nextToken ());
140
+
141
+ assertToken (JsonToken .START_OBJECT , p .nextToken ());
142
+ assertToken (JsonToken .FIELD_NAME , p .nextToken ());
143
+ assertEquals (NAME_WITH_QUOTES , p .getText ());
144
+ assertToken (JsonToken .VALUE_STRING , p .nextToken ());
145
+ assertEquals (VALUE_WITH_QUOTES , p .getText ());
146
+ assertToken (JsonToken .FIELD_NAME , p .nextToken ());
147
+ assertEquals (NAME_WITH_LATIN1 , p .getText ());
148
+ assertToken (JsonToken .VALUE_STRING , p .nextToken ());
149
+ assertEquals (VALUE2 , p .getText ());
150
+ assertToken (JsonToken .END_OBJECT , p .nextToken ());
151
+
152
+ assertToken (JsonToken .START_OBJECT , p .nextToken ());
153
+ assertToken (JsonToken .FIELD_NAME , p .nextToken ());
154
+ assertEquals (NAME_WITH_LATIN1 , p .getText ());
155
+ assertToken (JsonToken .VALUE_STRING , p .nextToken ());
156
+ assertEquals (VALUE_WITH_QUOTES , p .getText ());
157
+ assertToken (JsonToken .FIELD_NAME , p .nextToken ());
158
+ assertEquals (NAME_WITH_QUOTES , p .getText ());
159
+ assertToken (JsonToken .VALUE_STRING , p .nextToken ());
160
+ assertEquals (VALUE2 , p .getText ());
161
+ assertToken (JsonToken .END_OBJECT , p .nextToken ());
91
162
92
- assertToken (JsonToken .END_ARRAY , jp .nextToken ());
93
- assertNull (jp .nextToken ());
163
+ assertToken (JsonToken .END_ARRAY , p .nextToken ());
164
+ assertNull (p .nextToken ());
94
165
}
95
166
}
0 commit comments