diff --git a/quarkus-json-service/pom.xml b/quarkus-json-service/pom.xml index bf0b531..622c1ea 100644 --- a/quarkus-json-service/pom.xml +++ b/quarkus-json-service/pom.xml @@ -42,7 +42,7 @@ INSTRUCTION COVEREDRATIO - 0.83 + 1 diff --git a/quarkus-json-service/src/test/java/ch/phoenixtechnologies/quarkus/commons/json/JsonServiceImplTest.java b/quarkus-json-service/src/test/java/ch/phoenixtechnologies/quarkus/commons/json/JsonServiceImplTest.java index d01d46c..4dbcdbf 100644 --- a/quarkus-json-service/src/test/java/ch/phoenixtechnologies/quarkus/commons/json/JsonServiceImplTest.java +++ b/quarkus-json-service/src/test/java/ch/phoenixtechnologies/quarkus/commons/json/JsonServiceImplTest.java @@ -17,6 +17,15 @@ class JsonServiceImplTest { record TestRecord(String name, int age) {} + static class CircularReference { + CircularReference reference; + + @Override + public String toString() { + return "CircularReference"; + } + } + @Inject JsonServiceImpl jsonService; @@ -29,6 +38,17 @@ class JsonServiceImplTest { assertThat(actual).as("Json should match expected value").isEqualTo(expected); } + @Test + void toJsonWithCircularReference() { + var circularReference = new CircularReference(); + circularReference.reference = circularReference; + + assertThatThrownBy(() -> jsonService.toJson(circularReference)) + .as("Should throw IllegalArgumentException when input is invalid") + .isInstanceOf(IllegalArgumentException.class) + .hasMessage("Unable to write object as json String: CircularReference"); + } + @Test void fromJsonWithClass() { var json = "{\"name\":\"John Doe\",\"age\":30}";