package Ġkey manager grpc . br . com . gu il her me . endpoints Ċ Ċ import Ġio . grpc . Managed Channel Ċ import Ġio . grpc . Status Ċ import Ġio . grpc . Status RuntimeException Ċ import Ġio . mic ronaut . context . annotation . Factory Ċ import Ġio . mic ronaut . grpc . annotation . Grpc Channel Ċ import Ġio . mic ronaut . grpc . server . Grpc Server Channel Ċ import Ġio . mic ronaut . http . HttpResponse Ċ import Ġio . mic ronaut . http . client . exceptions . HttpClient Response Exception Ċ import Ġio . mic ronaut . test . annotation . Mock Bean Ċ import Ġio . mic ronaut . test . extensions . junit 5 . annotation . Mic ronaut Test Ċ import Ġkey manager grpc . br . com . gu il her me . Account Type Ċ import Ġkey manager grpc . br . com . gu il her me . Create Key Service Grpc Ċ import Ġkey manager grpc . br . com . gu il her me . CreateRequest Ċ import Ġkey manager grpc . br . com . gu il her me . KeyType Ċ import Ġkey manager grpc . br . com . gu il her me . client . Client B cb Ċ import Ġkey manager grpc . br . com . gu il her me . client . Client It au Ċ import Ġkey manager grpc . br . com . gu il her me . client . d tos .* Ċ import Ġkey manager grpc . br . com . gu il her me . modelo . Ch ave Pix Ċ import Ġkey manager grpc . br . com . gu il her me . modelo . Tipo Ch ave Ċ import Ġkey manager grpc . br . com . gu il her me . modelo . Tipo Cont a Ċ import Ġkey manager grpc . br . com . gu il her me . repository . Key Repository Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . Assertions . assertNotNull Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ import Ġorg . mockito . Mockito .` when ` Ċ import Ġorg . mockito . Mockito . mock Ċ import Ġorg . mockito . stub bing . O ngo ing Stub bing Ċ import Ġjava . time . LocalDateTime Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Mic ronaut Test ( transaction al Ġ= Ġfalse ) Ċ internal Ġclass ĠC ada stra Ch ave Endpoint Test () Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġgrpc Client : ĠCreate Key Service Grpc . Create Key Service Blocking Stub ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġkey Repository : ĠKey Repository ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġclient B cb : ĠClient B cb ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġclient It au : ĠClient It au ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġinternal Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġkey Repository . delete All () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠH appy Ġpath Ġcomp leto ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` de ve Ġcada strar Ġcorre t amente Ġno Ġsistema Ġe Ġret orn ar Ġo Ġid Ġintern o `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmock a Create Re quis icao B cb ( cri a Pix Request Key Para B cb (" 1 2 3 4 5 6 7 8 9 1 2 ", Ġ" CP F ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . thenReturn ( HttpResponse . ok ()) ĊĊĠĠĠĠĠĠĠ Ġmock a Re quis icao It au Com Su cesso (" 1 ", Ġ" CONT A _ COR REN TE ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . thenReturn ( HttpResponse . ok ( cri a Response Para It au ( tipo Ġ= Ġ" CONT A _ COR REN TE "))) ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġgrpc Client . regist ra ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCreate Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId (" 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Account Type ( Account Type . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set KeyType ( KeyType . CP F ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Ch ave (" 1 2 3 4 5 6 7 8 9 1 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġnova Ch ave Ġ= Ġkey Repository . findById ( response . pix id ). get () ĊĊĠĠĠĠĠĠĠ Ġwith ( response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( nova Ch ave . pix Id , Ġthis . pix id . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` de ve Ġfal har Ġse Ġcliente Ġja Ġt iver Ġa Ġch ave Ġcada str ada `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġkey Repository . save ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCh ave Pix ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtipo Cont a Ġ= ĠTipo Cont a . CONT A _ COR REN TE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtipo Ch ave Ġ= ĠTipo Ch ave . CP F , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠclientId Ġ= Ġ" 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġch ave Ġ= Ġ" 1 2 3 4 5 6 7 8 9 1 2 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġret orna Erro Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . regist ra ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCreate Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId (" 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Account Type ( Account Type . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set KeyType ( KeyType . CP F ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Ch ave (" 1 2 3 4 5 6 7 8 9 1 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( ret orna Erro ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . AL READY _ EXISTS . code , Ġthis . status . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" usu Ã¡rio ĠjÃ¡ Ġtem Ġch ave Ġdo Ġtipo Ġ${ KeyType . CP F } Ġcada str ada ", Ġthis . status . description ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` de ve Ġret orn ar Ġerro Ġcaso Ġa Ġch ave Ġeste ja Ġv az ia Ġpara Ġum Ġdos Ġvalores Ġob rig ator ios `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġret orna Erro Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . regist ra ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCreate Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId (" c 5 6 d fef 4 - 7 9 0 1 - 4 4 fb - 8 4 e 2 - a 2 ce fb 1 5 7 8 9 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Account Type ( Account Type . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set KeyType ( KeyType . CP F ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Ch ave ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( ret orna Erro ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . INVALID _ ARGUMENT . code , Ġthis . status . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" CP F ĠInv Ã¡l ido ", Ġthis . status . description ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` de ve Ġret orn ar Ġerro Ġse Ġch ave Ġc pf Ġtem Ġformato Ġinvalid o `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġret orna Erro Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprime iro Ġ= Ġgrpc Client . regist ra ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCreate Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId (" c 5 6 d fef 4 - 7 9 0 1 - 4 4 fb - 8 4 e 2 - a 2 ce fb 1 5 7 8 9 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Account Type ( Account Type . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set KeyType ( KeyType . CP F ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Ch ave (" 0 2 4 6 ae g ae g 7 7 8 1 0 5 4 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertNotNull ( ret orna Erro ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Status . INVALID _ ARGUMENT . code , Ġret orna Erro . status . code ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" CP F ĠInv Ã¡l ido ", Ġret orna Erro . status . description ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` de ve Ġret orn ar Ġerro Ġse Ġch ave Ġcel ular Ġtem Ġformato Ġinvalid o `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġret orna Erro Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprime iro Ġ= Ġgrpc Client . regist ra ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCreate Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId (" c 5 6 d fef 4 - 7 9 0 1 - 4 4 fb - 8 4 e 2 - a 2 ce fb 1 5 7 8 9 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Account Type ( Account Type . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set KeyType ( KeyType . PHONE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Ch ave (" es see hum format oin valid o ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertNotNull ( ret orna Erro ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Status . INVALID _ ARGUMENT . code , Ġret orna Erro . status . code ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" CEL ULAR ĠInv Ã¡l ido ", Ġret orna Erro . status . description ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` de ve Ġret orn ar Ġerro Ġse Ġch ave Ġemail Ġtem Ġformato Ġinvalid o `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġret orna Erro Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprime iro Ġ= Ġgrpc Client . regist ra ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCreate Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId (" c 5 6 d fef 4 - 7 9 0 1 - 4 4 fb - 8 4 e 2 - a 2 ce fb 1 5 7 8 9 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Account Type ( Account Type . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set KeyType ( KeyType . EMAIL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Ch ave (" es see hum format oin valid o ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertNotNull ( ret orna Erro ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Status . INVALID _ ARGUMENT . code , Ġret orna Erro . status . code ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" EMAIL ĠInv Ã¡l ido ", Ġret orna Erro . status . description ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` de ve Ġret orn ar Ġerro Ġse Ġa Ġch ave Ġale ator ia Ġter Ġvalor Ġassoci ado `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġret orna Erro Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprime iro Ġ= Ġgrpc Client . regist ra ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCreate Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId (" c 5 6 d fef 4 - 7 9 0 1 - 4 4 fb - 8 4 e 2 - a 2 ce fb 1 5 7 8 9 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Account Type ( Account Type . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set KeyType ( KeyType . RANDOM ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Ch ave (" valor associ ado ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( ret orna Erro ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ret orna Erro . status . code , ĠStatus . INVALID _ ARGUMENT . code ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Ch ave ĠAle atÃ³ ria ĠnÃ£o Ġpode Ġter Ġvalor Ġassoci ado ", Ġret orna Erro . status . description ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` de ve Ġret orn ar Ġerro Ġcaso Ġtipo Ġde Ġconta Ġn ao Ġten ha Ġvalor Ġassoci ado `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġret orna Erro Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprime iro Ġ= Ġgrpc Client . regist ra ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCreate Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId (" c 5 6 d fef 4 - 7 9 0 1 - 4 4 fb - 8 4 e 2 - a 2 ce fb 1 5 7 8 9 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set KeyType ( KeyType . RANDOM ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Ch ave ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( ret orna Erro ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ret orna Erro . status . code , ĠStatus . INVALID _ ARGUMENT . code ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Tipo Ġde Ġconta ĠÃ© Ġob rig atÃ³rio ", Ġret orna Erro . status . description ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` de ve Ġfal har Ġquando Ġo Ġid Ġdo Ġcliente Ġn ao Ġexist ir Ġno Ġit au `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmock a Re quis icao It au Com Su cesso (" 1 ", Ġ" CONT A _ COR REN TE ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . then Throw ( HttpClient Response Exception :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġmock a Create Re quis icao B cb ( cri a Pix Request Key Para B cb (" 1 2 3 4 5 6 7 8 9 1 2 ", Ġ" CP F ")) ĊĊĠĠĠĠĠĠĠ Ġval Ġret orna Erro Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprime iro Ġ= Ġgrpc Client . regist ra ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCreate Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId (" 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Account Type ( Account Type . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set KeyType ( KeyType . CP F ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Ch ave (" 1 2 3 4 5 6 7 8 9 1 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertNotNull ( ret orna Erro ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Status . PERMISSION _ DEN IED . code , Ġret orna Erro . status . code ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Client Ġin existent e Ġno Ġsistema Ġdo Ġit au ", Ġret orna Erro . status . description ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` de ve Ġfal har Ġse Ġtipo Ġde Ġch ave Ġn ao Ġfor Ġpass ado `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġret orna Erro Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprime iro Ġ= Ġgrpc Client . regist ra ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCreate Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId (" c 5 6 d fef 4 - 7 9 0 1 - 4 4 fb - 8 4 e 2 - a 2 ce fb 1 5 7 8 9 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Account Type ( Account Type . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Ch ave (" 0 2 4 6 7 7 8 1 0 5 4 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( ret orna Erro ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Status . INVALID _ ARGUMENT . code , Ġret orna Erro . status . code ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Tipo Ġch ave ĠÃ© Ġob rig atÃ³rio ", Ġret orna Erro . status . description ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` de ve Ġcada strar Ġcorre t amente Ġch ave Ġrandom Ġger ada Ġpelo Ġb cb `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġmock a Re quis icao It au Com Su cesso (" 1 ", Ġ" CONT A _ COR REN TE ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . thenReturn ( HttpResponse . ok ( cri a Response Para It au ( tipo Ġ= Ġ" CONT A _ COR REN TE "))) ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Pix Ġ= Ġc ria Pix Request Key Para B cb ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġch ave Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtipo Ġ= ĠTipo Ch ave . RANDOM . toString () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġb cb Pix Response Ġ= Ġc ria Pix Response Key Para B cb ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġch ave Ġ= Ġ" ch ave ger ada ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtipo Ġ= ĠTipo Ch ave . RANDOM . toString () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġmock a Create Re quis icao B cb ( request Pix )?. thenReturn ( HttpResponse . created ( bcb Pix Response )) ĊĊĠĠĠĠĠĠĠ Ġb cb Pix Response . key Ġ= Ġ" nov ach ave ger ada " ĊĠĠĠĠĠĠĠ Ġ` when `( client B cb . c ada stra Ch ave ( request Pix )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( HttpResponse . created ( bcb Pix Response )) ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġgrpc Client . regist ra ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCreate Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId (" 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Account Type ( Account Type . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set KeyType ( KeyType . RANDOM ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġch ave Nova Ġ= Ġkey Repository . findBy ClientId (" 1 ") ĊĠĠĠĠĠĠĠ ĠassertEquals (" nov ach ave ger ada ", Ġch ave Nova [ 0 ]. ch ave ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` de ve Ġret orn ar Ġerro Ġcaso Ġfal he Ġna Ġcri acao Ġda Ġch ave Ġno Ġb cb `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmock a Re quis icao It au Com Su cesso (" 1 ", Ġ" CONT A _ COR REN TE ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . thenReturn ( HttpResponse . ok ( cri a Response Para It au (" CONT A _ COR REN TE "))) ĊĊĠĠĠĠĠĠĠ Ġ` when `( client B cb . c ada stra Ch ave ( cri a Pix Request Key Para B cb (" 1 2 3 4 5 6 7 8 9 1 2 ", Ġ" CONT A _ COR REN TE "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . then Throw ( HttpClient Response Exception :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġerror Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . regist ra ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCreate Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId (" 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set KeyType ( KeyType . CP F ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Ch ave (" 1 2 3 4 5 6 7 8 9 1 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Account Type ( Account Type . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Status . INVALID _ ARGUMENT . code , Ġerror . status . code ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" F al ha Ġno Ġcad astro Ġda Ġch ave Ġno ĠB anco ĠCentral ", Ġerror . status . description ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġc ria Pix Response Key Para B cb ( ch ave : ĠString , Ġtipo : ĠString ): ĠCreate Pix Key Response Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCreate Pix Key Response ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Type Ġ= Ġtipo , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= Ġch ave , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbank Account Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" participant ", Ġ" 6 0 7 0 1 1 9 0 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" branch ", Ġ" 0 0 0 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" account Number ", Ġ" 1 2 3 4 5 6 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" account Type ", Ġ" C ACC ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġowner Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" type ", Ġ" NAT UR AL _ PERSON "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" name ", Ġ" T ol ki en "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" tax Id Number ", Ġ" 1 2 3 4 5 6 7 8 9 1 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcreatedAt Ġ= ĠLocalDateTime . now (). toString () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġc ria Response Para It au ( tipo : ĠString ): ĠI tau Response Dto Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠI tau Response Dto ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtipo Ġ= Ġtipo , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinst itu icao Ġ= ĠInst itu icao ( nome Ġ= Ġ" IT AU ", Ġis pb Ġ= Ġ" 1 1 1 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt it ular Ġ= ĠT it ular ( id Ġ= Ġ" 1 ", Ġnome Ġ= Ġ" T ol ki en ", Ġc pf Ġ= Ġ" 1 2 3 4 5 6 7 8 9 1 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġag encia Ġ= Ġ" 0 0 0 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnumero Ġ= Ġ" 1 2 1 2 1 2 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġc ria Pix Request Key Para B cb ( ch ave : ĠString , Ġtipo : ĠString ): ĠCreate Pix Key Request Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCreate Pix Key Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Type Ġ= Ġtipo , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= Ġch ave , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbank Account Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" participant ", Ġ" 6 0 7 0 1 1 9 0 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" branch ", Ġ" 0 0 0 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" account Number ", Ġ" 1 2 3 4 5 6 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" account Type ", Ġ" C ACC ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġowner Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" type ", Ġ" NAT UR AL _ PERSON "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" name ", Ġ" T ol ki en "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" tax Id Number ", Ġ" 1 2 3 4 5 6 7 8 9 1 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmock a Re quis icao It au Com Su cesso ( clientId : ĠString , Ġtipo : ĠString ): ĠO ngo ing Stub bing < HttpResponse < It au Response Dto ? >> ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ` when `( client It au . bus ca Cont a ET ipo ( clientId , Ġtipo )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmock a Create Re quis icao B cb ( request B cb : ĠCreate Pix Key Request ): ĠO ngo ing Stub bing < HttpResponse < Create Pix Key Response >> ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ` when `( client B cb . c ada stra Ch ave ( request B cb )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Mock Bean ( Client B cb :: class ) ĊĠĠĠ Ġfun Ġclient B cb (): ĠClient B cb Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmock ( Client B cb :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Mock Bean ( Client It au :: class ) ĊĠĠĠ Ġfun Ġclient It au (): ĠClient It au Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmock ( Client It au :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Factory ĊĠĠĠ Ġclass ĠRegister Client Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠUtil iz amos Ġno sso Ġgrpc server channel . name Ġpq Ġse Ġus arm os Ġo Ġlocalhost : 5 0 0 5 1 Ġv amos Ġter Ġo Ġproblema Ġde ĊĠĠĠĠĠĠĠ Ġ// ĠO Ġgrpc Ġsemp re Ġso be Ġem Ġuma Ġporta Ġale atÃ³ ria Ġem Ġamb ientes Ġde Ġtest e . ĊĠĠĠĠĠĠĠ Ġ@ Singleton ĊĠĠĠĠĠĠĠ Ġfun Ġblocking Stub (@ Grpc Channel ( Grpc Server Channel . NAME ) Ġchannel : ĠManaged Channel ): ĠCreate Key Service Grpc . Create Key Service Blocking Stub ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠCreate Key Service Grpc . new Blocking Stub ( channel ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ