package Ġio . github . well ing ton cost a . feed . infrastructure . api Ċ Ċ import Ġcom . github . kit tin un f . fuel . core . Fuel Error Ċ import Ġio . github . well ing ton cost a . feed . as Json Ċ import Ġio . github . well ing ton cost a . feed . extensions . dis patches Ċ import Ġio . github . well ing ton cost a . feed . extensions . responses Ċ import Ġio . github . well ing ton cost a . feed . infrastructure . network . api . fuel . User Fuel Api Ċ import Ġio . github . well ing ton cost a . feed . infrastructure . network . entity . User Response Ċ import Ġio . github . well ing ton cost a . feed . start HttpServer Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġkotlinx . serialization . json . Json Ċ import Ġkotlinx . serialization . json . Json Configuration Ċ import Ġokhttp 3 . mock webserver . Mock WebServer Ċ import Ġorg . junit . After Class Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . BeforeClass Ċ import Ġorg . junit . Test Ċ Ċ class ĠUser Api Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġjson Ġ= ĠJson ( Json Configuration . Stable . copy ( strict Mode Ġ= Ġfalse )) ĊĊĠĠĠ Ġprivate Ġval Ġapi Ġ= ĠUser Fuel Api ( json ) ĊĊĠĠĠ Ġ@ Test Ġfun Ġ` should Ġfetch Ġa Ġuser Ġby Ġid `() Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpayload Ġ= Ġ"/ payload s / user - response . json ". as Json () ĊĊĠĠĠĠĠĠĠ Ġserver . dispatcher Ġ= Ġdis patches Ġ{ Ġpath Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( path ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ users / 1 " Ġ-> Ġ 2 0 0 Ġresponses Ġpayload ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 4 0 4 Ġresponses Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġapi . getUser ById ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġjson . parse ( User Response . serializer (), Ġpayload ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( expected , Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠF uel Error :: class ) ĊĠĠĠ Ġfun Ġ` should Ġnot Ġfetch Ġa Ġuser Ġby Ġid `() Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġserver . dispatcher Ġ= Ġdis patches Ġ{ Ġpath Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( path ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ users / 1 " Ġ-> Ġ 4 0 4 Ġresponses Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 4 0 4 Ġresponses Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġapi . getUser ById ( 1 ) ĊĠĠĠ Ġ}. let Ġ{ ĠUnit Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġserver : ĠMock WebServer ĊĊĠĠĠĠĠĠĠ Ġ@ BeforeClass Ġ@ Jvm Static Ġfun Ġbefore All () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġserver Ġ= Ġstart HttpServer () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ After Class Ġ@ Jvm Static Ġfun Ġafter All () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġserver . shutdown () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ