package Ġcom . app ham . mock in izer Ċ Ċ import Ġokhttp 3 . Headers Ċ import Ġokhttp 3 . Request Ċ import Ġokhttp 3 . RequestBody Ċ import Ġok io . Buffer Ċ Ċ /** Ċ Ġ* ĠThis Ġclass Ġis Ġto Ġdefine Ġthe Ġrequests Ġthat Ġshould Ġget Ġfiltered Ġand Ġserved Ġby Ġthe Ġmock Ġserver . Ċ Ġ* Ġ@ param Ġpath Ġthe Ġpath Ġpart Ġof Ġthe Ġrequest Ġurl . ĠThe Ġdefault Ġis Ġnull Ċ Ġ* Ġ@ param Ġmethod Ġthe Ġmethod Ġof Ġthe Ġrequest . ĠThe Ġdefault Ġis ĠGET Ċ Ġ* Ġ@ param Ġbody Ġthe Ġrequest Ġbody . ĠCannot Ġbe Ġused Ġtogether Ġwith ĠGET Ġrequests . ĠThe Ġdefault Ġis Ġnull Ċ Ġ* Ġ@ param Ġheaders Ġthe Ġhttp Ġheaders Ġto Ġfilter . ĠThe Ġdefault Ġis Ġempty Ġheaders Ċ Ġ*/ Ċ data Ġclass ĠRequest Filter ( ĊĠĠĠ Ġval Ġpath : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġmethod : ĠMethod Ġ= ĠMethod . GET , ĊĠĠĠ Ġval Ġbody : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġheaders : ĠHeaders Ġ= ĠHeaders . of () Ċ ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġfrom ( request : ĠRequest ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRequest Filter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpath Ġ= Ġrequest . url (). encoded Path (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Ġ= Ġget Method OrDefault ( request . method ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= Ġrequest . body ()?. asString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheaders Ġ= Ġrequest . headers () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget Method OrDefault ( method : String ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMethod . valueOf ( method ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : IllegalArgumentException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMethod . GET ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ enum Ġclass ĠMethod Ġ{ ĊĠĠĠ ĠGET , ĠPOST , ĠPUT , ĠP ATCH , ĠDELETE ; Ċ } Ċ Ċ fun ĠRequest Body . asString (): ĠString Ġ{ ĊĠĠĠ Ġval Ġbuffer Ġ= ĠBuffer () ĊĠĠĠ ĠwriteTo ( buffer ) ĊĠĠĠ Ġreturn Ġbuffer . read Utf 8 () Ċ } Ċ