Skip to content

Commit 75ab15b

Browse files
authored
Date test issue when using Java 23 (#4856)
1 parent f6b7fab commit 75ab15b

File tree

1 file changed

+25
-4
lines changed

1 file changed

+25
-4
lines changed

src/test/java/com/fasterxml/jackson/databind/ser/jdk/DateSerializationTest.java

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -301,19 +301,30 @@ public void testWithTimeZoneOverride() throws Exception
301301
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
302302

303303
// pacific time is GMT-8; so midnight becomes 16:00 previous day:
304-
serialize( mapper, judate(1969, 12, 31, 16, 00, 00, 00, "PST"), "1969-12-31/16:00 PST");
304+
List<String> expectedListPST = Arrays.asList(
305+
q("1969-12-31/16:00 PST"),
306+
q("1969-12-31/16:00 GMT-08:00"));
307+
serialize(mapper, judate(1969, 12, 31, 16, 00, 00, 00, "PST"),
308+
expectedListPST );
305309

306310
// Let's also verify that Locale won't matter too much...
307311
mapper.setLocale(Locale.FRANCE);
308-
serialize( mapper, judate(1969, 12, 31, 16, 00, 00, 00, "PST"), "1969-12-31/16:00 PST");
312+
serialize(mapper, judate(1969, 12, 31, 16, 00, 00, 00, "PST"),
313+
expectedListPST);
309314

310315
// Also: should be able to dynamically change timezone:
311316
ObjectWriter w = mapper.writer().with(TimeZone.getTimeZone("EST"));
312-
assertEquals(q("1969-12-31/"+zoneOffset("1900")+" EST"), w.writeValueAsString(new Date(0)));
317+
List<String> expectedListEST = Arrays.asList(
318+
q("1969-12-31/19:00 EST"),
319+
q("1969-12-31/19:00 GMT-05:00"));
320+
serialize(w, new Date(0), expectedListEST);
313321

314322
// wrt [databind#2643]
323+
List<String> expectedListIRST = Arrays.asList(
324+
q("1970-01-01/03:30 IRST"),
325+
q("1970-01-01/03:30 GMT+03:30"));
315326
w = mapper.writer().with(TimeZone.getTimeZone("Asia/Tehran"));
316-
assertEquals(q("1970-01-01/"+zoneOffset("0330")+" IRST"), w.writeValueAsString(new Date(0)));
327+
serialize(w, new Date(0), expectedListIRST);
317328
}
318329

319330
/**
@@ -395,10 +406,20 @@ private void serialize(ObjectMapper mapper, Object date, String expected) throws
395406
assertEquals(q(expected), mapper.writeValueAsString(date));
396407
}
397408

409+
private void serialize(ObjectMapper mapper, Object date, List<String> expected) throws IOException {
410+
String result = mapper.writeValueAsString(date);
411+
assertTrue(expected.contains(result), "unexpected result: " + result);
412+
}
413+
398414
private void serialize(ObjectWriter w, Object date, String expected) throws IOException {
399415
assertEquals(q(expected), w.writeValueAsString(date));
400416
}
401417

418+
private void serialize(ObjectWriter w, Object date, List<String> expected) throws IOException {
419+
String result = w.writeValueAsString(date);
420+
assertTrue(expected.contains(result), "unexpected result: " + result);
421+
}
422+
402423
private String zoneOffset(String raw) {
403424
// Add colon or not -- difference between 2.10 and earlier, 2.11 and later
404425
return raw.substring(0, 2) + ":" + raw.substring(2); // 2.11 and later

0 commit comments

Comments
 (0)