package Ġplay w rig kt . sk ript . http Ċ Ċ import Ġio . kot lint est . fail Ċ import Ġio . kot lint est . shouldBe Ċ import Ġio . kot lint est . specs . String Spec Ċ import Ġplay w rig kt . sk ript . http . server . HttpServer Ċ import Ġplay w rig kt . sk ript . result . AsyncResult Ċ import Ġjava . util .* Ċ Ċ class ĠHttp Endpoint Test : ĠString Spec () Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ" Match Ġan Ġend op int Ġwith Ġan Ġidentical Ġpath Ġliteral " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Server . Endpoint ("/ path ", Ġempty Map (), ĠHttp . Method . Get ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. matches ( Http . Method . Get , Ġempty Map (), Ġ"/ path ") ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Match Ġan Ġendpoint Ġwith Ġa Ġparameter ized Ġpath Ġliteral " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Server . Endpoint ("/ path /{ param 1 }", Ġempty Map (), ĠHttp . Method . Get ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. matches ( Http . Method . Get , Ġempty Map (), Ġ"/ path / value 1 ") ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" create Ġa Ġrequest Ġfrom Ġendpoint Ġwith Ġa Ġparameter ized Ġpath Ġliteral " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠHttp Server . Endpoint ("/ path /{ param 1 }", Ġempty Map (), ĠHttp . Method . Get ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. request (" http :// localhost / path / value 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttp . Method . Get , Ġ"/ path / value 1 ", Ġ"", Ġempty Map (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAsync Result . succeeded (" ". toByteArray ())). result () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ?. request Uri ĠshouldBe Ġ" http :// localhost / path / value 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ?. method ĠshouldBe ĠHttp . Method . Get ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ?. headers ĠshouldBe Ġempty Map () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ?. body ?. result ()?. let Ġ{ ĠString ( it ) Ġ} ĠshouldBe Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ?. path Parameters ĠshouldBe Ġmap Of (" path " Ġto Ġ" path ", Ġ" param 1 " Ġto Ġ" value 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ?. query Parameters ĠshouldBe Ġempty Map < String , ĠString >() ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Match Ġan Ġendpoint Ġthat Ġrequires Ġa Ġheader " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Server . Endpoint ("/ path ", Ġmap Of (" Authorization " Ġto Ġempty List ()), ĠHttp . Method . Get ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. matches ( Http . Method . Get , Ġmap Of (" Authorization " Ġto ĠlistOf ( UUID . randomUUID (). toString ())), Ġ"/ path ") ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Match Ġan Ġendpoint Ġthat Ġrequires Ġa Ġheader Ġwhen Ġthere Ġare Ġextra Ġheaders " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Server . Endpoint ("/ path ", Ġmap Of (" Authorization " Ġto Ġempty List ()), ĠHttp . Method . Get ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. matches ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttp . Method . Get , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Authorization " Ġto ĠlistOf ( UUID . randomUUID (). toString ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Host " Ġto ĠlistOf (" localhost ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ path ") ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" create Ġa Ġrequest Ġfrom Ġan Ġendpoint Ġwith Ġpath Ġparameters Ġand Ġheaders " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġauth HeaderValue Ġ= ĠUUID . randomUUID (). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġ ĠHttp Server . Endpoint ("/ path /{ param 1 }", Ġmap Of (" Authorization " Ġto Ġempty List ()), ĠHttp . Method . Get ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. request (" http :// localhost / path / value 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttp . Method . Get , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ path / value 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Authorization " Ġto ĠlistOf ( auth HeaderValue ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Host " Ġto ĠlistOf (" localhost ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAsync Result . succeeded (" ". toByteArray ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif (! result . is Success ()) Ġfail (" Expected Ġsuccess : Ġ${ result . error () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġresult . result () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ?. request Uri ĠshouldBe Ġ" http :// localhost / path / value 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ?. method ĠshouldBe ĠHttp . Method . Get ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ?. headers ĠshouldBe Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Authorization " Ġto ĠlistOf ( auth HeaderValue ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Host " Ġto ĠlistOf (" localhost ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ?. body ?. result ()?. let Ġ{ ĠString ( it ) Ġ} ĠshouldBe Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ?. path Parameters ĠshouldBe Ġmap Of (" path " Ġto Ġ" path ", Ġ" param 1 " Ġto Ġ" value 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ?. query Parameters ĠshouldBe Ġempty Map < String , ĠString >() ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} Ċ }