Merge pull request #49662 from Joowon-Seo

* gh-49662:
  Polish "Add boundary tests for JsonValueWriter max nesting depth"
  Add boundary tests for JsonValueWriter max nesting depth

Closes gh-49662
This commit is contained in:
Andy Wilkinson
2026-03-19 18:29:52 +00:00
@@ -296,6 +296,32 @@ class JsonValueWriterTests {
"JSON nesting depth (129) exceeds maximum depth of 128 (current path: [0][0][0][0][0][0][0][0][0][0][0][0]");
}
@Test
void shouldAllowStartingObjectWhenCurrentDepthIsMaxDepth() {
StringBuilder out = new StringBuilder();
JsonValueWriter writer = new JsonValueWriter(out, 2);
writer.start(Series.OBJECT);
writer.start(Series.OBJECT);
writer.start(Series.OBJECT);
writer.end(Series.OBJECT);
writer.end(Series.OBJECT);
writer.end(Series.OBJECT);
assertThat(out).hasToString("{{{}}}");
}
@Test
void shouldAllowStartingArrayWhenCurrentDepthIsMaxDepth() {
StringBuilder out = new StringBuilder();
JsonValueWriter writer = new JsonValueWriter(out, 2);
writer.start(Series.ARRAY);
writer.start(Series.ARRAY);
writer.start(Series.ARRAY);
writer.end(Series.ARRAY);
writer.end(Series.ARRAY);
writer.end(Series.ARRAY);
assertThat(out).hasToString("[[[]]]");
}
private <V> String write(V value) {
return doWrite((valueWriter) -> valueWriter.write(value));
}