package Ġbr . com . z up . g ian . regist r arch ave Ċ Ċ import Ġbr . com . z up . g ian . Key Manager Regist ra Ch ave Service Grpc Ċ import Ġbr . com . z up . g ian . Regist ra Ch ave Pix Request Ċ import Ġbr . com . z up . g ian . Tipo Ch ave Ċ import Ġbr . com . z up . g ian . Tipo Cont a Ċ import Ġbr . com . z up . g ian . client . B CB Client Ċ import Ġbr . com . z up . g ian . client . It au Client Ċ import Ġbr . com . z up . g ian . regist r arch ave . bcb .* Ċ import Ġbr . com . z up . g ian . regist r arch ave . it au . Dados Da Cont a Response Ċ import Ġbr . com . z up . g ian . regist r arch ave . it au . Inst itu icao Response Ċ import Ġbr . com . z up . g ian . regist r arch ave . it au . T it ular Response Ċ 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 Ġorg . junit . jupiter . api . Assertions .* Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ import Ġorg . mockito . Mockito Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . util .* Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ġas ĠassertEquals Ċ Ċ @ Mic ronaut Test ( transaction al Ġ= Ġfalse ) Ċ internal Ġclass ĠRegist ra Ch ave Pix Server Test ( ĊĠĠĠ Ġval Ġrepository : ĠCh ave Pix Repository , ĊĠĠĠ Ġval Ġgrpc Client : ĠKey Manager Regist ra Ch ave Service Grpc . Key Manager Regist ra Ch ave Service Blocking Stub Ċ ) Ġ{ ĊĊĠĠĠ Ġ@ field : Inject ĊĠĠĠ Ġlateinit Ġvar Ġit au Client : ĠI tau Client ĊĊĠĠĠ Ġ@ field : Inject ĊĠĠĠ Ġlateinit Ġvar Ġb cb Client : ĠB CB Client ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġrepository . delete All () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` de ve Ġadicion ar Ġuma Ġnova Ġch ave Ġpix `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠclientId : ĠString Ġ= ĠUUID . randomUUID (). toString () ĊĊĠĠĠĠĠĠĠ ĠMockito .` when `( it au Client . bus car Dados Cont a ( clientId , ĠTipo Cont a . CONT A _ COR REN TE . toString ())). thenReturn ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse . ok ( dados Da Cont a Response ()) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcreate Pix Key Request Ġ= Ġcreate Pix Key Request () ĊĠĠĠĠĠĠĠ Ġval Ġcreate Pix Key Response Ġ= Ġcreate Pix Key Response () ĊĊĠĠĠĠĠĠĠ ĠMockito .` when `( bcb Client . regist rar Ch ave Pix ( create Pix Key Request )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( HttpResponse . ok ( create Pix Key Response )) ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġgrpc Client . regist rar ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRegist ra Ch ave Pix Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId ( clientId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tipo Ch ave ( Tipo Ch ave . EMAIL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Valor Ch ave (" g ian . s ou za @ test e . com . br ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tipo Cont a ( Tipo Cont a . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( response . id ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( repository . exists ById ( response . id )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( create Pix Key Request . key , Ġcreate Pix Key Response . key ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( create Pix Key Request . bank Account . account Number , Ġcreate Pix Key Response . bank Account . account Number ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( create Pix Key Request . bank Account . account Type , Ġcreate Pix Key Response . bank Account . account Type ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( create Pix Key Request . bank Account . branch , Ġcreate Pix Key Response . bank Account . branch ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( create Pix Key Request . bank Account . participant , Ġcreate Pix Key Response . bank Account . participant ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( create Pix Key Request . owner . name , Ġcreate Pix Key Response . owner . name ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( create Pix Key Request . owner . tax Id Number , Ġcreate Pix Key Response . owner . tax Id Number ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( create Pix Key Request . owner . type , Ġcreate Pix Key Response . owner . type ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` na o Ġdeve Ġadicion ar Ġuma Ġnova Ġch ave Ġpix Ġquando Ġja Ġcada str ada Ġno Ġbanco Ġcentral `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠclientId : ĠString Ġ= ĠUUID . randomUUID (). toString () ĊĊĠĠĠĠĠĠĠ ĠMockito .` when `( it au Client . bus car Dados Cont a ( clientId , ĠTipo Cont a . CONT A _ COR REN TE . toString ())). thenReturn ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse . ok ( dados Da Cont a Response ()) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠMockito .` when `( bcb Client . regist rar Ch ave Pix ( create Pix Key Request ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Throw ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttpClient Response Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" UN PROCESS ABLE _ ENTITY ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse . not Found (" UN PROCESS ABLE _ ENTITY ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġex ce cao Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . regist rar ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRegist ra Ch ave Pix Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId ( clientId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tipo Ch ave ( Tipo Ch ave . EMAIL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Valor Ch ave (" g ian . s ou za @ test e . com . br ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tipo Cont a ( Tipo Cont a . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( ex ce cao ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . AL READY _ EXISTS . code , Ġthis . status . code ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` na o Ġdeve Ġadicion ar Ġuma Ġnova Ġch ave Ġpix Ġquando Ġh ou ver Ġalg um Ġerro Ġde Ġcom unic acao `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠclientId : ĠString Ġ= ĠUUID . randomUUID (). toString () ĊĊĠĠĠĠĠĠĠ ĠMockito .` when `( it au Client . bus car Dados Cont a ( clientId , ĠTipo Cont a . CONT A _ COR REN TE . toString ())). thenReturn ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse . ok ( dados Da Cont a Response ()) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠMockito .` when `( bcb Client . regist rar Ch ave Pix ( create Pix Key Request ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Throw ( RuntimeException ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġex ce cao Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . regist rar ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRegist ra Ch ave Pix Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId ( clientId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tipo Ch ave ( Tipo Ch ave . EMAIL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Valor Ch ave (" g ian . s ou za @ test e . com . br ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tipo Cont a ( Tipo Cont a . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( ex ce cao ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . UN AVAILABLE . code , Ġthis . status . code ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` na o Ġdeve Ġinser ir Ġch ave Ġse Ġcliente Ġn ao Ġencontr ado Ġno Ġer p Ġit au `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠclientId : ĠString Ġ= ĠUUID . randomUUID (). toString () ĊĊĠĠĠĠĠĠĠ ĠMockito .` when `( it au Client . bus car Dados Cont a ( clientId , ĠTipo Cont a . CONT A _ COR REN TE . toString ())). thenReturn ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse . ok ( null ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġex ce cao Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . regist rar ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRegist ra Ch ave Pix Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId ( clientId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tipo Ch ave ( Tipo Ch ave . EMAIL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Valor Ch ave (" g ian . s ou za @ test e . com . br ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tipo Cont a ( Tipo Cont a . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( ex ce cao ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . NOT _ FOUND . code , Ġstatus . code ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( repository . findAll (). size Ġ== Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` na o Ġdeve Ġinser ir Ġch ave Ġja Ġexist ente Ġna Ġbase Ġde Ġdados `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠclientId : ĠString Ġ= ĠUUID . randomUUID (). toString () ĊĠĠĠĠĠĠĠ Ġval Ġch ave Pix Ġ= ĠCh ave Pix ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠclientId , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTipo Ch ave . EMAIL , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" g ian . s ou za @ test e . com . br ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTipo Cont a . CONT A _ COR REN TE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDateTime . now () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġrepository . save ( ch ave Pix ) ĊĊĠĠĠĠĠĠĠ Ġval Ġex ce cao Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . regist rar ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRegist ra Ch ave Pix Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId ( clientId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tipo Ch ave ( Tipo Ch ave . EMAIL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Valor Ch ave (" g ian . s ou za @ test e . com . br ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tipo Cont a ( Tipo Cont a . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( ex ce cao ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . AL READY _ EXISTS . code , Ġthis . status . code ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` na o Ġdeve Ġinser ir Ġch ave Ġcom Ġemail Ġinvalid o `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠclientId : ĠString Ġ= ĠUUID . randomUUID (). toString () ĊĊĠĠĠĠĠĠĠ Ġval Ġex ce cao Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . regist rar ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRegist ra Ch ave Pix Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId ( clientId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tipo Ch ave ( Tipo Ch ave . EMAIL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Valor Ch ave (" g ian . s ou za @ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tipo Cont a ( Tipo Cont a . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( ex ce cao ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . INVALID _ ARGUMENT . code , Ġthis . status . code ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` na o Ġdeve Ġinser ir Ġch ave Ġcom Ġtele fone Ġinvalid o `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠclientId : ĠString Ġ= ĠUUID . randomUUID (). toString () ĊĊĠĠĠĠĠĠĠ Ġval Ġex ce cao Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . regist rar ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRegist ra Ch ave Pix Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId ( clientId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tipo Ch ave ( Tipo Ch ave . PHONE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Valor Ch ave ("+ 5 5 4 6 9 9 9 0 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tipo Cont a ( Tipo Cont a . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( ex ce cao ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . INVALID _ ARGUMENT . code , Ġthis . status . code ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` na o Ġdeve Ġinser ir Ġch ave Ġcom Ġc pf Ġinvalid o `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠclientId : ĠString Ġ= ĠUUID . randomUUID (). toString () ĊĊĠĠĠĠĠĠĠ Ġval Ġex ce cao Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . regist rar ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRegist ra Ch ave Pix Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId ( clientId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tipo Ch ave ( Tipo Ch ave . CP F ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Valor Ch ave (" 0 8 8 4 3 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tipo Cont a ( Tipo Cont a . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( ex ce cao ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . INVALID _ ARGUMENT . code , Ġthis . status . code ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` na o Ġdeve Ġinser ir Ġch ave Ġcom Ġmais Ġde Ġ 7 7 Ġcaracteres `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠclientId : ĠString Ġ= ĠUUID . randomUUID (). toString () ĊĊĠĠĠĠĠĠĠ Ġval Ġex ce cao Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . regist rar ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRegist ra Ch ave Pix Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId ( clientId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tipo Ch ave ( Tipo Ch ave . EMAIL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Valor Ch ave (" test e ". repeat ( 2 0 ) Ġ+ Ġ"@ com . br ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tipo Cont a ( Tipo Cont a . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( ex ce cao ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . INVALID _ ARGUMENT . code , Ġthis . status . code ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` na o Ġdeve Ġinser ir Ġch ave Ġcom Ġid Ġem Ġformato Ġdifer ente Ġde ĠUUID `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġex ce cao Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . regist rar ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRegist ra Ch ave Pix Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId (" 1 2 3 4 5 6 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tipo Ch ave ( Tipo Ch ave . EMAIL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Valor Ch ave (" test e ". repeat ( 2 0 ) Ġ+ Ġ"@ com . br ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tipo Cont a ( Tipo Cont a . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( ex ce cao ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . INVALID _ ARGUMENT . code , Ġthis . status . code ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` na o Ġdeve Ġinser ir Ġch ave Ġcom Ġvalor Ġda Ġch ave Ġpre ench ido Ġe Ġtipo Ġch ave Ġrandom `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠclientId : ĠString Ġ= ĠUUID . randomUUID (). toString () ĊĊĠĠĠĠĠĠĠ Ġval Ġex ce cao Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . regist rar ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRegist ra Ch ave Pix Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId ( clientId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tipo Ch ave ( Tipo Ch ave . RANDOM ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Valor Ch ave (" test e ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tipo Cont a ( Tipo Cont a . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( ex ce cao ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . INVALID _ ARGUMENT . code , Ġthis . status . code ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdados Da Cont a Response (): ĠD ados Da Cont a Response Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinst itu icao Ġ= ĠInst itu icao Response (" IT A Ã ļ ĠUN IB AN CO ĠS . A .", Ġ" 6 0 7 0 1 1 9 0 ") ĊĠĠĠĠĠĠĠ Ġval Ġt it ular Ġ= ĠT it ular Response (" 5 2 6 0 2 6 3 c - a 3 c 1 - 4 7 2 7 - ae 3 2 - 3 bdb 2 5 3 8 8 4 1 b ", Ġ" Ped ro ĠAl bu quer que ", Ġ" 3 3 9 0 9 1 6 3 0 0 9 ") ĊĊĠĠĠĠĠĠĠ Ġreturn ĠD ados Da Cont a Response ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTipo Cont a . CONT A _ COR REN TE , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinst itu icao , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 0 0 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 2 9 1 9 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt it ular ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Pix Key Request (): ĠCreate Pix Key Request Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbank Account Ġ= ĠBank Account Request (" 6 0 7 0 1 1 9 0 ", Ġ" 0 0 0 1 ", Ġ" 2 9 1 9 0 0 ", ĠAccount Type . C ACC ) ĊĠĠĠĠĠĠĠ Ġval Ġowner Ġ= ĠOwner Request ( Type . NAT UR AL _ PERSON , Ġ" Ped ro ĠAl bu quer que ", Ġ" 3 3 9 0 9 1 6 3 0 0 9 ") ĊĠĠĠĠĠĠĠ Ġreturn ĠCreate Pix Key Request ( Tipo Ch ave . EMAIL , Ġ" g ian . s ou za @ test e . com . br ", Ġbank Account , Ġowner ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Pix Key Response (): ĠCreate Pix Key Response Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbank Account Ġ= ĠBank Account Response (" 6 0 7 0 1 1 9 0 ", Ġ" 0 0 0 1 ", Ġ" 2 9 1 9 0 0 ", ĠAccount Type . C ACC ) ĊĠĠĠĠĠĠĠ Ġval Ġowner Ġ= ĠOwner Response ( Type . NAT UR AL _ PERSON , Ġ" Ped ro ĠAl bu quer que ", Ġ" 3 3 9 0 9 1 6 3 0 0 9 ") ĊĠĠĠĠĠĠĠ Ġreturn ĠCreate Pix Key Response ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTipo Ch ave . EMAIL , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" g ian . s ou za @ test e . com . br ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbank Account , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġowner , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 2 0 2 1 - 0 8 - 2 7 T 1 6 : 5 7 : 1 4 . 8 2 2 9 8 3 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Factory ĊĠĠĠ Ġclass ĠClients Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Singleton ĊĠĠĠĠĠĠĠ Ġfun Ġblocking Stub (@ Grpc Channel ( Grpc Server Channel . NAME ) Ġchannel : ĠManaged Channel ): ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKey Manager Regist ra Ch ave Service Grpc . Key Manager Regist ra Ch ave Service Blocking Stub ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠKey Manager Regist ra Ch ave Service Grpc . new Blocking Stub ( channel ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Mock Bean ( It au Client :: class ) ĊĠĠĠ Ġfun Ġit au ER P Mock (): ĠI tau Client Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMockito . mock ( It au Client :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Mock Bean ( B CB Client :: class ) ĊĠĠĠ Ġfun Ġb cp Client Mock (): ĠB CB Client Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMockito . mock ( B CB Client :: class . java ) ĊĠĠĠ Ġ} Ċ }