[serde-gson] Support for Gson readers and writers

This commit is contained in:
2025-08-03 20:21:33 +02:00
parent c58b806bcf
commit 1fc418970f
23 changed files with 710 additions and 82 deletions

View File

@@ -1,8 +0,0 @@
plugins {
java
}
java {
sourceCompatibility = JavaVersion.toVersion(libs.versions.java.test.get())
targetCompatibility = JavaVersion.toVersion(libs.versions.java.test.get())
}

View File

@@ -0,0 +1,3 @@
plugins {
id("de.siphalor.tweed5.test-utils")
}

View File

@@ -1,4 +1,4 @@
package de.siphalor.tweed5.testutils;
package de.siphalor.tweed5.testutils.generic;
import java.util.*;

View File

@@ -0,0 +1,3 @@
plugins {
id("de.siphalor.tweed5.test-utils")
}

View File

@@ -0,0 +1,73 @@
package de.siphalor.tweed5.testutils.serde.json;
import de.siphalor.tweed5.dataapi.api.TweedDataReader;
import lombok.SneakyThrows;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
public interface JsonReaderTest {
TweedDataReader createJsonReader(String text);
@Test
@SneakyThrows
default void complexJsonReadTest() {
var reader = createJsonReader("""
{
"first": [
[ 1 ]
],
"second": {
"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();
}
}