package Ġcom . example . multi platform . shared . client Ċ Ċ import Ġcom . example . multi platform . shared . Message Ċ import Ġio . ktor . client . engine . mock . Mock Engine Ċ import Ġio . ktor . client . engine . mock . respond Ċ import Ġio . ktor . client . plugins . Client RequestException Ċ import Ġio . ktor . http . HttpHeaders Ċ import Ġio . ktor . http . HttpStatusCode Ċ import Ġio . ktor . http . headers Of Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . test . run Test Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assert Fails With Ċ Ċ @ Opt In ( Experimental Cor outines Api :: class ) Ċ class ĠApi Client Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠgetMessage () Ġ= Ġrun Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmock Engine Ġ= ĠMock Engine Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . url . encoded Path Ġ== Ġ"/ message ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ""" {" value ":" test "} """, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= ĠHttpStatusCode . OK , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheaders Ġ= Ġheaders Of ( HttpHeaders . ContentType , Ġ" application / json ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= ĠHttpStatusCode . NotFound ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval ĠapiClient Ġ= ĠApi Client ( mock Engine ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠapiClient . getMessage () ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Ġ= ĠMessage (" test "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual Ġ= Ġmessage ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġapi Error () Ġ= Ġrun Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmock Engine Ġ= ĠMock Engine Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrespond ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= ĠHttpStatusCode . NotFound ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval ĠapiClient Ġ= ĠApi Client ( mock Engine ) ĊĊĠĠĠĠĠĠĠ Ġassert Fails With < Client RequestException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠapiClient . getMessage () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ