mirror of
https://github.com/spring-projects/spring-boot.git
synced 2026-09-25 02:49:03 +00:00
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
This commit is contained in:
committed by
Andy Wilkinson
parent
4cd1b02696
commit
7f0136f8c6
+32
@@ -296,6 +296,38 @@ 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));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user