[serde-*] Make data readers and writers AutoCloseable

This commit is contained in:
2025-08-03 20:36:28 +02:00
parent 1fc418970f
commit 7ce3aaac06
16 changed files with 117 additions and 63 deletions

View File

@@ -12,7 +12,7 @@ public interface JsonReaderTest {
@Test
@SneakyThrows
default void complexJsonReadTest() {
var reader = createJsonReader("""
String text = """
{
"first": [
[ 1 ]
@@ -21,53 +21,55 @@ public interface JsonReaderTest {
"test": "Hello World!"
}
}
""");
""";
var token = reader.peekToken();
assertThat(token.isMapStart()).isTrue();
token = reader.readToken();
assertThat(token.isMapStart()).isTrue();
token = reader.readToken();
assertThat(token.isMapEntryKey()).isTrue();
assertThat(token.canReadAsString()).isTrue();
assertThat(token.readAsString()).isEqualTo("first");
token = reader.readToken();
assertThat(token.isMapEntryValue()).isTrue();
assertThat(token.isListStart()).isTrue();
token = reader.readToken();
assertThat(token.isMapEntryValue()).isFalse();
assertThat(token.isListValue()).isTrue();
assertThat(token.isListStart()).isTrue();
token = reader.readToken();
assertThat(token.isListValue()).isTrue();
assertThat(token.canReadAsInt()).isTrue();
assertThat(token.readAsInt()).isEqualTo(1);
token = reader.readToken();
assertThat(token.isListValue()).isTrue();
assertThat(token.isListEnd()).isTrue();
token = reader.readToken();
assertThat(token.isListValue()).isFalse();
assertThat(token.isMapEntryValue()).isTrue();
assertThat(token.isListEnd()).isTrue();
token = reader.readToken();
assertThat(token.isMapEntryKey()).isTrue();
assertThat(token.canReadAsString()).isTrue();
assertThat(token.readAsString()).isEqualTo("second");
token = reader.readToken();
assertThat(token.isMapEntryValue()).isTrue();
assertThat(token.isMapStart()).isTrue();
token = reader.readToken();
assertThat(token.isMapEntryValue()).isFalse();
assertThat(token.isMapEntryKey()).isTrue();
assertThat(token.canReadAsString()).isTrue();
assertThat(token.readAsString()).isEqualTo("test");
token = reader.readToken();
assertThat(token.isMapEntryValue()).isTrue();
assertThat(token.canReadAsString()).isTrue();
assertThat(token.readAsString()).isEqualTo("Hello World!");
token = reader.readToken();
assertThat(token.isMapEnd()).isTrue();
token = reader.readToken();
assertThat(token.isMapEnd()).isTrue();
try (var reader = createJsonReader(text)) {
var token = reader.peekToken();
assertThat(token.isMapStart()).isTrue();
token = reader.readToken();
assertThat(token.isMapStart()).isTrue();
token = reader.readToken();
assertThat(token.isMapEntryKey()).isTrue();
assertThat(token.canReadAsString()).isTrue();
assertThat(token.readAsString()).isEqualTo("first");
token = reader.readToken();
assertThat(token.isMapEntryValue()).isTrue();
assertThat(token.isListStart()).isTrue();
token = reader.readToken();
assertThat(token.isMapEntryValue()).isFalse();
assertThat(token.isListValue()).isTrue();
assertThat(token.isListStart()).isTrue();
token = reader.readToken();
assertThat(token.isListValue()).isTrue();
assertThat(token.canReadAsInt()).isTrue();
assertThat(token.readAsInt()).isEqualTo(1);
token = reader.readToken();
assertThat(token.isListValue()).isTrue();
assertThat(token.isListEnd()).isTrue();
token = reader.readToken();
assertThat(token.isListValue()).isFalse();
assertThat(token.isMapEntryValue()).isTrue();
assertThat(token.isListEnd()).isTrue();
token = reader.readToken();
assertThat(token.isMapEntryKey()).isTrue();
assertThat(token.canReadAsString()).isTrue();
assertThat(token.readAsString()).isEqualTo("second");
token = reader.readToken();
assertThat(token.isMapEntryValue()).isTrue();
assertThat(token.isMapStart()).isTrue();
token = reader.readToken();
assertThat(token.isMapEntryValue()).isFalse();
assertThat(token.isMapEntryKey()).isTrue();
assertThat(token.canReadAsString()).isTrue();
assertThat(token.readAsString()).isEqualTo("test");
token = reader.readToken();
assertThat(token.isMapEntryValue()).isTrue();
assertThat(token.canReadAsString()).isTrue();
assertThat(token.readAsString()).isEqualTo("Hello World!");
token = reader.readToken();
assertThat(token.isMapEnd()).isTrue();
token = reader.readToken();
assertThat(token.isMapEnd()).isTrue();
}
}
}