@@ -296,6 +296,32 @@ 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+ writer .start (Series .OBJECT );
304+ writer .start (Series .OBJECT );
305+ writer .start (Series .OBJECT );
306+ writer .end (Series .OBJECT );
307+ writer .end (Series .OBJECT );
308+ writer .end (Series .OBJECT );
309+ assertThat (out ).hasToString ("{{{}}}" );
310+ }
311+
312+ @ Test
313+ void shouldAllowStartingArrayWhenCurrentDepthIsMaxDepth () {
314+ StringBuilder out = new StringBuilder ();
315+ JsonValueWriter writer = new JsonValueWriter (out , 2 );
316+ writer .start (Series .ARRAY );
317+ writer .start (Series .ARRAY );
318+ writer .start (Series .ARRAY );
319+ writer .end (Series .ARRAY );
320+ writer .end (Series .ARRAY );
321+ writer .end (Series .ARRAY );
322+ assertThat (out ).hasToString ("[[[]]]" );
323+ }
324+
299325 private <V > String write (V value ) {
300326 return doWrite ((valueWriter ) -> valueWriter .write (value ));
301327 }
0 commit comments