From a8776a6fa4e25e156891a969c260bfa533518b84 Mon Sep 17 00:00:00 2001 From: Tatu Saloranta Date: Thu, 15 Aug 2024 15:05:36 -0700 Subject: [PATCH] Add failing test for #279 (#317) --- .../jsr310/deser/OffsetDateTimeDeserTest.java | 2 +- .../failing/OffsetDateTimeDeser279Test.java | 47 +++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 datetime/src/test/java/com/fasterxml/jackson/datatype/jsr310/failing/OffsetDateTimeDeser279Test.java diff --git a/datetime/src/test/java/com/fasterxml/jackson/datatype/jsr310/deser/OffsetDateTimeDeserTest.java b/datetime/src/test/java/com/fasterxml/jackson/datatype/jsr310/deser/OffsetDateTimeDeserTest.java index 76e462c6..c31922e8 100644 --- a/datetime/src/test/java/com/fasterxml/jackson/datatype/jsr310/deser/OffsetDateTimeDeserTest.java +++ b/datetime/src/test/java/com/fasterxml/jackson/datatype/jsr310/deser/OffsetDateTimeDeserTest.java @@ -66,7 +66,7 @@ public WrapperWithReadTimestampsAsNanosEnabled() { } public WrapperWithReadTimestampsAsNanosEnabled(OffsetDateTime v) { value = v; } } - private ObjectMapper MAPPER = newMapper(); + private final ObjectMapper MAPPER = newMapper(); @Test public void testDeserializationAsFloat01WithoutTimeZone() throws Exception diff --git a/datetime/src/test/java/com/fasterxml/jackson/datatype/jsr310/failing/OffsetDateTimeDeser279Test.java b/datetime/src/test/java/com/fasterxml/jackson/datatype/jsr310/failing/OffsetDateTimeDeser279Test.java new file mode 100644 index 00000000..c0a29463 --- /dev/null +++ b/datetime/src/test/java/com/fasterxml/jackson/datatype/jsr310/failing/OffsetDateTimeDeser279Test.java @@ -0,0 +1,47 @@ +package com.fasterxml.jackson.datatype.jsr310.failing; + +import java.time.OffsetDateTime; +import java.time.ZoneId; +import java.time.temporal.ChronoUnit; + +import org.junit.Test; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.ModuleTestBase; + +import static org.junit.Assert.assertEquals; + +public class OffsetDateTimeDeser279Test extends ModuleTestBase +{ + // For [modules-java8#279] + static class Wrapper279 { + OffsetDateTime date; + + public Wrapper279(OffsetDateTime d) { date = d; } + protected Wrapper279() { } + + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'") + public OffsetDateTime getDate() { + return date; + } + public void setDate(OffsetDateTime date) { + this.date = date; + } + } + + private ObjectMapper MAPPER = newMapper(); + + // For [modules-java8#279] + @Test + public void testWrapperWithPattern279() throws Exception + { + final OffsetDateTime date = OffsetDateTime.now(ZoneId.of("UTC")) + .truncatedTo(ChronoUnit.SECONDS); + final Wrapper279 input = new Wrapper279(date); + final String json = MAPPER.writeValueAsString(input); + + Wrapper279 result = MAPPER.readValue(json, Wrapper279.class); + assertEquals(input.date, result.date); + } +}