/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠDavid ĠBl anc Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġfr . s peek ha . http mock er . io Ċ Ċ import Ġfr . s peek ha . http mock er . HTTP _ RESPONSE S _ CODE Ċ import Ġfr . s peek ha . http mock er . getLogger Ċ import Ġfr . s peek ha . http mock er . model . Response Descriptor Ċ import Ġfr . s peek ha . http mock er . response NotFound Ċ import Ġfr . s peek ha . http mock er . scenario . Scenario Provider Ċ import Ġokhttp 3 . MediaType Ċ import Ġokhttp 3 . Protocol Ċ import Ġokhttp 3 . Request Ċ import Ġokhttp 3 . Response Ċ import Ġokhttp 3 . ResponseBody Ċ Ċ internal Ġclass ĠResponse Builder ( ĊĠĠĠ Ġprivate Ġval Ġrequest : ĠRequest , ĊĠĠĠ Ġprivate Ġval Ġresponse : ĠResponse Descriptor Ġ= Ġresponse NotFound (), ĊĠĠĠ Ġprivate Ġval Ġprovider : ĠScenario Provider ? Ġ= Ġnull Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlogger Ġ= Ġget Logger () ĊĊĠĠĠ Ġfun Ġbuild Response (): ĠResponse Ġ= ĠResponse . Builder () ĊĠĠĠĠĠĠĠ Ġ. request ( request ) ĊĠĠĠĠĠĠĠ Ġ. protocol ( Protocol . HTTP _ 1 _ 1 ) ĊĠĠĠĠĠĠĠ Ġ. code ( response . code ) ĊĠĠĠĠĠĠĠ Ġ. message ( message For Http Code ( response . code )) ĊĠĠĠĠĠĠĠ Ġ. add Headers ( response ) ĊĠĠĠĠĠĠĠ Ġ. body ( load ResponseBody ( response )) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġprivate Ġfun ĠResponse . Builder . add Headers ( response : ĠResponse Descriptor ) Ġ= Ġapply Ġ{ ĊĠĠĠĠĠĠĠ Ġheader (" Content - type ", Ġresponse . media Type ) ĊĠĠĠĠĠĠĠ Ġresponse . headers . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader ( it . name , Ġit . value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload ResponseBody ( response : ĠResponse Descriptor ) Ġ= ĠResponse Body . create ( ĊĠĠĠĠĠĠĠ ĠMediaType . parse ( response . media Type ), Ġresponse . body File ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Loading Ġresponse Ġbody Ġfrom Ġfile : Ġ$ it ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprovider ?. load ResponseBody ( request , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġresponse . body . toByteArray () ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġfun Ġmessage For Http Code ( http Code : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠ ĠHTTP _ RESPONSE S _ CODE [ http Code ] Ġ?: Ġ" Unknown Ġerror Ġcode " Ċ } Ċ