package Ġbr . com . ot 6 . pix čĊč Ċ import Ġbr . com . ot 6 .* č Ċ import Ġbr . com . ot 6 . pix . shared . grpc . Grpc Stub s Factory č Ċ import Ġcom . google . protobuf . Timestamp č Ċ import Ġio . mic ronaut . context . annotation . Factory č Ċ import Ġio . mic ronaut . context . annotation . Re places č Ċ import Ġio . mic ronaut . http . HttpRequest č Ċ import Ġio . mic ronaut . http . HttpStatus č Ċ import Ġio . mic ronaut . http . client . HttpClient č Ċ import Ġio . mic ronaut . http . client . annotation . Client č Ċ import Ġio . mic ronaut . test . extensions . junit 5 . annotation . Mic ronaut Test č Ċ import Ġjak arta . inject . Inject č Ċ import Ġjak arta . inject . Singleton č Ċ import Ġorg . junit . jupiter . api . Assertions .* č Ċ import Ġorg . junit . jupiter . api . Test č Ċ import Ġorg . mockito . BDD Mockito č Ċ import Ġorg . mockito . Mockito č Ċ import Ġjava . time . LocalDateTime č Ċ import Ġjava . time . Zone Id č Ċ import Ġjava . util .* čĊč Ċ @ Mic ronaut Test č Ċ internal Ġclass ĠList Pix Key Controller Test Ġ{ čĊčĊĠĠĠ Ġ@ field : Inject čĊĠĠĠ Ġlateinit Ġvar Ġgrpc Client : ĠP ix Key manager List Service Grpc . Pix Key manager List Service Blocking Stub čĊčĊĠĠĠ Ġ@ field : Inject čĊĠĠĠ Ġ@ field : Client ("/") čĊĠĠĠ Ġlateinit Ġvar ĠhttpClient : ĠHttpClient čĊčĊĠĠĠ Ġval ĠE MAIL _ KEY Ġ= Ġ" zo iod in ho @ dam am ae . com " čĊĠĠĠ Ġval ĠC PF _ KEY Ġ= Ġ" 7 1 8 6 1 8 3 4 0 9 8 " čĊĠĠĠ Ġval ĠE MAIL _ KEY _ TYPE Ġ= ĠKey Type . EMAIL čĊĠĠĠ Ġval ĠC PF _ KEY _ TYPE Ġ= ĠKey Type . CP F čĊĠĠĠ Ġval ĠCON TA _ COR REN TE Ġ= ĠAccount Type . CONT A _ COR REN TE čĊĠĠĠ Ġval ĠKEY _ CRE ATION _ DATE Ġ= ĠLocalDateTime . now () čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġ` should Ġlist Ġpix Ġkeys `() Ġ{ čĊĠĠĠĠĠĠĠ Ġval ĠclientId Ġ= ĠUUID . randomUUID (). toString () čĊčĊĠĠĠĠĠĠĠ ĠB DD Mockito . given ( grpc Client . list ( Mockito . any ())) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. willReturn ( grpc Pix Key ListResponse ( clientId )) čĊčĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠHttpRequest . GET < Any >(" api / v 1 / client es /$ clientId / pix ") čĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠhttpClient . to Blocking (). exchange ( request , ĠList :: class . java ) čĊčĊĠĠĠĠĠĠĠ Ġresponse . run Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatus . OK , Ġstatus ) čĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( body ()) čĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( body () !!. size , Ġ 2 ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Factory čĊĠĠĠ Ġ@ Re places ( factory Ġ= ĠGr pc Stub s Factory :: class ) čĊĠĠĠ Ġinternal Ġclass ĠMockito Stub Factory Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġ@ Singleton čĊĠĠĠĠĠĠĠ Ġfun Ġstub Mock () Ġ= čĊĠĠĠĠĠĠĠĠĠĠĠ ĠMockito . mock ( Pix Key manager List Service Grpc . Pix Key manager List Service Blocking Stub :: class . java ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġgrpc Pix Key ListResponse ( clientId : ĠString ): ĠList Pix Key Response Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġc pf Key Ġ= ĠList Pix Key Response . Pix Key čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. newBuilder () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pix Id ( UUID . randomUUID (). toString ()) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setType ( CP F _ KEY _ TYPE ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Key ( CP F _ KEY ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Account Type ( CONT A _ COR REN TE ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set CreatedAt ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKEY _ CRE ATION _ DATE . let Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠcreatedAt Ġ= Ġit . at Zone ( Zone Id . of (" UTC ")). to Instant () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTimestamp . newBuilder () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Seconds ( createdAt . epoch Second ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Nan os ( createdAt . nano ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () čĊčĊĠĠĠĠĠĠĠ Ġval Ġemail Key Ġ= ĠList Pix Key Response . Pix Key čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. newBuilder () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pix Id ( UUID . randomUUID (). toString ()) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setType ( EMAIL _ KEY _ TYPE ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Key ( EMAIL _ KEY ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Account Type ( CONT A _ COR REN TE ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set CreatedAt ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKEY _ CRE ATION _ DATE . let Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠcreatedAt Ġ= Ġit . at Zone ( Zone Id . of (" UTC ")). to Instant () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTimestamp . newBuilder () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Seconds ( createdAt . epoch Second ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Nan os ( createdAt . nano ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () čĊčĊĠĠĠĠĠĠĠ Ġreturn ĠList Pix Key Response čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. newBuilder () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ClientId ( clientId ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. addAll Keys ( listOf ( cpf Key , Ġemail Key )) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () čĊĠĠĠ Ġ} č Ċ }