package Ġbr . com . z up . ch ave Pix . remove Ċ Ċ import Ġbr . com . z up . Key manager Remove Grpc Service Grpc Ċ import Ġbr . com . z up . Remove Ch ave Pix Request Ċ import Ġbr . com . z up . ch ave Pix .* Ċ import Ġbr . com . z up . ch ave Pix . c ada stra . Remove Pix Key Request Ċ import Ġbr . com . z up . ch ave Pix . c ada stra . Remove Pix Key Response Ċ import Ġbr . com . z up . clients . B cb Client Ċ import Ġio . grpc . Managed Channel Ċ import Ġio . grpc . Status Ċ import Ġio . grpc . Status RuntimeException Ċ import Ġio . mic ronaut . context . annotation . Bean Ċ 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 . test . annotation . Mock Bean Ċ import Ġio . mic ronaut . test . extensions . junit 5 . annotation . Mic ronaut Test Ċ import Ġjak arta . inject . Inject Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ 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 .* Ċ Ċ @ Mic ronaut Test ( transaction al Ġ= Ġfalse ) Ċ internal Ġclass ĠRemove Ch ave Pix Server Test ( ĊĠĠĠ Ġval Ġgrpc Client : ĠKey manager Remove Grpc Service Grpc . Key manager Remove Grpc Service Blocking Stub , ĊĠĠĠ Ġval Ġrepository : ĠCh ave Pix Repository Ċ ) Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġb cb Client : ĠB cb Client ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠUUID _ RANDOM Ġ= ĠUUID . randomUUID (). toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġrepository . delete All () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` de ve Ġremo ver Ġch ave Ġpix `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġc en Ã¡rio ĊĠĠĠĠĠĠĠ Ġval Ġch ave Pix Ġ= Ġch ave Pix () ĊĠĠĠĠĠĠĠ Ġrepository . save ( ch ave Pix ) ĊĊĠĠĠĠĠĠĠ ĠMockito .` when `( bcb Client . remove Pix Key ( ch ave Pix . ch ave , ĠRemove Pix Key Request ( ch ave Pix . ch ave , Ġch ave Pix . cont a Associ ada . is pb Inst itu icao ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( HttpResponse . ok ( Remove Pix Key Response ( ch ave Pix . ch ave , Ġch ave Pix . cont a Associ ada . is pb Inst itu icao , ĠLocalDateTime . now ()))) ĊĊĠĠĠĠĠĠĠ Ġ// Ġa Ã§Ã£o ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġgrpc Client . remove ( Remove Ch ave Pix Request ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId Ch ave ( ch ave Pix . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId Cliente ( ch ave Pix . id Cliente ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġvalid aÃ§Ã£o ĊĠĠĠĠĠĠĠ Ġwith ( response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ("", Ġid Pix ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` na o Ġdeve Ġremo ver Ġuma Ġch ave Ġpix Ġquando Ġch ave Ġn ao Ġencontr ada `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġc en Ã¡rio ĊĠĠĠĠĠĠĠ Ġval Ġch ave Pix Ġ= Ġch ave Pix () ĊĠĠĠĠĠĠĠ Ġrepository . save ( ch ave Pix ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġa Ã§Ã£o ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . remove ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRemove Ch ave Pix Request ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId Ch ave ( UUID _ RANDOM ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId Cliente ( ch ave Pix . id Cliente ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġvalid aÃ§Ã£o ĊĠĠĠĠĠĠĠ Ġwith ( response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . NOT _ FOUND . code , Ġstatus . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" Ch ave ĠP ix Ġ$ UUID _ RANDOM ĠnÃ£o Ġencontr ada .", Ġstatus . description ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` na o Ġdeve Ġremo ver Ġuma Ġch ave Ġpix Ġquando Ġcliente Ġn ao Ġautor izado `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġc en Ã¡rio ĊĠĠĠĠĠĠĠ Ġval Ġch ave Pix Ġ= Ġch ave Pix () ĊĠĠĠĠĠĠĠ Ġrepository . save ( ch ave Pix ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġa Ã§Ã£o ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . remove ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRemove Ch ave Pix Request ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId Ch ave ( ch ave Pix . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId Cliente ( UUID . randomUUID (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġvalid aÃ§Ã£o ĊĠĠĠĠĠĠĠ Ġwith ( response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . PERMISSION _ DEN IED . code , Ġstatus . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" Per miss Ã£o Ġneg ada . ĠPor Ġfavor , Ġutilize Ġseu ĠId ĠCliente .", Ġstatus . description ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` na o Ġdeve Ġremo ver Ġuma Ġch ave Ġpix Ġquando Ġdados Ġinvalid os `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġc en Ã¡rio ĊĊĠĠĠĠĠĠĠ Ġ// Ġa Ã§Ã£o ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . remove ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRemove Ch ave Pix Request ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġvalid aÃ§Ã£o ĊĠĠĠĠĠĠĠ Ġwith ( response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . INVALID _ ARGUMENT . code , Ġstatus . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" Dados Ġinv Ã¡l idos ", Ġstatus . description ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` na o Ġdeve Ġremo ver Ġch ave Ġpix Ġquando Ġder Ġerro Ġno ĠB CB `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġc en Ã¡rio ĊĠĠĠĠĠĠĠ Ġval Ġch ave Pix Ġ= Ġch ave Pix () ĊĠĠĠĠĠĠĠ Ġrepository . save ( ch ave Pix ) ĊĊĠĠĠĠĠĠĠ ĠMockito .` when `( bcb Client . remove Pix Key ( ch ave Pix . ch ave , ĠRemove Pix Key Request ( ch ave Pix . ch ave , Ġch ave Pix . cont a Associ ada . is pb Inst itu icao ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( HttpResponse . bad Request ()) ĊĊĠĠĠĠĠĠĠ Ġ// Ġa Ã§Ã£o ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . remove ( Remove Ch ave Pix Request ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId Ch ave ( ch ave Pix . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId Cliente ( ch ave Pix . id Cliente ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġvalid aÃ§Ã£o ĊĠĠĠĠĠĠĠ Ġwith ( response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . FAILED _ PRE CONDITION . code , Ġstatus . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" Erro Ġao Ġremo ver Ġch ave ĠP ix Ġno ĠB CB ", Ġstatus . description ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Factory ĊĠĠĠ Ġclass ĠClients Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Bean ĊĠĠĠĠĠĠĠ Ġfun Ġblocking Stub (@ Grpc Channel ( Grpc Server Channel . NAME ) Ġchannel : ĠManaged Channel ) Ġ: ĠKey manager Remove Grpc Service Grpc . Key manager Remove Grpc Service Blocking Stub ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠKey manager Remove Grpc Service Grpc . new Blocking Stub ( channel ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġch ave Pix () Ġ: ĠCh ave Pix Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCh ave Pix ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 6 1 1 4 4 4 7 8 0 8 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTipo Ch ave . CP F , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUUID _ RANDOM , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTipo Cont a . CONT A _ COR REN TE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCont a B anc aria ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Usuario ĠTest e ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 6 1 1 4 4 4 7 8 0 8 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 3 1 6 6 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 2 1 7 2 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" B anco ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 6 0 7 0 1 1 9 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Mock Bean ( B cb Client :: class ) ĊĠĠĠ Ġfun Ġb cb Client () Ġ: ĠB cb Client ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMockito . mock ( B cb Client :: class . java ) ĊĠĠĠ Ġ} Ċ Ċ }