package Ġcom . ja imed ant as . controller Ċ Ċ import Ġcom . ja imed ant as . model . HelloWorld Ċ import Ġio . mic ronaut . context . annotation . Property Ċ import Ġio . mic ronaut . http . HttpRequest Ċ import Ġio . mic ronaut . http . HttpStatus Ċ import Ġio . mic ronaut . http . client . Rx HttpClient Ċ import Ġio . mic ronaut . http . client . annotation . Client Ċ import Ġio . mic ronaut . http . client . exceptions . HttpClient Response Exception Ċ import Ġio . mic ronaut . test . extensions . junit 5 . annotation . Mic ronaut Test Ċ import Ġorg . junit . jupiter . api . Assertions .* Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . util .* Ċ import Ġjavax . inject . Inject Ċ Ċ @ Mic ronaut Test ( property Sources Ġ= Ġ[" application . yml "]) Ċ class ĠRest Controller Test { ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġ@ field : Client ("/") ĊĠĠĠ Ġlateinit Ġvar Ġclient Ġ: ĠRx HttpClient ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Property ( name Ġ= Ġ" micro service . return Message ", Ġvalue Ġ= Ġ" My Ġmessage ") ĊĠĠĠ Ġfun Ġsh oud Return My Message () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid : ĠString Ġ= ĠUUID . randomUUID (). toString () ĊĠĠĠĠĠĠĠ Ġval Ġuri Ġ= Ġ"/ resource /$ id " ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest : ĠHttpRequest < HelloWorld > Ġ= ĠHttpRequest . GET ( uri ) ĊĠĠĠĠĠĠĠ Ġval Ġbody Ġ= Ġclient . to Blocking (). retrieve ( request ) ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( body ) ĊĠĠĠĠĠĠĠ ĠassertEquals ("{ \" message \":\" My Ġmessage \" }", Ġbody ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsh oud Return BadRequest () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid : ĠString Ġ= Ġ" invalid Id " ĊĠĠĠĠĠĠĠ Ġval Ġuri Ġ= Ġ"/ resource /$ id " ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest : ĠHttpRequest < HelloWorld > Ġ= ĠHttpRequest . GET ( uri ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclient . to Blocking (). retrieve ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail (" Should Ġbe Ġbad Ġrequest ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch ( e : ĠHttpClient Response Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatus . BAD _ REQUEST , Ġe . status ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ