package Ġno . nav . sy fo . application Ċ Ċ import Ġcom . auth 0 . jwt . interfaces . Payload Ċ import Ġcom . fasterxml . jackson . databind . Deserialization Feature Ċ import Ġcom . fasterxml . jackson . databind . Serialization Feature Ċ import Ġcom . fasterxml . jackson . datatype . js r 3 1 0 . Java Time Module Ċ import Ġcom . fasterxml . jackson . module . kotlin . register Kotlin Module Ċ import Ġio . ktor . application . Application Call Pipeline Ċ import Ġio . ktor . application . call Ċ import Ġio . ktor . application . install Ċ import Ġio . ktor . auth . authentication Ċ import Ġio . ktor . auth . jwt . JWT Principal Ċ import Ġio . ktor . features . Content Neg otiation Ċ import Ġio . ktor . jackson . jackson Ċ import Ġio . ktor . routing . routing Ċ import Ġio . ktor . server . engine . embedded Server Ċ import Ġio . ktor . server . netty . Net ty Ċ import Ġio . mock k . co Every Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . mock k Class Ċ import Ġjava . time . Offset DateTime Ċ import Ġjava . time . Zone Offset Ċ import Ġno . nav . sy fo . application . api . register N ais Api Ċ import Ġno . nav . sy fo . persist ering . lag re M ott att Sy k meld ing Ċ import Ġno . nav . sy fo . persist ering . op prett Be hand lings utf all Ċ import Ġno . nav . sy fo . sy k meld ing . internal . api . regist rer Internal Sy k meld ing Api V 2 Ċ import Ġno . nav . sy fo . sy k meld ing . internal . til gang . Til gang sk ont roll Service Ċ import Ġno . nav . sy fo . sy k meld ing . service . Sy k meld inger Service Ċ import Ġno . nav . sy fo . sy k meld ing . status . Ar be id sg iver Status Ċ import Ġno . nav . sy fo . sy k meld ing . status . ShortName Ċ import Ġno . nav . sy fo . sy k meld ing . status . Sp ors mal Ċ import Ġno . nav . sy fo . sy k meld ing . status . Status Event Ċ import Ġno . nav . sy fo . sy k meld ing . status . S var Ċ import Ġno . nav . sy fo . sy k meld ing . status . Sv art ype Ċ import Ġno . nav . sy fo . sy k meld ing . status . Sy k meld ing Send Event Ċ import Ġno . nav . sy fo . sy k meld ing . status . Sy k meld ing Status Event Ċ import Ġno . nav . sy fo . sy k meld ing . status . Sy k meld ing Status Service Ċ import Ġno . nav . sy fo . sy k meld ing . status . api . register Sy k meld ing Status GET Api Ċ import Ġno . nav . sy fo . sy k meld ing . status . register Status Ċ import Ġno . nav . sy fo . sy k meld ing . status . regist rer Send t Ċ import Ġno . nav . sy fo . sy k meld ing . user . api . regist rer Sy k meld ing Api V 2 Ċ import Ġno . nav . sy fo . testutil . Test DB Ċ import Ġno . nav . sy fo . testutil . get Sy k meld ing Op pl ys ning er Ċ import Ġno . nav . sy fo . testutil . test Be hand lings utf all Ċ import Ġno . nav . sy fo . testutil . test Sy k meld ings d okument Ċ Ċ fun Ġmain () Ġ{ ĊĊĠĠĠ Ġval Ġdb Ġ= ĠTest DB () ĊĠĠĠ Ġval Ġsy k meld ings op pl ys ning Ġ= Ġget Sy k meld ing Op pl ys ning er (" 0 1 2 3 4 5 6 7 8 9 1 ") ĊĠĠĠ Ġdb . lag re M ott att Sy k meld ing ( sy k meld ings op pl ys ning , Ġtest Sy k meld ings d okument . copy ( id Ġ= Ġ" 1 2 3 ")) ĊĠĠĠ Ġdb . register Status ( Sy k meld ing Status Event ( sy k meld ings op pl ys ning . id , Ġsy k meld ings op pl ys ning . mot t att Tid sp unkt . at Offset ( Zone Offset . UTC ), ĠStatus Event . AP EN )) ĊĠĠĠ Ġdb . connection . op prett Be hand lings utf all ( test Be hand lings utf all . copy ( id Ġ= Ġ" 1 2 3 ")) ĊĠĠĠ Ġdb . regist rer Send t ( Sy k meld ing Send Event ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsy k meld ings op pl ys ning . id , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOffset DateTime . now ( Zone Offset . UTC ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAr be id sg iver Status ( sy k meld ings op pl ys ning . id , Ġ" 1 2 3 ", Ġ" 1 2 3 ", Ġ" nav n "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp ors mal (" Ar be id ss it ua json ", ĠShort Name . AR BE ID SS IT U AS J ON , ĠS var ( sy k meld ings op pl ys ning . id , Ġnull , ĠS v art ype . AR BE ID SS IT U AS J ON , Ġ" EN _ AR BE ID SG IVER ")) ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS yk meld ing Status Event ( sy k meld ings op pl ys ning . id , ĠOffset DateTime . now ( Zone Offset . UTC ), ĠStatus Event . SEND T )) ĊĊĠĠĠ Ġval Ġtil gang sk ont roll Service Ġ= Ġmock k Class ( Til gang sk ont roll Service :: class ) ĊĠĠĠ Ġval Ġsy k meld ing Status Service Ġ= ĠS yk meld ing Status Service ( db ) ĊĠĠĠ Ġval Ġsy k meld inger Service Ġ= ĠS yk meld inger Service ( database Ġ= Ġdb ) ĊĠĠĠ Ġval Ġmock Payload Ġ= Ġmock k < Payload >() ĊĠĠĠ Ġco Every Ġ{ Ġtil gang sk ont roll Service . has Access To User O bo Token ( any (), Ġany ()) Ġ} Ġreturns Ġtrue ĊĠĠĠ Ġevery Ġ{ Ġmock Payload . subject Ġ} Ġreturns Ġ" 0 1 2 3 4 5 6 7 8 9 1 " ĊĠĠĠ Ġembedded Server ( Net ty , Ġ 8 0 8 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinstall ( Content Neg otiation ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj ack son Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregister Kotlin Module () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregister Module ( Java Time Module ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure ( Serialization Feature . WRITE _ DAT ES _ AS _ TIMESTAMP S , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure ( Deserialization Feature . FAIL _ ON _ UNKNOWN _ PROPERTIES , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġintercept ( Application Call Pipeline . Call ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall . authentication . principal Ġ= ĠJWT Principal ( mock Payload ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrouting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister N ais Api ( Application State ( true , Ġtrue )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Sy k meld ing Status GET Api ( sy k meld ing Status Service ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregist rer Sy k meld ing Api V 2 ( sy k meld inger Service ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregist rer Internal Sy k meld ing Api V 2 ( sy k meld inger Service , Ġtil gang sk ont roll Service ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}. start ( true ) Ċ } Ċ