/** Ċ < s late _ header > Ċ url : Ġwww . s late kit . com Ċ git : Ġwww . github . com / code - helix / s late kit Ċ org : Ġwww . code helix . co Ċ author : ĠK ish ore ĠRed dy Ċ copyright : Ġ 2 0 1 6 ĠCode Hel ix ĠSolutions ĠInc . Ċ license : Ġrefer Ġto Ġwebsite Ġand / or Ġgithub Ċ about : ĠA ĠKotlin Ġutility Ġlibrary , Ġtool - kit Ġand Ġserver Ġbackend . Ċ man tra : ĠSimp licity Ġabove Ġall Ġelse Ċ </ s late _ header > Ċ Ġ*/ Ċ package Ġtest . apis Ċ Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . json . simple . JSONObject Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Test Ċ import Ġs late kit . apis .* Ċ import Ġs late kit . apis . routes . Api Ċ import Ġs late kit . apis . services . Rest ify Ċ import Ġs late kit . common .* Ċ import Ġs late kit . utils . naming . Lower Hy phen N amer Ċ import Ġs late kit . utils . naming . N amer Ċ import Ġs late kit . results . Result Ċ import Ġs late kit . results . Codes Ċ import Ġs late kit . results . getOrElse Ċ import Ġtest . setup . Sample REST Api Ċ import Ġtest . setup . Movie Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġk ish orer ed dy Ġon Ġ 6 / 1 2 / 1 7 . Ċ Ġ*/ ĊĊ Ċ class ĠApi _ Rest ful _ Tests Ġ: ĠApi Tests Base () Ġ{ Ċ Ċ /* Ċ * ĠGET ĠĠĠ Ġ/ tickets ĠĠĠ Ġ- ĠRetrieves Ġa Ġlist Ġof Ġtickets Ċ * ĠGET ĠĠĠ Ġ/ tickets / 1 2 Ġ- ĠRetrieves Ġa Ġspecific Ġticket Ċ * ĠPOST ĠĠ Ġ/ tickets ĠĠĠ Ġ- ĠCreates Ġa Ġnew Ġticket Ċ * ĠPUT ĠĠĠ Ġ/ tickets / 1 2 Ġ- ĠUpdates Ġticket Ġ# 1 2 Ċ * ĠP ATCH Ġ Ġ/ tickets / 1 2 Ġ- ĠPart ially Ġupdates Ġticket Ġ# 1 2 Ċ * ĠDELETE Ġ/ tickets / 1 2 Ġ- ĠDeletes Ġticket Ġ# 1 2 Ċ * Ċ */ ĊĠĠĠ Ġ@ Test Ġfun Ġcan _ get _ all () Ġ{ ĊĊĠĠĠĠĠĠ Ġensure ("", ĠVerb . Get , Ġmap Of (), Ġn amer Ġ= ĠLower Hy phen N amer (), Ġcallback Ġ= { Ġr 1 Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( r 1 . success ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( r 1 . code Ġ== ĠCode s . SUCCESS . code ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġall Ġ= Ġr 1 . getOrElse Ġ{ ĠMovie . samples () Ġ} Ġas ĠList < Movie > ĊĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( all . size Ġ== Ġ 2 Ġ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test Ġfun Ġcan _ get _ by _ id () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġap is Ġ= ĠApi Server ( ctx , Ġwriter Ġ= ĠRest ify (), Ġap is Ġ= ĠlistOf ( Api ( Sample REST Api :: class , Ġ" app ", Ġ" Sample REST "))) ĊĠĠĠĠĠĠĠ Ġval Ġr 1 Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġap is . execute Attempt (" app ", Ġ" Sample REST ", Ġ" 1 ", ĠVerb . Get , Ġmap Of (), Ġmap Of ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( r 1 . success ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( r 1 . code Ġ== ĠCode s . SUCCESS . code ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbook Ġ= Ġr 1 . getOrElse Ġ{ ĠMovie . samples ()[ 0 ] Ġ} Ġas ĠMovie ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( book . title Ġ== ĠMovie . samples (). first (). title ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test Ġfun Ġcan _ patch () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġap is Ġ= ĠApi Server ( ctx , Ġwriter Ġ= ĠRest ify (), Ġap is Ġ= ĠlistOf ( Api ( Sample REST Api :: class , Ġ" app ", Ġ" Sample REST "))) ĊĠĠĠĠĠĠĠ Ġval Ġr 1 Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġap is . execute Attempt (" app ", Ġ" Sample REST ", Ġ" 1 ", ĠVerb . Patch , Ġmap Of (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" title " Ġto Ġ" In di ana ĠJ ones ĠOriginal ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( r 1 . success ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( r 1 . code Ġ== ĠCode s . SUCCESS . code ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( r 1 . getOrElse Ġ{ Ġ"" Ġ} Ġ== Ġ" patched Ġ 1 Ġwith ĠIn di ana ĠJ ones ĠOriginal ") ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test Ġfun Ġcan _ delete _ by _ id () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġap is Ġ= ĠApi Server ( ctx , Ġwriter Ġ= ĠRest ify (), Ġap is Ġ= ĠlistOf ( Api ( Sample REST Api :: class , Ġ" app ", Ġ" Sample REST "))) ĊĠĠĠĠĠĠĠ Ġval Ġr 1 Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġap is . execute Attempt (" app ", Ġ" Sample REST ", Ġ" 1 ", ĠVerb . Delete , Ġmap Of (), Ġmap Of ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( r 1 . success ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( r 1 . code Ġ== ĠCode s . SUCCESS . code ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( r 1 . getOrElse Ġ{ Ġ"" Ġ} Ġ== Ġ" delete ById Ġ 1 ") ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test Ġfun Ġcan _ activate _ by _ id () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġap is Ġ= ĠApi Server ( ctx , Ġwriter Ġ= ĠRest ify (), Ġap is Ġ= ĠlistOf ( Api ( Sample REST Api :: class , Ġ" app ", Ġ" Sample REST "))) ĊĠĠĠĠĠĠĠ Ġval Ġr 1 Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġap is . execute Attempt (" app ", Ġ" Sample REST ", Ġ" activate ById ", ĠVerb . Post , Ġmap Of (), Ġmap Of (" id " Ġto Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( r 1 . success ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( r 1 . code Ġ== ĠCode s . SUCCESS . code ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( r 1 . getOrElse Ġ{ Ġ"" Ġ} Ġ== Ġ" activate ById Ġ 1 ") ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcan _ create (){ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠJSONObject () ĊĠĠĠĠĠĠĠ Ġjson . put (" id " ĠĠĠĠĠĠĠ Ġ, Ġ" 0 ") ĊĠĠĠĠĠĠĠ Ġjson . put (" title " ĠĠĠĠ Ġ, Ġ" In di ana ĠJ ones ") ĊĠĠĠĠĠĠĠ Ġjson . put (" category " Ġ Ġ, Ġ" ad venture ") ĊĠĠĠĠĠĠĠ Ġjson . put (" playing " ĠĠ Ġ, Ġ" false ") ĊĠĠĠĠĠĠĠ Ġjson . put (" cost " ĠĠĠĠĠ Ġ, Ġ" 3 0 ") ĊĠĠĠĠĠĠĠ Ġjson . put (" rating " ĠĠĠ Ġ, Ġ" 4 . 8 ") ĊĠĠĠĠĠĠĠ Ġjson . put (" released " Ġ Ġ, ĠDateTime s . of ( 1 9 8 1 , Ġ 6 , Ġ 1 2 ). toString ()) ĊĠĠĠĠĠĠĠ Ġjson . put (" createdAt " Ġ, ĠDateTime s . of ( 2 0 1 7 , Ġ 7 , Ġ 1 7 ). toString ()) ĊĠĠĠĠĠĠĠ Ġjson . put (" created By " Ġ, Ġ" 0 ") ĊĠĠĠĠĠĠĠ Ġjson . put (" updatedAt " Ġ, ĠDateTime s . of ( 2 0 1 7 , Ġ 7 , Ġ 1 7 ). toString ()) ĊĠĠĠĠĠĠĠ Ġjson . put (" updated By " Ġ, Ġ" 0 ") ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġmap Of ( Ġ" item " Ġto Ġjson Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġap is Ġ= ĠApi Server ( ctx , Ġwriter Ġ= ĠRest ify (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġap is Ġ= ĠlistOf ( Api ( Sample REST Api :: class , Ġ" app ", Ġ" Sample REST ")) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġr 1 Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġap is . execute Attempt ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" app ", Ġ" Sample REST ", Ġ"", ĠVerb . Post , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" api - key " Ġto Ġ" 3 E 3 5 5 8 4 A 8 DE 0 4 6 0 BB 2 8 D 6 E 0 D 3 2 FB 4 CF D "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( r 1 . success ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( r 1 . code Ġ== ĠCode s . SUCCESS . code ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( r 1 . getOrElse Ġ{ Ġ 0 L Ġ} Ġ== Ġ 3 L ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcan _ update (){ ĊĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠJSONObject () ĊĠĠĠĠĠĠĠ Ġjson . put (" id " ĠĠĠĠĠĠĠ Ġ, Ġ" 1 ") ĊĠĠĠĠĠĠĠ Ġjson . put (" title " ĠĠĠĠ Ġ, Ġ" In di ana ĠJ ones ") ĊĠĠĠĠĠĠĠ Ġjson . put (" category " Ġ Ġ, Ġ" ad venture ") ĊĠĠĠĠĠĠĠ Ġjson . put (" playing " ĠĠ Ġ, Ġ" false ") ĊĠĠĠĠĠĠĠ Ġjson . put (" cost " ĠĠĠĠĠ Ġ, Ġ" 3 0 ") ĊĠĠĠĠĠĠĠ Ġjson . put (" rating " ĠĠĠ Ġ, Ġ" 4 . 8 ") ĊĠĠĠĠĠĠĠ Ġjson . put (" released " Ġ Ġ, ĠDateTime s . of ( 1 9 8 1 , Ġ 6 , Ġ 1 2 ). toString ()) ĊĠĠĠĠĠĠĠ Ġjson . put (" createdAt " Ġ, ĠDateTime s . of ( 2 0 1 7 , Ġ 7 , Ġ 1 7 ). toString ()) ĊĠĠĠĠĠĠĠ Ġjson . put (" created By " Ġ, Ġ" 0 ") ĊĠĠĠĠĠĠĠ Ġjson . put (" updatedAt " Ġ, ĠDateTime s . of ( 2 0 1 7 , Ġ 7 , Ġ 1 7 ). toString ()) ĊĠĠĠĠĠĠĠ Ġjson . put (" updated By " Ġ, Ġ" 0 ") ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġmap Of ( Ġ" item " Ġto Ġjson Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġap is Ġ= ĠApi Server ( ctx , Ġwriter Ġ= ĠRest ify (), Ġap is Ġ= ĠlistOf ( Api ( Sample REST Api :: class , Ġ" app ", Ġ" Sample REST "))) ĊĠĠĠĠĠĠĠ Ġval Ġr 1 Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġap is . execute Attempt ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" app ", Ġ" Sample REST ", Ġ"", ĠVerb . Put , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" api - key " Ġto Ġ" 3 E 3 5 5 8 4 A 8 DE 0 4 6 0 BB 2 8 D 6 E 0 D 3 2 FB 4 CF D "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( r 1 . success ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( r 1 . code Ġ== ĠCode s . SUCCESS . code ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( r 1 . getOrElse Ġ{ Ġ"" Ġ} Ġ== Ġ" updated Ġ 1 ") ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġensure ( action : String , Ġverb : Verb , Ġargs : Map < String , Any >, Ġn amer : ĠN amer ?, Ġcallback :( Result < *, Ġ* >) Ġ-> ĠUnit ): ĠUnit Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġap is Ġ= ĠApi Server ( ctx , Ġwriter Ġ= ĠRest ify (), Ġap is Ġ= ĠlistOf ( Api ( Sample REST Api :: class , Ġ" app ", Ġ" Sample REST "))) ĊĠĠĠĠĠĠĠ Ġval Ġr 1 Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġap is . execute Attempt (" app ", Ġ" Sample REST ", Ġaction , Ġverb , Ġmap Of (), Ġargs ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcallback ( r 1 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġapi 2 Ġ= ĠApi Server ( ctx , Ġwriter Ġ= ĠRest ify (), Ġap is Ġ= ĠlistOf ( Api ( Sample REST Api :: class , Ġ" app ", Ġ" Sample REST ")), Ġsettings Ġ= Ġs late kit . apis . Settings ( naming Ġ= Ġn amer )) ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġn amer ?. rename (" Sample REST ") Ġ Ġ?: Ġ" Sample REST " ĊĠĠĠĠĠĠĠ Ġval Ġact Ġ Ġ= Ġn amer ?. rename ( action ) Ġ?: Ġaction ĊĠĠĠĠĠĠĠ Ġval Ġr 2 Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi 2 . execute Attempt (" app ", Ġname , Ġact , Ġverb , Ġmap Of (), Ġargs ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcallback ( r 2 ) ĊĠĠĠ Ġ} Ċ } Ċ