package Ġbr . com . z up academy . m uri lo . rem oc ao Ċ Ċ import Ġbr . com . z up academy . m uri lo . Registro Ch ave Pix Request Ċ import Ġbr . com . z up academy . m uri lo . Rem oc ao Ch ave Pix Request Ċ import Ġbr . com . z up academy . m uri lo . Rem oc ao Pix Key manager Grpc Service Grpc Ċ import Ġbr . com . z up academy . m uri lo . bcb . B cb Client Ċ import Ġbr . com . z up academy . m uri lo . bcb . Delete Pix Key Request Ċ import Ġbr . com . z up academy . m uri lo . bcb . Delete Pix Key Response Ċ import Ġbr . com . z up academy . m uri lo . ch ave .* Ċ 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 Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . Assertions . assertTrue Ċ 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 Ċ Ċ @ Mic ronaut Test ( transaction al Ġ= Ġfalse ) Ċ internal Ġclass ĠRem oc ao Ch ave Endpoint Test ( ĊĠĠĠ Ġval Ġrepository : ĠCh ave Pix Repository , ĊĠĠĠ Ġval Ġgrpc Client : ĠRem oc ao Pix Key manager Grpc Service Grpc . Rem oc ao Pix Key manager Grpc Service Blocking Stub Ċ ) Ġ{ ĊĠĠĠ Ġval Ġch ave Ġ= ĠCh ave Pix ( ĊĠĠĠĠĠĠĠ Ġcliente Id Ġ= ĠUUID . fromString (" 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 "), ĊĠĠĠĠĠĠĠ Ġtipo Ġ= ĠTipo De Ch ave . EMAIL , ĊĠĠĠĠĠĠĠ Ġch ave Ġ= Ġ" rp ont e @ gmail . com ", ĊĠĠĠĠĠĠĠ Ġtipo De Cont a Ġ= ĠTipo De Cont a . CONT A _ COR REN TE , ĊĠĠĠĠĠĠĠ Ġconta Ġ= ĠCont a Associ ada ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinst itu icao Ġ= Ġ" IT A Ã ļ ĠUN IB AN CO ĠS . A .", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnome Do T it ular Ġ= Ġ" R af ael ĠM ĠP ont e ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc pf Do T it ular Ġ= Ġ" 0 2 4 6 7 7 8 1 0 5 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġag encia Ġ= Ġ" 0 0 0 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnumero Ġ= Ġ" 2 9 1 9 0 0 ") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġb cb Client : ĠB cb Client ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġrepository . delete All () ĊĠĠĠĠĠĠĠ Ġrepository . save ( ch ave ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` de ve Ġremo ver Ġch ave Ġpix Ġexist ente `() Ġ{ ĊĠĠĠĠĠĠĠ ĠMockito .` when `( bcb Client . remove Ch ave ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= Ġ" rp ont e @ gmail . com ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ġ= Ġdelete Pix Key Request (" rp ont e @ gmail . com ") ĊĠĠĠĠĠĠĠ Ġ )). thenReturn ( HttpResponse . ok ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Pix Key Response (" rp ont e @ gmail . com "))) ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġgrpc Client . remo ver ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRem oc ao Ch ave Pix Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Cliente Id ( ch ave . cliente Id . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pix Id ( ch ave . id . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĊĠĠĠĠĠĠĠ Ġwith ( response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ch ave . id , UUID . fromString ( pix Id )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ch ave . cliente Id , ĠUUID . fromString ( cliente Id )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġrepository . count ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` na o Ġdeve Ġremo ver Ġch ave Ġpix Ġse ĠCLIENT E _ ID ĠnÃ£o Ġexiste ` (){ ĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . remo ver ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRem oc ao Ch ave Pix Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Cliente Id (" 0 0 0 0 0 0 0 0 - 7 9 0 1 - 4 4 fb - 8 4 e 2 - a 2 ce fb 1 5 7 8 9 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pix Id ( ch ave . id . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . NOT _ FOUND . code , Ġstatus . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" Ch ave ĠP ix ĠnÃ£o Ġencontr ada Ġou ĠnÃ£o Ġpert ence Ġao Ġcliente Ġinform ado ", Ġstatus . description ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( repository . exists ById ( ch ave . id )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` na o Ġdeve Ġremo ver Ġch ave Ġpix Ġse ĠPIX _ ID ĠnÃ£o Ġexiste `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . remo ver ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRem oc ao Ch ave Pix Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Cliente Id (" 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 Pix Id (" 0 0 0 0 0 0 0 0 - 0 0 0 0 - 0 0 0 0 - 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . NOT _ FOUND . code , Ġstatus . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" Ch ave ĠP ix ĠnÃ£o Ġencontr ada Ġou ĠnÃ£o Ġpert ence Ġao Ġcliente Ġinform ado ", Ġstatus . description ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( repository . exists ById ( ch ave . id )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` na o Ġdeve Ġremo ver Ġch ave Ġpix Ġse ĠnÃ£o Ġpert ence Ġao ĠCLIENT E _ ID Ġinform ado ` (){ ĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . remo ver ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRem oc ao Ch ave Pix Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Cliente Id (" 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 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pix Id ( ch ave . id . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . NOT _ FOUND . code , Ġstatus . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" Ch ave ĠP ix ĠnÃ£o Ġencontr ada Ġou ĠnÃ£o Ġpert ence Ġao Ġcliente Ġinform ado ", Ġstatus . description ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( repository . exists ById ( ch ave . id )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` na o Ġdeve Ġremo ver Ġch ave Ġpix Ġse Ġrem oc ao Ġno ĠB CB Ġfal har `() Ġ{ ĊĠĠĠĠĠĠĠ ĠMockito .` when `( bcb Client . remove Ch ave ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= Ġ" rp ont e @ gmail . com ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ġ= Ġdelete Pix Key Request (" rp ont e @ gmail . com ") ĊĠĠĠĠĠĠĠ Ġ )). thenReturn ( HttpResponse . bad Request ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . remo ver ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRem oc ao Ch ave Pix Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Cliente Id ( ch ave . cliente Id . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pix Id ( ch ave . id . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . FAILED _ PRE CONDITION . code , Ġstatus . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" Erro Ġao Ġremo ver ĠCh ave ĠP ix Ġno ĠB CB ", Ġstatus . description ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Mock Bean ( B cb Client :: class ) ĊĠĠĠ Ġfun Ġb cb Client (): ĠB cb Client ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMockito . mock ( B cb Client :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Factory ĊĠĠĠ Ġclass ĠClients Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Bean ĊĠĠĠĠĠĠĠ Ġfun Ġblocking Stub (@ Grpc Channel ( Grpc Server Channel . NAME ) Ġchannel : ĠManaged Channel ): ĠRem oc ao Pix Key manager Grpc Service Grpc . Rem oc ao Pix Key manager Grpc Service Blocking Stub Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRem oc ao Pix Key manager Grpc Service Grpc . new Blocking Stub ( channel ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdelete Pix Key Request ( key : ĠString ): ĠDelete Pix Key Request Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn ĠDelete Pix Key Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= Ġkey , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparticipant Ġ= Ġ" 6 0 7 0 1 1 9 0 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdelete Pix Key Response ( key : ĠString ): ĠDelete Pix Key Response Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn ĠDelete Pix Key Response ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= Ġkey , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparticipant Ġ= Ġ" 6 0 7 0 1 1 9 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdeleted At Ġ= ĠLocalDateTime . now () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }