package Ġok . profile . app . ktor . routing Ċ Ċ import Ġio . ktor . http .* Ċ import Ġio . ktor . server . testing .* Ċ import Ġkotlinx . serialization . json . Json Ċ import Ġok . profile . app . ktor . module Ċ import Ġok . profile . transport . main . mp . request . Mp Read Request Ċ import Ġok . profile . transport . main . mp . response . Mp Read Response Ċ import Ġok . profile . transport . main . mp . response . ResponseStatus Dto Ċ import Ġorg . junit . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . fail Ċ Ċ internal Ġclass ĠProfile Routing Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Test Application ({ Ġmodule ( testing Ġ= Ġtrue )}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Request ( HttpMethod . Post , Ġ"/ profile / read ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody Ġ= ĠM p Read Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠrequestId Ġ= Ġ" req - id ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile Id Ġ= Ġ" test - id ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdebug Ġ= ĠM p Read Request . Debug ( stub Case Ġ= ĠM p Read Request . Stub Case . SUCCESS ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody String Ġ= ĠJson . encode ToString ( Mp Read Request . serializer (), Ġbody ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ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 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Body Ġ= ĠJson . decode FromString ( Mp Read Response . serializer (), Ġjson String ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ResponseStatus Dto . SUCCESS , Ġresponse Body . status ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" test - id ", Ġresponse Body . profile Dto ?. id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }