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 ;
@@ -161,7 +162,7 @@ public void testDeserializerDeserializationByType() {
161162 JsonbConfig config = new JsonbConfig ().withDeserializers (new CrateDeserializer ());
162163 Jsonb jsonb = JsonbBuilder .create (config );
163164
164- Box box = createPojoWithDates ();
165+ Box box = createPojoWithDates (getExpectedDate () );
165166
166167 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\" }" ;
167168
@@ -248,13 +249,19 @@ private static Date getExpectedDate() {
248249 return new Calendar .Builder ().setDate (2015 , 4 , 14 ).setTimeOfDay (11 , 10 , 1 ).setTimeZone (TimeZone .getTimeZone ("Z" )).build ().getTime ();
249250 }
250251
252+ @ Test
253+ public void testSqlTimestampSerialization () {
254+ Box box = createPojoWithTimestamp (new Timestamp (getExpectedDate ().getTime ()));
255+ assertTrue (defaultJsonb .toJson (box ).contains ("\" timestamp\" :\" 05/14/2015 @ 11:10\" " ));
256+ }
257+
251258 @ Test
252259 public void testSerializationUsingConversion () {
253260 JsonbConfig config = new JsonbConfig ().withSerializers (new CrateSerializerWithConversion ());
254261 Jsonb jsonb = JsonbBuilder .create (config );
255262
256263 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\" }" ;
257- assertEquals (json , jsonb .toJson (createPojoWithDates ()));
264+ assertEquals (json , jsonb .toJson (createPojoWithDates (getExpectedDate () )));
258265 }
259266
260267 @ Test
@@ -565,8 +572,13 @@ public void setStringProperty(String stringProperty) {
565572 }
566573 }
567574
568- private static Box createPojoWithDates () {
569- Date date = getExpectedDate ();
575+ private static Box createPojoWithTimestamp (Timestamp timestamp ) {
576+ Box box = createPojo ();
577+ box .crate .timestamp = timestamp ;
578+ return box ;
579+ }
580+
581+ private static Box createPojoWithDates (Date date ) {
570582 Box box = createPojo ();
571583 box .crate .date = date ;
572584 box .crate .crateInner .date = date ;
@@ -579,7 +591,6 @@ private static Box createPojo() {
579591 box .crate = new Crate ();
580592 box .secondBoxStr = "Second box string" ;
581593
582-
583594 box .crate .crateInner = createCrateInner ("Single inner" );
584595
585596 box .crate .crateInnerList = new ArrayList <>();
0 commit comments