From 741a3a58d24a6dc0ecf24523d964465ff1fc7ac4 Mon Sep 17 00:00:00 2001 From: Dennis Date: Wed, 23 Apr 2025 12:57:43 +0200 Subject: [PATCH] override toString() method in ArgumentValue class Signed-off-by: Dennis Griese --- .../graphql/data/ArgumentValue.java | 17 +++++++++++++++++ .../graphql/data/ArgumentValueTests.java | 14 ++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/spring-graphql/src/main/java/org/springframework/graphql/data/ArgumentValue.java b/spring-graphql/src/main/java/org/springframework/graphql/data/ArgumentValue.java index 5ce87f2fe..2943d4c3b 100644 --- a/spring-graphql/src/main/java/org/springframework/graphql/data/ArgumentValue.java +++ b/spring-graphql/src/main/java/org/springframework/graphql/data/ArgumentValue.java @@ -137,6 +137,23 @@ public int hashCode() { return result; } + /** + * Returns a non-empty string representation of this {@code ArgumentValue} + * suitable for debugging. + * + * @return the string representation of this instance + */ + @Override + public String toString() { + if (this.omitted) { + return "ArgumentValue.omitted"; + } + if (this.value == null){ + return "ArgumentValue.empty"; + } + return "ArgumentValue[%s]".formatted(this.value); + } + /** * Static factory method for an argument value that was provided, even if diff --git a/spring-graphql/src/test/java/org/springframework/graphql/data/ArgumentValueTests.java b/spring-graphql/src/test/java/org/springframework/graphql/data/ArgumentValueTests.java index fdfa4f0ac..9c73c97b5 100644 --- a/spring-graphql/src/test/java/org/springframework/graphql/data/ArgumentValueTests.java +++ b/spring-graphql/src/test/java/org/springframework/graphql/data/ArgumentValueTests.java @@ -80,4 +80,18 @@ void ifPresentShouldSkipWhenOmitted() { assertThat(called.get()).isFalse(); } + @Test + void toStringShouldReturnOmittedWhenOmitted() { + assertThat(ArgumentValue.omitted()).hasToString("ArgumentValue.omitted"); + } + + @Test + void toStringShouldReturnEmptyWhenNull() { + assertThat(ArgumentValue.ofNullable(null)).hasToString("ArgumentValue.empty"); + } + + @Test + void toStringShouldReturnValueWhenValue() { + assertThat(ArgumentValue.ofNullable("hello")).hasToString("ArgumentValue[hello]"); + } }