1616import java .lang .reflect .ParameterizedType ;
1717import java .lang .reflect .Type ;
1818import java .math .BigDecimal ;
19+ import java .sql .Timestamp ;
1920import java .util .ArrayList ;
2021import java .util .Arrays ;
2122import java .util .Calendar ;
@@ -163,7 +164,7 @@ public void testDeserializerDeserializationByType() {
163164 JsonbConfig config = new JsonbConfig ().withDeserializers (new CrateDeserializer ());
164165 Jsonb jsonb = JsonbBuilder .create (config );
165166
166- Box box = createPojoWithDates ();
167+ Box box = createPojoWithDates (getExpectedDate () );
167168
168169 String expected = "{\" boxStr\" :\" Box string\" ,\" crate\" :{\" crateInner\" :{\" crateInnerBigDec\" :10,\" crate_inner_str\" :\" Single inner\" ,\" date\" :\" 14.05.2015 || 11:10:01\" },\" crateInnerList\" :[{\" crateInnerBigDec\" :10,\" crate_inner_str\" :\" List inner 0\" },{\" crateInnerBigDec\" :10,\" crate_inner_str\" :\" List inner 1\" }],\" date\" :\" 2015-05-14T11:10:01\" },\" secondBoxStr\" :\" Second box string\" }" ;
169170
@@ -250,13 +251,19 @@ private static Date getExpectedDate() {
250251 return new Calendar .Builder ().setDate (2015 , 4 , 14 ).setTimeOfDay (11 , 10 , 1 ).setTimeZone (TimeZone .getTimeZone ("Z" )).build ().getTime ();
251252 }
252253
254+ @ Test
255+ public void testSqlTimestampSerialization () {
256+ Box box = createPojoWithTimestamp (new Timestamp (getExpectedDate ().getTime ()));
257+ assertTrue (defaultJsonb .toJson (box ).contains ("\" timestamp\" :\" 05/14/2015 @ 11:10\" " ));
258+ }
259+
253260 @ Test
254261 public void testSerializationUsingConversion () {
255262 JsonbConfig config = new JsonbConfig ().withSerializers (new CrateSerializerWithConversion ());
256263 Jsonb jsonb = JsonbBuilder .create (config );
257264
258265 String json = "{\" boxStr\" :\" Box string\" ,\" crate\" :{\" crateStr\" :\" REPLACED crate str\" ,\" crateInner\" :{\" crateInnerBigDec\" :10,\" crate_inner_str\" :\" Single inner\" ,\" date\" :\" 14.05.2015 || 11:10:01\" },\" crateInnerList\" :[{\" crateInnerBigDec\" :10,\" crate_inner_str\" :\" List inner 0\" },{\" crateInnerBigDec\" :10,\" crate_inner_str\" :\" List inner 1\" }],\" crateBigDec\" :54321,\" date-converted\" :\" 2015-05-14T11:10:01Z[UTC]\" },\" secondBoxStr\" :\" Second box string\" }" ;
259- assertEquals (json , jsonb .toJson (createPojoWithDates ()));
266+ assertEquals (json , jsonb .toJson (createPojoWithDates (getExpectedDate () )));
260267 }
261268
262269 @ Test
@@ -567,8 +574,13 @@ public void setStringProperty(String stringProperty) {
567574 }
568575 }
569576
570- private static Box createPojoWithDates () {
571- Date date = getExpectedDate ();
577+ private static Box createPojoWithTimestamp (Timestamp timestamp ) {
578+ Box box = createPojo ();
579+ box .crate .timestamp = timestamp ;
580+ return box ;
581+ }
582+
583+ private static Box createPojoWithDates (Date date ) {
572584 Box box = createPojo ();
573585 box .crate .date = date ;
574586 box .crate .crateInner .date = date ;
@@ -581,7 +593,6 @@ private static Box createPojo() {
581593 box .crate = new Crate ();
582594 box .secondBoxStr = "Second box string" ;
583595
584-
585596 box .crate .crateInner = createCrateInner ("Single inner" );
586597
587598 box .crate .crateInnerList = new ArrayList <>();
0 commit comments