package Ġno . nav . bid rag . cucumber . backend Ċ Ċ import Ġio . cucumber . java . Before Ċ import Ġio . cucumber . java . Scenario Ċ import Ġio . cucumber . java . no . Git t Ċ import Ġio . cucumber . java . no . N Ã¥r Ċ import Ġio . cucumber . java . no . Og Ċ import Ġio . cucumber . java . no . S Ã¥ Ċ import Ġno . nav . bid rag . cucumber . Rest T jen este Ċ import Ġno . nav . bid rag . cucumber . Scenario Manager Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . assertj . core . api . Soft Assertions Ċ import Ġorg . springframework . http . HttpStatus Ċ import Ġkotlin . test . assertTrue Ċ Ċ class ĠF el les Eg ens k aper Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġrest T jen este : ĠRest T jen este ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġ` manage Ġscenario `( scenario : ĠScenario ) Ġ{ ĊĠĠĠĠĠĠĠ ĠScenario Manager . use ( scenario ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Git t (" rest t jen est en Ġ{ string }") ĊĠĠĠ Ġfun Ġrest t jen est en ( alias : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrest T jen este Ġ= ĠRest T jen este ( alias ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Git t (" na is Ġapp lik as jon Ġ{ string }") ĊĠĠĠ Ġfun Ġgit t N ais App ( na is App : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrest T jen este Ġ= ĠRest T jen este ( na is App ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Git t (" na is Ġapp lik as jon Ġ{ string } Ġmed Ġkont ek st Ġ{ string }") ĊĠĠĠ Ġfun Ġgit t N ais App Med Kont ek st ( na is App : ĠString , Ġcontext : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrest T jen este Ġ= ĠRest T jen este ( na is App , Ġcontext ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ S Ã¥ (" sk al Ġhttp Ġstatus Ġv Ã¦ re Ġ{ string }") ĊĠĠĠ Ġfun Ġ` sk al Ġhttp Ġstatus Ġva ere `( en HttpStatus : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhttp Status Ġ= ĠHttpStatus . valueOf ( en HttpStatus . toInt ()) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( rest T jen este . h ent HttpStatus ()). ` as ` (" HttpStatus Ġfor Ġ${ rest T jen este . h ent Endpoint Url () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( http Status ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Og (" respons en Ġskal Ġin ne hol de Ġfe il meld ingen Ġ{ string }") ĊĠĠĠ Ġfun Ġ` respons en Ġskal Ġin ne hol de Ġfe il meld ingen `( fe il meld ing : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue Ġ( rest T jen este . h ent Response (). toString (). contains ( fe il meld ing )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Og (" s Ã¥ Ġskal Ġrespons en Ġv Ã¦ re Ġet Ġobjekt ") ĊĠĠĠ Ġfun Ġ` sk al Ġrespons en Ġva ere Ġet Ġobjekt `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( rest T jen este . h ent Response ()?. trim ()). startsWith ("{ "). isNot EqualTo ("{} ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Og (" respons en Ġskal Ġin ne hol de Ġ{ string } Ġ= Ġ{ string }") ĊĠĠĠ Ġ@ S Ã¥ (" sk al Ġrespons en Ġin ne hol de Ġ{ string } Ġ= Ġ{ string }") ĊĠĠĠ Ġfun Ġ` respons en Ġskal Ġin ne hol de `( key : ĠString , Ġvalue : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Object Ġ= Ġrest T jen este . h ent Response S om Map () ĊĠĠĠĠĠĠĠ Ġval Ġver di F ra Response Ġ= Ġresponse Object [ key ]?. toString () ĊĊĠĠĠĠĠĠĠ ĠassertThat ( ver di F ra Response ). ` as ` (" json Ġresponse "). isEqualTo ( value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Og (" respons en Ġskal Ġin ne hol de Ġet Ġobjekt Ġmed Ġnav n Ġ{ string } Ġsom Ġhar Ġfelt et Ġ{ string } Ġ= Ġ{ string }") ĊĠĠĠ Ġ@ S Ã¥ (" sk al Ġrespons en Ġin ne hol de Ġet Ġobjekt Ġmed Ġnav n Ġ{ string } Ġsom Ġhar Ġfelt et Ġ{ string } Ġ= Ġ{ string }") ĊĠĠĠ Ġfun Ġ` respons en Ġskal Ġin ne hol de Ġet Ġobjekt Ġmed Ġfelt et `( obj ek t : ĠString , Ġkey : ĠString , Ġvalue : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Object Ġ= Ġrest T jen este . h ent Response S om Map () ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") Ġval Ġobjekt F ra Response Ġ= Ġresponse Object [ obj ek t ] Ġas ĠMap < String , ĠAny >? ĊĠĠĠĠĠĠĠ Ġval Ġver di F ra Response Ġ= Ġobjekt F ra Response ?. get ( key )?. toString () ĊĊĠĠĠĠĠĠĠ ĠassertThat ( ver di F ra Response ). ` as ` ("$ obj ek t Ġskal Ġin ne hol de Ġ$ key "). isEqualTo ( value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Og (" respons en Ġskal Ġin ne hol de Ġet Ġobjekt Ġmed Ġnav n Ġ{ string } Ġsom Ġhar Ġfelt et Ġ{ string } Ġut en Ġver di Ġ{ string }") ĊĠĠĠ Ġfun Ġ` respons en Ġskal Ġin ne hol de Ġet Ġobjekt Ġmed Ġfelt et Ġut en Ġgit t Ġver di `( obj ek t : ĠString , Ġkey : ĠString , Ġvalue : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Object Ġ= Ġrest T jen este . h ent Response S om Map () ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") Ġval Ġobjekt F ra Response Ġ= Ġresponse Object [ obj ek t ] Ġas ĠMap < String , ĠAny >? ĊĠĠĠĠĠĠĠ Ġval Ġver di F ra Response Ġ= Ġobjekt F ra Response ?. get ( key )?. toString () ĊĊĠĠĠĠĠĠĠ ĠassertThat ( obj ek t F ra Response ). ` as ` ("$ obj ek t Ġskal Ġin ne hol de Ġ$ key "). containsKey ( key ) ĊĠĠĠĠĠĠĠ ĠassertThat ( ver di F ra Response ). ` as ` ("$ key Ġskal Ġik ke Ġv Ã¦ re Ġ$ value "). isNot EqualTo ( value ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Og (" respons en Ġskal Ġin ne hol de Ġet Ġobjekt Ġmed Ġnav n Ġ{ string } Ġsom Ġhar Ġfelt ene :") ĊĠĠĠ Ġfun Ġ` respons en Ġskal Ġin ne hol de Ġet Ġobjekt Ġsom Ġhar Ġfelt ene `( obj ek t : ĠString , Ġfel ter : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Object Ġ= Ġrest T jen este . h ent Response S om Map () ĊĠĠĠĠĠĠĠ Ġval Ġjournal post Map Ġ= Ġresponse Object [ obj ek t ] Ġas ĠMap < *, Ġ* >? ĊĠĠĠĠĠĠĠ Ġval Ġm ang ler F elt Ġ= ĠArrayList < String >() ĊĊĠĠĠĠĠĠĠ Ġfel ter . forEach Ġ{ Ġif Ġ(! journal post Map ?. containsKey ( it ) !! ) Ġm ang ler F elt . add ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( m ang ler F elt ). ` as ` (" Response Ġskal Ġik ke Ġm angle Ġno en Ġav Ġ$ fel ter "). isEmpty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Og (" respons en Ġskal Ġin ne hol de Ġet Ġobjekt Ġmed Ġnav n Ġ{ string } Ġsom Ġhar Ġet Ġfelt Ġ{ string } Ġmed Ġfelt et Ġ{ string }") ĊĠĠĠ Ġfun Ġ` respons en Ġskal Ġin ne hol de Ġet Ġobjekt Ġmed Ġfelt Ġsom Ġhar Ġfelt `( obj ek t : ĠString , Ġobjekt F elt : ĠString , Ġfelt : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjournal post Response Ġ= Ġrest T jen este . h ent Response S om Map () ĊĠĠĠĠĠĠĠ Ġval Ġjournal post Map Ġ= Ġjournal post Response [ obj ek t ] Ġas ĠMap < *, Ġ* >? ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") Ġval Ġfelt Map Ġ= Ġjournal post Map ?. get ( obj ek t F elt ) Ġas ĠMap < String , Ġ* >? ĊĊĠĠĠĠĠĠĠ ĠassertThat ( f elt Map ). ` as ` (" Response Ġskal Ġin ne hol de Ġfelt et Ġ$ f elt "). containsKey ( f elt ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Og (" respons en Ġskal Ġin ne hol de Ġet Ġobjekt Ġmed Ġnav n Ġ{ string } Ġsom Ġhar Ġet Ġfelt Ġ{ string } Ġmed Ġfelt ene :") ĊĠĠĠ Ġfun Ġ` respons en Ġskal Ġin ne hol de Ġet Ġobjekt Ġmed Ġfelt Ġmed Ġfelt ene `( obj ek t : ĠString , Ġobjekt F elt : ĠString , Ġfor vent ede F el ter : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjournal post Response Ġ= Ġrest T jen este . h ent Response S om Map () ĊĠĠĠĠĠĠĠ Ġval Ġjournal post Map Ġ= Ġjournal post Response [ obj ek t ] Ġas ĠMap < *, Ġ* >? ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") Ġval Ġre elle F el ter Ġ= Ġ( journal post Map ?. get ( obj ek t F elt ) Ġas ĠList < Map < *, Ġ* >> ?) ?. first () ĊĊĠĠĠĠĠĠĠ ĠassertThat ( re elle F el ter ). isNotNull ĊĠĠĠĠĠĠĠ Ġval Ġm ang ler F elt Ġ= ĠArrayList < String >() ĊĠĠĠĠĠĠĠ Ġfor vent ede F el ter . forEach Ġ{ Ġif Ġ(! re elle F el ter !!. containsKey ( it )) Ġm ang ler F elt . add ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( m ang ler F elt ). ` as ` (" Response Ġmed Ġ$ obj ek t F elt Ġskal Ġik ke Ġm angle Ġno en Ġav Ġ$ for vent ede F el ter "). isEmpty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Og (" respons en Ġskal Ġik ke Ġin ne hol de Ġ{ string } Ġ= Ġ{ string }") ĊĠĠĠ Ġfun Ġ` respons en Ġskal Ġik ke Ġin ne hol de `( key : ĠString , Ġvalue : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Object Ġ= Ġrest T jen este . h ent Response S om Map () ĊĠĠĠĠĠĠĠ Ġval Ġver di F ra Response Ġ= Ġresponse Object [ key ]?. toString () ĊĊĠĠĠĠĠĠĠ ĠassertThat ( ver di F ra Response ). ` as ` (" json Ġresponse Ġskal Ġin ne hol de Ġ$ key "). isNot EqualTo ( value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġ@ S Ã¥ (" h vert Ġelement Ġi Ġlisten Ġskal Ġha Ġ{ string } Ġ= Ġ{ string }") ĊĠĠĠ Ġfun Ġ` h vert Ġelement Ġi Ġlisten Ġskal Ġha `( key : ĠString , Ġvalue : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġverify er Ġ= ĠSoft Assertions () ĊĠĠĠĠĠĠĠ Ġval Ġresponse Object Ġ= Ġrest T jen este . h ent Response S om List e () ĊĊĠĠĠĠĠĠĠ Ġresponse Object . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify er . assertThat ( it [ key ]). ` as ` (" id : Ġ${ it [" journal post Id "]} "). isEqualTo ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġverify er . assert All () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ S Ã¥ (" obj ek t et Ġhar Ġf Ã¸ l gende Ġproperties :") ĊĠĠĠ Ġfun Ġ` obj ek t et Ġhar Ġfol gende Ġproperties `( properties : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Object Ġ= Ġrest T jen este . h ent Response S om Map () ĊĠĠĠĠĠĠĠ Ġval Ġm angle de Props Ġ= ĠArrayList < String >() ĊĊĠĠĠĠĠĠĠ Ġproperties . forEach Ġ{ Ġif Ġ(! response Object . containsKey ( it )) Ġm angle de Props . add ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( m angle de Props ). ` as ` (" Respons en Ġskal Ġha Ġalle Ġproperties : Ġ$ properties "). isEmpty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġ@ S Ã¥ ("{ string } Ġskal Ġha Ġf Ã¸ l gende Ġproperties :") ĊĠĠĠ Ġfun Ġ` git t Ġobject Ġskal Ġha Ġfol gende Ġproperties `( obj : ĠString , Ġproperties : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Object Ġ= Ġrest T jen este . h ent Response S om Map () ĊĠĠĠĠĠĠĠ Ġval Ġm ang len de Properties : ĠList < String > Ġ= Ġwhen Ġ( val Ġobjects Ġ= Ġresponse Object [ obj ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠList < *> Ġ-> Ġrest T jen este . h ent M ang len de Properties ( objects , Ġproperties ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLinkedHashMap < *, Ġ*> Ġ-> Ġrest T jen este . h ent M ang len de Properties ( objects , Ġproperties ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalStateException (" uk jen nt Ġtype Ġav Ġ$ objects ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( m ang len de Properties ). ` as ` ("$ obj Ġskal Ġik ke Ġm angle Ġno en Ġav Ġ$ properties Ġi Ġresponse ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEmpty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Og (" s Ã¥ Ġskal Ġrespons en Ġv Ã¦ re Ġen Ġliste ") ĊĠĠĠ Ġfun Ġ` sk al Ġrespons en Ġva ere Ġen Ġliste `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( rest T jen este . h ent Response ()?. trim ()). startsWith ("[ ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Og (" h vert Ġelement Ġi Ġlisten Ġskal Ġha Ġf Ã¸ l gende Ġproperties Ġs att :") ĊĠĠĠ Ġfun Ġ` h vert Ġelement Ġi Ġlisten Ġskal Ġha Ġfol gende Ġproperties Ġs att `( properties : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġverify er Ġ= ĠSoft Assertions () ĊĠĠĠĠĠĠĠ Ġval Ġresponse Object Ġ= Ġrest T jen este . h ent Response S om List e () ĊĊĠĠĠĠĠĠĠ Ġresponse Object . forEach Ġ{ Ġelement Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . forEach Ġ{ Ġverify er . assertThat ( element ). ` as ` (" missing Ġ$ it Ġin Ġjp : Ġ${ element [" journal post Id "] }) "). containsKey ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġverify er . assert All () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ N Ã¥r (" je g Ġk aller Ġendpoint Ġ{ string } Ġmed Ġparameter Ġ{ string } Ġ= Ġ{ string }") ĊĠĠĠ Ġfun Ġ` je g Ġk aller Ġendpoint Ġmed Ġparameter `( endpoint : ĠString , Ġparameter Nav n : ĠString , Ġparameter Ver di : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrest T jen este . exchange Get ("$ endpoint ?$ parameter Nav n =$ parameter Ver di ") ĊĠĠĠ Ġ} Ċ } Ċ