Skip to content

Commit 7f0136f

Browse files
Joowon-Seowilkinsona
authored andcommitted
Add boundary tests for JsonValueWriter max nesting depth
Verify behavior at the maxNestingDepth boundary. Signed-off-by: Joowon-Seo <tjwndnjs1998@gmail.com> See gh-49662
1 parent 4cd1b02 commit 7f0136f

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

spring-boot-project/spring-boot/src/test/java/org/springframework/boot/json/JsonValueWriterTests.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)