package Ġru . ok . catalog Ċ Ċ import Ġio . ktor . http .* Ċ import Ġio . ktor . server . testing .* Ċ import Ġru . ok . catalog . be . common . models . Category Type Ċ import Ġru . ok . catalog . transport . k mp . models . category .* Ċ import Ġru . ok . catalog . transport . k mp . models . common .* Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertTrue Ċ import Ġkotlin . test . fail Ċ Ċ internal Ġclass ĠCategory Api Http Read Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` ok `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Test Application ({ Ġmodule ( testing Ġ= Ġtrue ) Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Request ( HttpMethod . Post , Ġ"/ category / read ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody Ġ= ĠM p Request Category Read ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠrequestId Ġ= Ġ" req - 1 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdebug Ġ= ĠM p Request Category Read . Debug ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmode Ġ= ĠM p Work Mode Dto . ST UB , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstub Case Ġ= Ġ" SUCCESS " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Id Ġ= Ġ" cat - 5 7 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody String : ĠString Ġ= Ġjson Config . encode ToString ( Mp Message . serializer (), body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// println ( body String ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Body ( body String ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Header (" Content - Type "," application / json ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatusCode . OK , Ġresponse . status ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ContentType . Application . Json . with Charset ( Charsets . UTF _ 8 ), Ġresponse . contentType ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson String Ġ= Ġresponse . content Ġ?: Ġfail (" Null Ġresponse Ġjson ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( json String ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġ( json Config . decode FromString ( Mp Message . serializer (), Ġjson String ) Ġas ? ĠM p Response Category Read ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġfail (" Incorrect Ġresponse Ġformat ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ResponseStatus Dto . SUCCESS , Ġres . status ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" req - 1 3 ", Ġres . on RequestId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" cat - 5 7 ", Ġres . category ?. id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` err Ġvalidation ĠrequestId `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Test Application ({ Ġmodule ( testing Ġ= Ġtrue ) Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Request ( HttpMethod . Post , Ġ"/ category / read ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody Ġ= ĠM p Request Category Read ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠrequestId Ġ= Ġ" req - 1 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// categoryId Ġ= Ġ" cat - 5 7 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody String : ĠString Ġ= Ġjson Config . encode ToString ( Mp Message . serializer (), body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// println ( body String ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Body ( body String ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Header (" Content - Type "," application / json ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatusCode . OK , Ġresponse . status ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ContentType . Application . Json . with Charset ( Charsets . UTF _ 8 ), Ġresponse . contentType ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson String Ġ= Ġresponse . content Ġ?: Ġfail (" Null Ġresponse Ġjson ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( json String ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġ( json Config . decode FromString ( Mp Message . serializer (), Ġjson String ) Ġas ? ĠM p Response Category Read ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġfail (" Incorrect Ġresponse Ġformat ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ResponseStatus Dto . ERROR , Ġres . status ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" req - 1 3 ", Ġres . on RequestId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` err Ġvalidation Ġstub Case `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Test Application ({ Ġmodule ( testing Ġ= Ġtrue ) Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Request ( HttpMethod . Post , Ġ"/ category / read ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody Ġ= ĠM p Request Category Read ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠrequestId Ġ= Ġ" req - 1 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdebug Ġ= ĠM p Request Category Read . Debug ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmode Ġ= ĠM p Work Mode Dto . ST UB , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstub Case Ġ= Ġ" XXX " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody String : ĠString Ġ= Ġjson Config . encode ToString ( Mp Message . serializer (), body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// println ( body String ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Body ( body String ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Header (" Content - Type "," application / json ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatusCode . OK , Ġresponse . status ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ContentType . Application . Json . with Charset ( Charsets . UTF _ 8 ), Ġresponse . contentType ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson String Ġ= Ġresponse . content Ġ?: Ġfail (" Null Ġresponse Ġjson ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( json String ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġ( json Config . decode FromString ( Mp Message . serializer (), Ġjson String ) Ġas ? ĠM p Response Category Read ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġfail (" Incorrect Ġresponse Ġformat ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ResponseStatus Dto . ERROR , Ġres . status ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" req - 1 3 ", Ġres . on RequestId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` err Ġvalidation Ġcategory Id `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Test Application ({ Ġmodule ( testing Ġ= Ġtrue ) Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Request ( HttpMethod . Post , Ġ"/ category / read ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody Ġ= ĠM p Request Category Read ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠrequestId Ġ= Ġ" req - 1 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// categoryId Ġ= Ġ" cat - 5 7 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody String : ĠString Ġ= Ġjson Config . encode ToString ( Mp Message . serializer (), body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// println ( body String ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Body ( body String ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Header (" Content - Type "," application / json ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatusCode . OK , Ġresponse . status ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ContentType . Application . Json . with Charset ( Charsets . UTF _ 8 ), Ġresponse . contentType ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson String Ġ= Ġresponse . content Ġ?: Ġfail (" Null Ġresponse Ġjson ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( json String ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġ( json Config . decode FromString ( Mp Message . serializer (), Ġjson String ) Ġas ? ĠM p Response Category Read ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġfail (" Incorrect Ġresponse Ġformat ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ResponseStatus Dto . ERROR , Ġres . status ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" req - 1 3 ", Ġres . on RequestId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` err Ġstub Ġerror `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Test Application ({ Ġmodule ( testing Ġ= Ġtrue ) Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Request ( HttpMethod . Post , Ġ"/ category / read ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody Ġ= ĠM p Request Category Read ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠrequestId Ġ= Ġ" req - 1 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdebug Ġ= ĠM p Request Category Read . Debug ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmode Ġ= ĠM p Work Mode Dto . ST UB , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstub Case Ġ= Ġ" ERROR " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Id Ġ= Ġ" cat - 5 7 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody String : ĠString Ġ= Ġjson Config . encode ToString ( Mp Message . serializer (), body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( body String ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Body ( body String ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Header (" Content - Type "," application / json ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatusCode . OK , Ġresponse . status ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ContentType . Application . Json . with Charset ( Charsets . UTF _ 8 ), Ġresponse . contentType ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson String Ġ= Ġresponse . content Ġ?: Ġfail (" Null Ġresponse Ġjson ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( json String ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġ( json Config . decode FromString ( Mp Message . serializer (), Ġjson String ) Ġas ? ĠM p Response Category Read ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġfail (" Incorrect Ġresponse Ġformat ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ResponseStatus Dto . ERROR , Ġres . status ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" req - 1 3 ", Ġres . on RequestId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( res . errors ?. filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . message Ġ== Ġ" Ð£ ou Ġasked Ġfor Ġerror , Ġyou Ġgot Ġit " Ġ&& Ġit . level Ġ== ĠError Dto . Error Level Dto . ERROR ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ?. size Ġ== Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` err Ġstub Ġexception `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Test Application ({ Ġmodule ( testing Ġ= Ġtrue ) Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Request ( HttpMethod . Post , Ġ"/ category / read ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody Ġ= ĠM p Request Category Read ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠrequestId Ġ= Ġ" req - 1 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdebug Ġ= ĠM p Request Category Read . Debug ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmode Ġ= ĠM p Work Mode Dto . ST UB , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstub Case Ġ= Ġ" EXCEPTION " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Id Ġ= Ġ" cat - 5 7 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody String : ĠString Ġ= Ġjson Config . encode ToString ( Mp Message . serializer (), body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( body String ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Body ( body String ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Header (" Content - Type "," application / json ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatusCode . OK , Ġresponse . status ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ContentType . Application . Json . with Charset ( Charsets . UTF _ 8 ), Ġresponse . contentType ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson String Ġ= Ġresponse . content Ġ?: Ġfail (" Null Ġresponse Ġjson ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( json String ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġ( json Config . decode FromString ( Mp Message . serializer (), Ġjson String ) Ġas ? ĠM p Response Category Read ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġfail (" Incorrect Ġresponse Ġformat ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ResponseStatus Dto . FAIL , Ġres . status ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" req - 1 3 ", Ġres . on RequestId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( res . errors ?. filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . message Ġ== Ġ" Ð£ ou Ġasked Ġfor Ġexception , Ġyou Ġgot Ġit " Ġ&& Ġit . level Ġ== ĠError Dto . Error Level Dto . ERROR ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ?. size Ġ== Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }