@@ -296,6 +296,38 @@ void illegalStateExceptionShouldBeThrownWhenIterableExceededNestingDepth() {
296296 "JSON nesting depth (129) exceeds maximum depth of 128 (current path: [0][0][0][0][0][0][0][0][0][0][0][0]" );
297297 }
298298
299+ @ Test
300+ void shouldAllowStartingObjectWhenCurrentDepthIsMaxDepth () {
301+ StringBuilder out = new StringBuilder ();
302+ JsonValueWriter writer = new JsonValueWriter (out , 2 );
303+
304+ writer .start (Series .OBJECT );
305+ writer .start (Series .OBJECT );
306+ writer .start (Series .OBJECT );
307+
308+ writer .end (Series .OBJECT );
309+ writer .end (Series .OBJECT );
310+ writer .end (Series .OBJECT );
311+
312+ assertThat (out ).hasToString ("{{{}}}" );
313+ }
314+
315+ @ Test
316+ void shouldAllowStartingArrayWhenCurrentDepthIsMaxDepth () {
317+ StringBuilder out = new StringBuilder ();
318+ JsonValueWriter writer = new JsonValueWriter (out , 2 );
319+
320+ writer .start (Series .ARRAY );
321+ writer .start (Series .ARRAY );
322+ writer .start (Series .ARRAY );
323+
324+ writer .end (Series .ARRAY );
325+ writer .end (Series .ARRAY );
326+ writer .end (Series .ARRAY );
327+
328+ assertThat (out ).hasToString ("[[[]]]" );
329+ }
330+
299331 private <V > String write (V value ) {
300332 return doWrite ((valueWriter ) -> valueWriter .write (value ));
301333 }
0 commit comments