package Ġby . g alt . k mock server . netty Ċ Ċ import Ġby . g alt . k mock server . rule . Response Rule Ċ import Ġio . netty . buffer . Byte Buf Ċ import Ġio . netty . handler . codec . http . HttpResponse Status Ċ import Ġio . reactivex . netty . Rx Net ty Ċ import Ġio . reactivex . netty . protocol . http . server . HttpServer Ċ Ċ class ĠNet ty Server Ġ{ ĊĊĠĠĠ Ġvar Ġserver : ĠHttp Server < Byte Buf , ĠByte Buf >? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġstart ( response Rules : ĠMutable List < Response Rule >) Ġ{ ĊĠĠĠĠĠĠĠ Ġstop () ĊĊĠĠĠĠĠĠĠ Ġserver Ġ= ĠRx Net ty . create HttpServer ( 8 0 8 0 , Ġ{ Ġrequest , Ġresponse Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrule Ġ= Ġresponse Rules . first OrNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ?. path . equals ( it . request . path , Ġtrue ) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . http Method . name (). equals ( it . request . type . name , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( rule Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrule . response . headers . forEach Ġ{ Ġresponse . headers . add Header ( it . name , Ġit . value ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . status Ġ= ĠHttpResponse Status ( rule . response . code , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . writeString ( rule . response . body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Rules . remove ( rule ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . status Ġ= ĠHttpResponse Status . NOT _ FOUND ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĊĠĠĠĠĠĠĠ Ġserver ?. start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstop () Ġ{ ĊĠĠĠĠĠĠĠ Ġserver ?. shutdown () ĊĠĠĠ Ġ} Ċ } ĊĊ