16
16
import io .ResourceUtils ;
17
17
import org .junit .jupiter .api .Test ;
18
18
19
+ import java .time .Duration ;
19
20
import java .time .ZonedDateTime ;
20
21
import java .util .ArrayList ;
21
22
import java .util .HashMap ;
@@ -37,7 +38,8 @@ public void testBeginEnd() {
37
38
38
39
sb = beginFormattedJson ();
39
40
addField (sb , "name" , "value" );
40
- endFormattedJson (sb );
41
+ String ended = endFormattedJson (sb );
42
+ assertEquals ("{\n \" name\" :\" value\" \n }" , ended );
41
43
assertEquals ("{\n \" name\" :\" value\" \n }" , sb .toString ());
42
44
43
45
sb = beginJsonPrefixed (null );
@@ -150,6 +152,9 @@ public void testAddFields() {
150
152
addField (sb , "zdt" , DateTimeUtils .gmtNow ());
151
153
assertEquals (149 , sb .length ());
152
154
155
+ addFieldWhenGreaterThan (sb , "xgt" , null , 1 );
156
+ assertEquals (149 , sb .length ());
157
+
153
158
addFieldWhenGreaterThan (sb , "xgt" , 0L , 1 );
154
159
assertEquals (149 , sb .length ());
155
160
@@ -158,6 +163,111 @@ public void testAddFields() {
158
163
159
164
addFieldWhenGreaterThan (sb , "xgt" , 2L , 1 );
160
165
assertEquals (157 , sb .length ());
166
+
167
+ addRawJson (sb , "n/a" , null );
168
+ assertEquals (157 , sb .length ());
169
+
170
+ addRawJson (sb , "n/a" , "" );
171
+ assertEquals (157 , sb .length ());
172
+
173
+ addRawJson (sb , "raw" , "raw" );
174
+ assertEquals (167 , sb .length ());
175
+
176
+ addFieldEvenEmpty (sb , "ee1" , null );
177
+ assertEquals (176 , sb .length ());
178
+
179
+ addFieldEvenEmpty (sb , "ee2" , "" );
180
+ assertEquals (185 , sb .length ());
181
+
182
+ addFieldWhenGteMinusOne (sb , "n/a" , null );
183
+ assertEquals (185 , sb .length ());
184
+
185
+ addFieldWhenGteMinusOne (sb , "n/a" , -2L );
186
+ assertEquals (185 , sb .length ());
187
+
188
+ addFieldWhenGteMinusOne (sb , "gtem1" , -1L );
189
+ assertEquals (196 , sb .length ());
190
+
191
+ addFieldAsNanos (sb , "n/a" , null );
192
+ assertEquals (196 , sb .length ());
193
+
194
+ addFieldAsNanos (sb , "n/a" , Duration .ZERO );
195
+ assertEquals (196 , sb .length ());
196
+
197
+ addFieldAsNanos (sb , "n/a" , Duration .ofNanos (-1 ));
198
+ assertEquals (196 , sb .length ());
199
+
200
+ addFieldAsNanos (sb , "fan" , Duration .ofNanos (1000000 ));
201
+ assertEquals (210 , sb .length ());
202
+
203
+ addEnumWhenNot (sb , "n/a" , null , JsonValue .Type .STRING );
204
+ assertEquals (210 , sb .length ());
205
+
206
+ addEnumWhenNot (sb , "n/a" , JsonValue .Type .STRING , JsonValue .Type .STRING );
207
+ assertEquals (210 , sb .length ());
208
+
209
+ addEnumWhenNot (sb , "ewn" , JsonValue .Type .STRING , JsonValue .Type .LONG );
210
+ assertEquals (225 , sb .length ());
211
+
212
+ //noinspection unchecked
213
+ addField (sb , "n/a" , (Map )null );
214
+ assertEquals (225 , sb .length ());
215
+
216
+ Map <String , String > map = new HashMap <>();
217
+ addField (sb , "n/a" , map );
218
+ assertEquals (225 , sb .length ());
219
+
220
+ map .put ("mfoo" , "mbar" );
221
+ addField (sb , "afmap" , map );
222
+ assertEquals (249 , sb .length ());
223
+
224
+ addFldWhenTrue (sb , "whentrue" , true );
225
+ assertEquals (265 , sb .length ());
226
+
227
+ _addList (sb , "al1" , new ArrayList <>(), StringBuilder ::append );
228
+ assertEquals (274 , sb .length ());
229
+
230
+ List <Integer > ilist = new ArrayList <>();
231
+ _addList (sb , "al2" , ilist , StringBuilder ::append );
232
+ assertEquals (283 , sb .length ());
233
+
234
+ ilist .add (1 );
235
+ _addList (sb , "al3" , ilist , StringBuilder ::append );
236
+ assertEquals (293 , sb .length ());
237
+
238
+ ilist .add (2 );
239
+ _addList (sb , "al4" , ilist , StringBuilder ::append );
240
+ assertEquals (305 , sb .length ());
241
+
242
+ List <String > slist = new ArrayList <>();
243
+ addStrings (sb , "n/a" , slist );
244
+ assertEquals (305 , sb .length ());
245
+
246
+ slist .add ("s" );
247
+ addStrings (sb , "slist" , slist );
248
+ assertEquals (319 , sb .length ());
249
+
250
+ List <Duration > durs = new ArrayList <>();
251
+ addDurations (sb , "dur1" , durs );
252
+ assertEquals (319 , sb .length ());
253
+
254
+ durs .add (Duration .ofMillis (1 ));
255
+ addDurations (sb , "dur2" , durs );
256
+ assertEquals (336 , sb .length ());
257
+
258
+ addJsons (sb , "n/a" , null );
259
+ assertEquals (336 , sb .length ());
260
+
261
+ List <JsonValue > jlist = new ArrayList <>();
262
+ addJsons (sb , "n/a" , jlist );
263
+ assertEquals (336 , sb .length ());
264
+
265
+ JsonValue jv = new JsonValue ("jv" );
266
+ jlist .add (jv );
267
+ addJsons (sb , "jsons" , jlist );
268
+ assertEquals (351 , sb .length ());
269
+ System .out .println (sb );
270
+ System .out .println (sb .length ());
161
271
}
162
272
163
273
@ Test
@@ -174,12 +284,15 @@ public void testParseLong() {
174
284
assertEquals (-999 , safeParseLong ("18446744073709551616" , -999 ));
175
285
assertEquals (-999 , safeParseLong (null , -999 ));
176
286
assertEquals (-999 , safeParseLong ("notanumber" , -999 ));
287
+ assertEquals (1 , safeParseLong ("1" ));
177
288
}
178
289
179
290
@ Test
180
291
public void testMiscCoverage () {
181
292
String json = ResourceUtils .resourceAsString ("StreamInfo.json" );
182
293
printFormatted (JsonParser .parseUnchecked (json ));
294
+
295
+ assertEquals ("\" JsonUtilsTests\" :" , toKey (this .getClass ()));
183
296
}
184
297
185
298
@ Test
0 commit comments