diff --git a/approvaltests-tests/src/test/java/org/approvaltests/JsonApprovalsTest.java b/approvaltests-tests/src/test/java/org/approvaltests/JsonApprovalsTest.java index ac46d854..96ad5abe 100644 --- a/approvaltests-tests/src/test/java/org/approvaltests/JsonApprovalsTest.java +++ b/approvaltests-tests/src/test/java/org/approvaltests/JsonApprovalsTest.java @@ -3,6 +3,7 @@ import com.google.gson.GsonBuilder; import org.junit.jupiter.api.Test; +import java.time.Instant; import java.time.LocalDateTime; public class JsonApprovalsTest @@ -38,6 +39,26 @@ public void setLocalDate(LocalDateTime localDate) } private LocalDateTime localDate; } + + @Test + void nullInstantTest() + { + InstantWrapper instantWrapper = new InstantWrapper(); + JsonApprovals.verifyAsJson(instantWrapper, g -> g.serializeNulls()); + } + private class InstantWrapper + { + public Instant getInstant() + { + return instant; + } + + public void setInstant(Instant instant) + { + this.instant = instant; + } + private Instant instant; + } @Test void verifyJsonReorderWithoutArray() { diff --git a/approvaltests-tests/src/test/java/org/approvaltests/JsonApprovalsTest.nullInstantTest.approved.json b/approvaltests-tests/src/test/java/org/approvaltests/JsonApprovalsTest.nullInstantTest.approved.json new file mode 100644 index 00000000..540fedd2 --- /dev/null +++ b/approvaltests-tests/src/test/java/org/approvaltests/JsonApprovalsTest.nullInstantTest.approved.json @@ -0,0 +1,3 @@ +{ + "instant": null +} \ No newline at end of file diff --git a/approvaltests-util/src/main/java/com/spun/util/JsonUtils.java b/approvaltests-util/src/main/java/com/spun/util/JsonUtils.java index f2612906..297a9f28 100644 --- a/approvaltests-util/src/main/java/com/spun/util/JsonUtils.java +++ b/approvaltests-util/src/main/java/com/spun/util/JsonUtils.java @@ -147,7 +147,14 @@ public static class InstantAdapter extends TypeAdapter @Override public void write(JsonWriter jsonWriter, Instant instant) throws IOException { - jsonWriter.value(instant.toString()); + if (instant == null) + { + jsonWriter.nullValue(); + } + else + { + jsonWriter.value("" + instant); + } } @Override