/* Ċ Ġ* Ġ ĠCopyright Ġ( c ) Ġ 2 0 2 0 . ĠP ela ĠC rist ian Ċ Ġ* Ġ ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ċ Ġ* Ġ Ġcopy Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ċ Ġ* Ġ Ġto Ġdeal Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ċ Ġ* Ġ Ġthe Ġrights Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ċ Ġ* Ġ Ġand / or Ġsell Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe Ċ Ġ* Ġ ĠSoftware Ġis Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* Ġ ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ċ Ġ* Ġ Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* Ġ ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS Ċ Ġ* Ġ ĠOR ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* Ġ ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* Ġ ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* Ġ ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING Ċ Ġ* Ġ ĠFROM , ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER Ċ Ġ* Ġ ĠDEALINGS ĠIN ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġp cf . cr sk dev . ko on splash . util Ċ Ċ import Ġokhttp 3 . MediaType . Companion . to MediaType Ċ import Ġokhttp 3 . mock webserver . Mock Response Ċ import Ġok io . Buffer Ċ import Ġok io . source Ċ import Ġjava . io . File Ċ import Ġjava . io . FileNotFoundException Ċ import Ġjava . net . URL Ċ import Ġjava . nio . file . Paths Ċ import Ġjava . util . zip . CRC 3 2 Ċ Ċ fun ĠMock Response . set Body From URL ( url : ĠURL ): ĠMock Response Ġ= Ġtry Ġ{ ĊĠĠĠ Ġset Body ( ĊĠĠĠĠĠĠĠ ĠBuffer (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwrite All ( url . open Stream (). source ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ċ } Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠ Ġwhen Ġ( ex ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠFileNotFoundException Ġ-> Ġset Response Code ( 4 0 4 ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġset Response Code ( 5 0 0 ) ĊĠĠĠ Ġ}. set Body ( ex . message Ġ?: Ġ"") Ċ } Ċ Ċ fun ĠMock Response . set Body From Resource ( filePath : ĠString ): ĠMock Response Ġ= Ġset Body From URL ( resource ( filePath )) Ċ Ċ fun ĠMock Response . set Body FromFile ( file : ĠFile ): ĠMock Response Ġ= Ġset Body From URL ( file . to URI (). to URL ()) Ċ Ċ fun ĠMock Response . with Image Header ( image Type : ĠString ) Ġ= Ġset Header (" Content - Type ", Ġ" image /$ image Type ". to MediaType ()) Ċ Ċ fun ĠMock Response . with JSON Header () Ġ= Ġset Header (" Content - Type ", Ġ" application / json ". to MediaType ()) Ċ Ċ fun ĠMock Response . with HTML Header () Ġ= Ġset Header (" Content - Type ", Ġ" text / html ". to MediaType ()) Ċ Ċ fun Ġfile From Path ( var arg Ġsegments : ĠString ): ĠFile Ġ= ĠFile ( segments . join ToString ( File . separator )) Ċ Ċ fun ĠURL . to File (): ĠFile Ġ= ĠPaths . get ( to URI ()). to File () Ċ Ċ fun ĠAny . resource ( filePath : ĠString ): ĠURL Ġ= ĊĠĠĠ Ġjava Class . class Loader . getResource ( filePath ) Ġ?: Ġthrow ĠFileNotFoundException (" Resource Ġnot Ġfound Ġ$ filePath ") Ċ Ċ fun ĠFile . checksum (): ĠLong Ġ= ĠCRC 3 2 (). apply Ġ{ ĊĠĠĠ Ġval Ġbytes Ġ= Ġthis @ checksum . read Bytes () ĊĠĠĠ Ġupdate ( bytes , Ġ 0 , Ġbytes . size ) Ċ }. value Ċ