/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 - 2 0 2 0 ĠJetBrains Ġs . r . o . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 ĠLicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġkotlinx . datetime . serialization . test Ċ Ċ import Ġkotlinx . datetime .* Ċ import Ġkotlinx . datetime . serializers .* Ċ import Ġkotlinx . serialization . K Serializer Ċ import Ġkotlinx . serialization . json .* Ċ import Ġkotlinx . serialization . serializer Ċ import Ġkotlin . test .* Ċ Ċ class ĠTime Zone Serialization Test Ġ{ ĊĊĠĠĠ Ġprivate Ġfun Ġzone Offset Serialization ( serializer : ĠK Serializer < Fixed Offset TimeZone >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoffset 2 h Ġ= ĠTime Zone . of ("+ 0 2 : 0 0 ") Ġas ĠFixed Offset TimeZone ĊĠĠĠĠĠĠĠ ĠassertEquals ("\" + 0 2 : 0 0 \"", ĠJson . encode ToString ( serializer , Ġoffset 2 h )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( offset 2 h , ĠJson . decode FromString ( serializer , Ġ"\" + 0 2 : 0 0 \"" )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( offset 2 h , ĠJson . decode FromString ( serializer , Ġ"\" + 0 2 \"" )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( offset 2 h , ĠJson . decode FromString ( serializer , Ġ"\" + 2 \"" )) ĊĠĠĠĠĠĠĠ Ġassert Fails With < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJson . decode FromString ( serializer , Ġ"\" Europe / Ber lin \" ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġserialization ( serializer : ĠK Serializer < TimeZone >) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( zone Id Ġin ĠlistOf (" Europe / Ber lin ", Ġ"+ 0 2 : 0 0 ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġzone Ġ= ĠTime Zone . of ( zone Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġ"\" $ zone Id \"" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( json , ĠJson . encode ToString ( serializer , Ġzone )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( zone , ĠJson . decode FromString ( serializer , Ġjson )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Zone Offset Serialization () Ġ{ ĊĠĠĠĠĠĠĠ Ġzone Offset Serialization ( Fixed Offset TimeZone Serializer ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Serialization () Ġ{ ĊĠĠĠĠĠĠĠ Ġserialization ( TimeZone Serializer ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Default Serial izers () Ġ{ ĊĠĠĠĠĠĠĠ Ġzone Offset Serialization ( Json . serializers Module . serializer ()) ĊĠĠĠĠĠĠĠ Ġserialization ( Json . serializers Module . serializer ()) ĊĠĠĠ Ġ} Ċ }