package Ġcom . kor rit . kotlin . ktor Ċ Ċ import Ġio . ktor . application . Application Call Pipeline Ċ import Ġio . ktor . features . Data Conversion Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . Assertions . assertTrue Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . time . Local Time Ċ import Ġjava . time . Offset DateTime Ċ import Ġjava . time . Zone Offset Ċ import Ġjava . time . Z onedDateTime Ċ import Ġjava . time . chrono . Ch rono Z onedDateTime Ċ Ċ internal Ġclass ĠTime Converters Kt Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġconvert Ġdate Ġand Ġtime `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconverter Ġ= ĠData Conversion . install ( Application Call Pipeline ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconvert Time () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠCase ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobj : ĠAny , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext : ĠString ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCase ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Ġ= ĠLocalDate . of ( 1 9 9 3 , Ġ 1 2 , Ġ 1 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" 1 9 9 3 - 1 2 - 1 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCase ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Ġ= ĠLocalDateTime . of ( 1 9 9 3 , Ġ 1 2 , Ġ 1 1 , Ġ 2 0 , Ġ 1 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" 1 9 9 3 - 1 2 - 1 1 T 2 0 : 1 5 : 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCase ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Ġ= ĠOffset DateTime . of ( 1 9 9 3 , Ġ 1 2 , Ġ 1 1 , Ġ 2 0 , Ġ 1 5 , Ġ 0 , Ġ 0 , ĠZone Offset . UTC ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" 1 9 9 3 - 1 2 - 1 1 T 2 0 : 1 5 : 0 0 Z " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCase ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Ġ= ĠOffset DateTime . of ( 1 9 9 3 , Ġ 1 2 , Ġ 1 1 , Ġ 2 0 , Ġ 1 5 , Ġ 0 , Ġ 0 , ĠZone Offset . of ("+ 0 2 : 0 0 ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" 1 9 9 3 - 1 2 - 1 1 T 2 0 : 1 5 : 0 0 + 0 2 : 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCase ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Ġ= ĠZ onedDateTime . of ( 1 9 9 3 , Ġ 1 2 , Ġ 1 1 , Ġ 2 0 , Ġ 1 5 , Ġ 0 , Ġ 0 , ĠZone Offset . UTC ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" 1 9 9 3 - 1 2 - 1 1 T 2 0 : 1 5 : 0 0 Z " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCase ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Ġ= ĠZ onedDateTime . of ( 1 9 9 3 , Ġ 1 2 , Ġ 1 1 , Ġ 2 0 , Ġ 1 5 , Ġ 0 , Ġ 0 , ĠZone Offset . of ("+ 0 2 : 0 0 ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" 1 9 9 3 - 1 2 - 1 1 T 2 0 : 1 5 : 0 0 + 0 2 : 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCase ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Ġ= ĠLocal Time . of ( 2 0 , Ġ 1 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" 2 0 : 1 5 : 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ). test Cases Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( listOf ( text ), Ġconverter . to Values ( obj )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( obj ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCh rono Z onedDateTime < *> Ġ-> ĠassertTrue ( obj . isEqual ( converter . from Values ( listOf ( text ), Ġobj :: class . java ) Ġas ĠCh rono Z onedDateTime < *> )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠOffset DateTime Ġ-> ĠassertTrue ( obj . isEqual ( converter . from Values ( listOf ( text ), Ġobj :: class . java ) Ġas ĠOffset DateTime )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠassertEquals ( obj , Ġconverter . from Values ( listOf ( text ), Ġobj :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ