@@ -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