package Ġapp Ċ Ċ import Ġio . ktor . application . Application Ċ import Ġio . ktor . http . ContentType Ċ import Ġio . ktor . http . HttpHeaders Ċ import Ġio . ktor . http . HttpMethod Ċ import Ġio . ktor . http . HttpStatusCode Ċ import Ġio . ktor . server . testing . handle Request Ċ import Ġio . ktor . server . testing . with Test Application Ċ import Ġorg . k oin . standalone . Stand Al one Context . start K oin Ċ import Ġorg . k oin . test . Auto Close K oin Test Ċ import Ġutils . DateTime TestUtils . list Ċ import Ġutils . DateTime TestUtils . str Ċ import Ġutils . Test Repository Module Ċ import Ġutils . gson Ċ import Ġkotlin . test . Before Test Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠApp Test Ġ: ĠAuto Close K oin Test () Ġ{ ĊĊĠĠĠ Ġ@ Before Test ĊĠĠĠ Ġfun Ġbefore () Ġ{ ĊĠĠĠĠĠĠĠ Ġstart K oin ( listOf ( Test Repository Module )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġroot S ends Hello () Ġ= Ġwith Test Application ( Application :: hello ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( handle Request ( HttpMethod . Get , Ġ"/ hello ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatusCode . OK , Ġresponse . status ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" Hello Ġworld ", Ġresponse . content ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġstub bed Messages () Ġ= Ġwith Test Application ({ ĊĠĠĠĠĠĠĠ Ġapp () ĊĠĠĠĠĠĠĠ Ġmessages () ĊĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( handle Request ( HttpMethod . Get , Ġ"/ messages ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Header ( HttpHeaders . ContentType , ĠContentType . Application . Json . toString ()) ĊĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatusCode . OK , Ġresponse . status ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( str , Ġresponse . content ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġpost Messages () Ġ= Ġwith Test Application ({ ĊĠĠĠĠĠĠĠ Ġapp () ĊĠĠĠĠĠĠĠ Ġmessages () ĊĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( handle Request ( HttpMethod . Post , Ġ"/ messages ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Header ( HttpHeaders . ContentType , ĠContentType . Application . Json . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= Ġgson . toJson ( list [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatusCode . Created , Ġresponse . status ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ