package Ġno . nav . t pts . mot tak . databind Ċ Ċ import Ġkotlinx . serialization . Serializable Ċ import Ġkotlinx . serialization . decode FromString Ċ import Ġkotlinx . serialization . encode ToString Ċ import Ġkotlinx . serialization . json . Json Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . sky sc ream er . json assert . JSON Assert Ċ import Ġorg . sky sc ream er . json assert . JSON Compare Mode Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . time . Month Ċ Ċ internal Ġclass ĠLocalDateTime Serializer Test Ġ{ ĊĠĠĠ Ġ@ Serializable ĊĠĠĠ Ġdata Ġclass ĠClass For Test (@ Serializable ( with Ġ= ĠLocalDateTime Serializer :: class ) Ġval ĠdateTime : ĠLocalDateTime ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Serial izes ĠLocalDateTime `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġval ĠdateTime Ġ= ĠLocalDateTime . of ( 2 0 2 2 , ĠMonth . J AN U ARY , Ġ 1 , Ġ 1 4 , Ġ 1 5 , Ġ 1 6 ) ĊĠĠĠĠĠĠĠ Ġval Ġclass For Test Ġ= ĠClass For Test ( dateTime ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠJson . encode ToString ( class For Test ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ ĠJSON Assert . assertEquals ("{ dateTime :' 2 0 2 2 - 0 1 - 0 1 T 1 4 : 1 5 : 1 6 '} ", Ġjson , ĠJSON Compare Mode . LEN IENT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Deserial izes ĠLocalDateTime `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġval ĠdateTime Ġ= Ġ" 2 0 2 2 - 0 1 - 0 1 T 1 4 : 1 5 : 1 6 " ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġ""" {" dateTime ":" ${ dateTime } Z "} """ ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġclass For Test Ġ= ĠJson . decode FromString < Class For Test >( json ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ ĠassertEquals ( dateTime , Ġclass For Test . dateTime . toString ()) ĊĠĠĠ Ġ} Ċ } Ċ