package Ġdev . alex and rev ie ira . manager . endpoints . lista Ċ Ċ import Ġdev . alex and rev ie ira . manager . data . model . Ch ave Pix Ċ import Ġdev . alex and rev ie ira . manager . data . model . Cont a Ċ import Ġdev . alex and rev ie ira . manager . data . model . Inst itu icao Ċ import Ġdev . alex and rev ie ira . manager . data . model . T it ular Ċ import Ġdev . alex and rev ie ira . manager . data . model . enums . Tipo Ch ave Ċ import Ġdev . alex and rev ie ira . manager . data . model . enums . Tipo Cont a Ċ import Ġdev . alex and rev ie ira . manager . data . repositories . Ch ave Pix Repository Ċ import Ġdev . alex and rev ie ira . manager . data . repositories . Cont a Repository Ċ import Ġdev . alex and rev ie ira . manager . data . repositories . Inst itu icao Repository Ċ import Ġdev . alex and rev ie ira . manager . data . repositories . T it ular Repository Ċ import Ġdev . alex and rev ie ira . stubs . Key Manager Lista Service Grpc Ċ import Ġdev . alex and rev ie ira . stubs . Lista Ch ave Request Ċ 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 . test . extensions . junit 5 . annotation . Mic ronaut Test Ċ import Ġjak arta . inject . Inject Ċ import Ġjak arta . inject . Singleton Ċ import Ġorg . junit . jupiter . api . After Each Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . Assertions . assertNotNull Ċ import Ġorg . junit . jupiter . api . DisplayName Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . util .* Ċ Ċ @ Mic ronaut Test ( transaction al Ġ= Ġfalse ) Ċ internal Ġclass ĠList a Ch aves Endpoint Test Ġ{ ĊĠĠĠ Ġ@ field : Inject ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġch ave Pix Repository : ĠCh ave Pix Repository ĊĊĠĠĠ Ġ@ field : Inject ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġinst itu icao Repository : ĠInst itu icao Repository ĊĊĠĠĠ Ġ@ field : Inject ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġconta Repository : ĠCont a Repository ĊĊĠĠĠ Ġ@ field : Inject ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġt it ular Repository : ĠT it ular Repository ĊĊĠĠĠ Ġ@ field : Inject ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġkey Manager Client : ĠKey Manager Lista Service Grpc . Key Manager Lista Service Blocking Stub ĊĊĠĠĠ Ġprivate Ġval Ġinst itu icao : ĠInst itu icao Ġ= ĠInst itu icao (" It au ", Ġ" 1 2 3 4 5 6 7 8 ") ĊĊĠĠĠ Ġ@ After Each ĊĠĠĠ Ġfun ĠtearDown () Ġ{ ĊĠĠĠĠĠĠĠ Ġch ave Pix Repository . delete All () ĊĠĠĠĠĠĠĠ Ġconta Repository . delete All () ĊĠĠĠĠĠĠĠ Ġt it ular Repository . delete All () ĊĠĠĠĠĠĠĠ Ġinst itu icao Repository . delete All () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" De ve Ġlist ar Ġch aves Ġde Ġum Ġcliente ") ĊĠĠĠ Ġinternal Ġfun Ġdeve List ar Ch aves De Um Cliente () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġch ave Pix Repository . count ()) ĊĠĠĠĠĠĠĠ Ġval Ġt it ular Ġ= ĠT it ular ( UUID . randomUUID (), Ġ" Alex andre ", Ġ" 9 2 3 9 3 9 7 8 0 9 7 ") ĊĠĠĠĠĠĠĠ Ġval Ġpo up an ca Ġ= ĠCont a (" 0 0 0 1 ", Ġ" 1 2 3 4 5 ", ĠTipo Cont a . CONT A _ PO UP AN CA , Ġt it ular , Ġinst itu icao ) ĊĠĠĠĠĠĠĠ Ġval Ġale ator ia Po up an ca Ġ= Ġch ave A le ator ia ( tit ular Ġ= Ġt it ular , Ġinst itu icao Ġ= Ġinst itu icao , Ġconta Ġ= Ġpo up an ca ) ĊĠĠĠĠĠĠĠ Ġch ave Pix Repository . save ( ale ator ia Po up an ca ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcor rente Ġ= ĠCont a (" 0 0 0 1 ", Ġ" 1 2 3 4 5 ", ĠTipo Cont a . CONT A _ COR REN TE , Ġt it ular , Ġinst itu icao ) ĊĠĠĠĠĠĠĠ Ġval Ġemail Cor rente Ġ= Ġch ave Email ( tit ular Ġ= Ġt it ular , Ġinst itu icao Ġ= Ġinst itu icao , Ġconta Ġ= Ġcor rente ) ĊĊĠĠĠĠĠĠĠ Ġch ave Pix Repository . update ( email Cor rente ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġch ave Pix Repository . count ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġlista Ġ= Ġkey Manager Client . lista ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠList a Ch ave Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Cliente Id ( tit ular . id . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġlista . ch aves List . size ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( ale ator ia Po up an ca . ch ave , Ġlista . ch aves List [ 0 ]. ch ave ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ale ator ia Po up an ca . tipo . name , Ġlista . ch aves List [ 0 ]. tipo . name ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ale ator ia Po up an ca . cont a . tipo . name , Ġlista . ch aves List [ 0 ]. tipo Cont a . name ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( email Cor rente . ch ave , Ġlista . ch aves List [ 1 ]. ch ave ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( email Cor rente . tipo . name , Ġlista . ch aves List [ 1 ]. tipo . name ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( email Cor rente . cont a . tipo . name , Ġlista . ch aves List [ 1 ]. tipo Cont a . name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" De ve Ġret orn ar Ġlista Ġv az ia Ġse Ġn ao Ġh ou ver Ġch ave ") ĊĠĠĠ Ġinternal Ġfun Ġdeve Ret orn ar Lista V az ia Se N ao H ou ver Ch ave () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġch ave Pix Repository . count ()) ĊĠĠĠĠĠĠĠ Ġval Ġt it ular Ġ= ĠT it ular ( UUID . randomUUID (), Ġ" Alex andre ", Ġ" 9 2 3 9 3 9 7 8 0 9 7 ") ĊĠĠĠĠĠĠĠ Ġval Ġpo up an ca Ġ= ĠCont a (" 0 0 0 1 ", Ġ" 1 2 3 4 5 ", ĠTipo Cont a . CONT A _ PO UP AN CA , Ġt it ular , Ġinst itu icao ) ĊĠĠĠĠĠĠĠ Ġval Ġale ator ia Po up an ca Ġ= Ġch ave A le ator ia ( tit ular Ġ= Ġt it ular , Ġinst itu icao Ġ= Ġinst itu icao , Ġconta Ġ= Ġpo up an ca ) ĊĠĠĠĠĠĠĠ Ġch ave Pix Repository . save ( ale ator ia Po up an ca ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġch ave Pix Repository . count ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġlista Ġ= Ġkey Manager Client . lista ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠList a Ch ave Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Cliente Id ( UUID . randomUUID (). toString ()) Ġ// bus c ando Ġcliente Ġdifer ente Ġda Ġch ave Ġcri ada ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġlista . ch aves List . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" De ve Ġfal har Ġao Ġtent ar Ġum Ġid Ġinvalid o ") ĊĠĠĠ Ġinternal Ġfun Ġdeve F al har Ao T ent ar Um Id Invalid o () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// bus c ando Ġcliente Ġcom Ġid Ġinvalid o ĊĠĠĠĠĠĠĠ Ġval Ġrequest 1 Ġ= ĠList a Ch ave Request . newBuilder (). set Cliente Id (" abd 1 2 3 "). build () ĊĠĠĠĠĠĠĠ Ġval Ġerro 1 Ġ= ĠassertThrows < Status RuntimeException > Ġ{ Ġkey Manager Client . lista ( request 1 ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// bus c ando Ġcom Ġid Ġem Ġbr anco ĊĠĠĠĠĠĠĠ Ġval Ġrequest 2 Ġ= ĠList a Ch ave Request . newBuilder (). set Cliente Id (" Ġ"). build () ĊĠĠĠĠĠĠĠ Ġval Ġerro 2 Ġ= ĠassertThrows < Status RuntimeException > Ġ{ Ġkey Manager Client . lista ( request 2 ) Ġ} ĊĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( erro 1 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Status . INVALID _ ARGUMENT . code , Ġerro 1 . status . code ) ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( erro 2 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Status . INVALID _ ARGUMENT . code , Ġerro 2 . status . code ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġch ave A le ator ia ( ĊĠĠĠĠĠĠĠ Ġinst itu icao : ĠInst itu icao Ġ= ĠInst itu icao (" It au ", Ġ" 1 2 3 4 5 6 7 8 "), ĊĠĠĠĠĠĠĠ Ġt it ular : ĠT it ular Ġ= ĠT it ular ( UUID . randomUUID (), Ġ" Alex andre ", Ġ" 9 2 3 9 3 9 7 8 0 9 7 "), ĊĠĠĠĠĠĠĠ Ġconta : ĠCont a Ġ= ĠCont a (" 0 0 0 1 ", Ġ" 1 2 3 4 5 ", ĠTipo Cont a . CONT A _ PO UP AN CA , Ġt it ular , Ġinst itu icao ) ĊĠĠĠ Ġ): ĠCh ave Pix Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġch ave Ġ= ĠCh ave Pix ( cont a , Ġ"", ĠTipo Ch ave . ALE ATOR IA ) ĊĠĠĠĠĠĠĠ Ġch ave . inform aC ri acao No B cb ( UUID . randomUUID (). toString (), ĠLocalDateTime . now ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġch ave ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġch ave Email ( ĊĠĠĠĠĠĠĠ Ġinst itu icao : ĠInst itu icao Ġ= ĠInst itu icao (" It au ", Ġ" 1 2 3 4 5 6 7 8 "), ĊĠĠĠĠĠĠĠ Ġt it ular : ĠT it ular Ġ= ĠT it ular ( UUID . randomUUID (), Ġ" Alex andre ", Ġ" 9 2 3 9 3 9 7 8 0 9 7 "), ĊĠĠĠĠĠĠĠ Ġconta : ĠCont a Ġ= ĠCont a (" 0 0 0 1 ", Ġ" 1 2 3 4 5 ", ĠTipo Cont a . CONT A _ COR REN TE , Ġt it ular , Ġinst itu icao ) ĊĠĠĠ Ġ): ĠCh ave Pix Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġch ave Ġ= ĠCh ave Pix ( cont a , Ġ" me u @ email . com ", ĠTipo Ch ave . EMAIL ) ĊĠĠĠĠĠĠĠ Ġch ave . inform aC ri acao No B cb ( ch ave . ch ave , ĠLocalDateTime . now ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġch ave ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Factory ĊĠĠĠ Ġclass ĠClients Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Singleton ĊĠĠĠĠĠĠĠ Ġfun Ġblocking Stub (@ Grpc Channel ( Grpc Server Channel . NAME ) Ġchannel : ĠManaged Channel ): ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKey Manager Lista Service Grpc . Key Manager Lista Service Blocking Stub ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠKey Manager Lista Service Grpc . new Blocking Stub ( channel ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }