package Ġcom . red iss i . mos hi . adapter . iso 8 6 0 1 . jdk 8 ĊĊ Ċ import Ġorg . junit . Test Ċ Ċ import Ġorg . junit . Assert .* Ċ import Ġjava . time . Offset DateTime Ċ import Ġjava . time . Zone Offset Ċ import Ġjava . time . format . DateTime ParseException Ċ Ċ class ĠOffset DateTime Adapter Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġadapter Ġ= ĠOffset DateTime Adapter () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfrom Json () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Date ( 1 9 7 0 , Ġ 1 , Ġ 1 , Ġ 0 , Ġ 0 , Ġ 0 , Ġ 0 , Ġ 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . fromJson (" 1 9 7 0 - 0 1 - 0 1 T 0 0 : 0 0 : 0 0 . 0 0 0 Z ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Date ( 1 9 8 5 , Ġ 4 , Ġ 1 2 , Ġ 2 3 , Ġ 2 0 , Ġ 5 0 , Ġ 5 2 0 Ġ* Ġ 1 0 0 0 0 0 0 , Ġ 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . fromJson (" 1 9 8 5 - 0 4 - 1 2 T 2 3 : 2 0 : 5 0 . 5 2 0 Z ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Date ( 1 9 9 6 , Ġ 1 2 , Ġ 1 9 , Ġ 1 6 , Ġ 3 9 , Ġ 5 7 , Ġ 0 , Ġ- 8 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . fromJson (" 1 9 9 6 - 1 2 - 1 9 T 1 6 : 3 9 : 5 7 - 0 8 : 0 0 ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertThrows ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDateTime ParseException :: class . java ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġadapter . fromJson (" 1 9 9 0 - 1 2 - 3 1 T 2 3 : 5 9 : 6 0 Z ") Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Date ( 1 9 3 7 , Ġ 1 , Ġ 1 , Ġ 1 2 , Ġ 0 , Ġ 2 7 , Ġ 8 7 0 Ġ* Ġ 1 0 0 0 0 0 0 , Ġ 0 , Ġ 2 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . fromJson (" 1 9 3 7 - 0 1 - 0 1 T 1 2 : 0 0 : 2 7 . 8 7 0 + 0 0 : 2 0 ") ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtoJson () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 9 7 0 - 0 1 - 0 1 T 0 0 : 0 0 : 0 0 . 0 0 0 Z ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . toJson ( new Date ( 1 9 7 0 , Ġ 1 , Ġ 1 , Ġ 0 , Ġ 0 , Ġ 0 , Ġ 0 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 9 8 5 - 0 4 - 1 2 T 2 3 : 2 0 : 5 0 . 5 2 0 Z ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . toJson ( new Date ( 1 9 8 5 , Ġ 4 , Ġ 1 2 , Ġ 2 3 , Ġ 2 0 , Ġ 5 0 , Ġ 5 2 0 Ġ* Ġ 1 0 0 0 0 0 0 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 9 9 6 - 1 2 - 1 9 T 1 6 : 3 9 : 5 7 . 0 0 0 - 0 8 : 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . toJson ( new Date ( 1 9 9 6 , Ġ 1 2 , Ġ 1 9 , Ġ 1 6 , Ġ 3 9 , Ġ 5 7 , Ġ 0 , Ġ- 8 )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 9 3 7 - 0 1 - 0 1 T 1 2 : 0 0 : 2 7 . 8 7 0 + 0 0 : 2 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . toJson ( new Date ( 1 9 3 7 , Ġ 1 , Ġ 1 , Ġ 1 2 , Ġ 0 , Ġ 2 7 , Ġ 8 7 0 Ġ* Ġ 1 0 0 0 0 0 0 , Ġ 0 , Ġ 2 0 )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġnull Safety () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals (" null ", Ġadapter . toJson ( null )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( null , Ġadapter . fromJson (" null ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġnew Date ( ĊĠĠĠĠĠĠĠ Ġyear : ĠInt , ĊĠĠĠĠĠĠĠ Ġmonth : ĠInt , ĊĠĠĠĠĠĠĠ Ġday : ĠInt , ĊĠĠĠĠĠĠĠ Ġhour : ĠInt , ĊĠĠĠĠĠĠĠ Ġminute : ĠInt , ĊĠĠĠĠĠĠĠ Ġsecond : ĠInt , ĊĠĠĠĠĠĠĠ Ġnano : ĠInt , ĊĠĠĠĠĠĠĠ Ġoffset Hours : ĠInt , ĊĠĠĠĠĠĠĠ Ġoffset Minutes : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġ): ĠOffset DateTime Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġzone Offset Ġ= ĠZone Offset . of Hours Minutes ( offset Hours , Ġoffset Minutes ) ĊĠĠĠĠĠĠĠ Ġreturn ĠOffset DateTime . of ( year , Ġmonth , Ġday , Ġhour , Ġminute , Ġsecond , Ġnano , Ġzone Offset ) ĊĊĠĠĠ Ġ} Ċ }