package Ġcom . exact pro . th 2 . codec . openapi Ċ Ċ import Ġcom . exact pro . th 2 . codec . openapi . Open Api Codec . Companion . HEADERS _ FIELD Ċ import Ġcom . exact pro . th 2 . codec . openapi . Open Api Codec . Companion . HEADER _ PARAMS _ FIELD Ċ import Ġcom . exact pro . th 2 . codec . openapi . Open Api Codec . Companion . URI _ PARAMS _ FIELD Ċ import Ġcom . exact pro . th 2 . codec . openapi . utils . encode Ċ import Ġcom . exact pro . th 2 . codec . openapi . utils . getResource As Text Ċ import Ġcom . exact pro . th 2 . common . assert List Ċ import Ġcom . exact pro . th 2 . common . assert String Ċ import Ġcom . exact pro . th 2 . common . grpc . Any Message Ċ import Ġcom . exact pro . th 2 . common . grpc . Message Group Ċ import Ġcom . exact pro . th 2 . common . message . addField Ċ import Ġcom . exact pro . th 2 . common . message . getString Ċ import Ġcom . exact pro . th 2 . common . message . message Ċ import Ġio . swagger . parser . Open API Parser Ċ import Ġio . swagger . v 3 . o as . models . Open API Ċ import Ġorg . junit . jupiter . api . Assertions Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ class ĠParameters Tests Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` simple Ġparams Ġtest Ġencode Ġrequest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Path Ġ= Ġ" 1 2 3 " ĊĠĠĠĠĠĠĠ Ġval Ġheader Ġ= Ġmessage (" Test Path Get "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Field (" uri Parameters ", Ġmessage (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Field (" path ", Ġtest Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ}. build () ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcodec . encode ( Message Group . newBuilder (). add Messages ( Any Message . newBuilder (). setMessage ( header ). build ()). build ()) ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 1 , Ġresult . messages List . size ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue ( result . messages List [ 0 ]. has Message ()) ĊĠĠĠĠĠĠĠ Ġval Ġheader Result Ġ= Ġresult . messages List [ 0 ]. message !! ĊĊĠĠĠĠĠĠĠ Ġheader Result . assert String ( Open Api Codec . URI _ FIELD , Ġ"/ test / 1 2 3 ") ĊĠĠĠĠĠĠĠ Ġheader Result . assert String ( Open Api Codec . METHOD _ FIELD , Ġ" get ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` empty Ġrequired Ġparams Ġtest Ġencode Ġ` () Ġ{ ĊĠĠĠĠĠĠĠ ĠAssertions . assert Throws ( IllegalStateException :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcodec . encode ( message (" Test Path Get "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Field (" uri Parameters ", Ġmessage ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. build ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠAssertions . assert Throws ( IllegalStateException :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcodec . encode ( message (" Test Path Get "). build ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` empty Ġnon Ġrequired Ġparams Ġtest Ġencode Ġ` () Ġ{ ĊĠĠĠĠĠĠĠ ĠAssertions . assert DoesNot Throw Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcodec . encode ( message (" Empty Path Path Get "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Field (" uri Parameters ", Ġmessage ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. build ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 1 , Ġresult . messages List . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertTrue ( result . messages List [ 0 ]. has Message ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheader Result Ġ= Ġresult . messages List [ 0 ]. message !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader Result . assert String ( Open Api Codec . URI _ FIELD , Ġ"/ empty ? path =") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader Result . assert String ( Open Api Codec . METHOD _ FIELD , Ġ" get ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠAssertions . assert DoesNot Throw Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcodec . encode ( message (" Empty Path Path Get "). build ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 1 , Ġresult . messages List . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertTrue ( result . messages List [ 0 ]. has Message ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheader Result Ġ= Ġresult . messages List [ 0 ]. message !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader Result . assert String ( Open Api Codec . URI _ FIELD , Ġ"/ empty ? path =") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader Result . assert String ( Open Api Codec . METHOD _ FIELD , Ġ" get ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` headers Ġtest Ġencode Ġ` () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġheaders Ġ= Ġmap Of (" some - header " Ġto Ġ" test ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcodec . encode ( message (" Test Label Activate Post "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Field ( URI _ PARAMS _ FIELD , Ġmessage (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Field (" label ", Ġ" test Label ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheaders . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Field ( HEADER _ PARAMS _ FIELD , Ġmessage (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Field ( it . key , Ġit . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. build ()) ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 1 , Ġresult . messages List . size ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue ( result . messages List [ 0 ]. has Message ()) ĊĠĠĠĠĠĠĠ Ġval Ġheader Result Ġ= Ġresult . messages List [ 0 ]. message !! ĊĊĠĠĠĠĠĠĠ Ġheader Result . assert String ( Open Api Codec . URI _ FIELD , Ġ"/ test / test Label / activate ") ĊĠĠĠĠĠĠĠ Ġheader Result . assert String ( Open Api Codec . METHOD _ FIELD , Ġ" post ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Headers Ġ= Ġheader Result . assert List ( HEADERS _ FIELD ) ĊĊĠĠĠĠĠĠĠ Ġheaders . forEach Ġ{ Ġheader Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertNotNull ( result Headers . first OrNull Ġ{ Ġit . message Value . getString (" name ") Ġ== Ġheader . key Ġ&& Ġit . message Value . getString (" value ") Ġ== Ġheader . value Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Message Ġmust Ġcontain Ġheader Ġ${ header . key } Ġwith Ġvalue Ġ${ header . value }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` empty Ġheaders Ġwhile Ġrequired Ġtest Ġencode Ġ` () Ġ{ ĊĠĠĠĠĠĠĠ ĠAssertions . assert Throws ( IllegalStateException :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcodec . encode ( message (" Test Label Activate Post "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Field ( URI _ PARAMS _ FIELD , Ġmessage (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Field (" label ", Ġ" test Label ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. build ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsettings Ġ= ĠOpen Api Codec Settings () ĊĠĠĠĠĠĠĠ Ġval Ġopen API : ĠOpenAPI Ġ= ĠOpenAPI Parser (). read Contents ( getResource As Text (" di ctionaries / valid / params - tests . yml "), Ġnull , Ġsettings . dictionary Parse Option ). open API ĊĠĠĠĠĠĠĠ Ġval Ġcodec Ġ= ĠOpen Api Codec ( open API , Ġsettings ) ĊĠĠĠ Ġ} Ċ }