Browse Source

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
pull/49660/head
Andy Wilkinson 3 days ago
parent
commit
47aa60dc93
  1. 26
      spring-boot-project/spring-boot/src/test/java/org/springframework/boot/json/JsonValueWriterTests.java

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

@ -296,6 +296,32 @@ class JsonValueWriterTests { @@ -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));
}

Loading…
Cancel
Save