package Ġbr . com . z up academy . pix . delete Ċ Ċ import Ġbr . com . z up academy . Delete Key Request Ċ import Ġbr . com . z up academy . Delete Key Service Grpc Ċ import Ġbr . com . z up academy . pix . Key Repository Ċ import Ġbr . com . z up academy . pix . factory . create Valid Key Ċ import Ġbr . com . z up academy . pix . factory . it au Response Ċ import Ġbr . com . z up academy . shared . http clients . B ac en Client Ċ import Ġbr . com . z up academy . shared . http clients . It au Client Ċ import Ġbr . com . z up academy . shared . http clients . dto . B ac en Delete Key Request Ċ import Ġbr . com . z up academy . shared . http clients . dto . B ac en Delete Key Response Ċ import Ġbr . com . z up academy . shared . http clients . dto . Client Infos Response Ċ import Ġbr . com . z up academy . shared . http clients . dto . Inst itu icao 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 . HttpStatus Ċ 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 . BDD Mockito Ċ import Ġorg . mockito . Mockito Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . util .* Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Mic ronaut Test ( transaction al Ġ= Ġfalse ) Ċ internal Ġclass ĠDelete Key Test IT ( ĊĠĠĠĠĠĠĠ Ġval Ġkey Repository : ĠKey Repository , ĊĠĠĠĠĠĠĠ Ġval Ġgrpc Client : ĠDelete Key Service Grpc . Delete Key Service Blocking Stub , ĊĠĠĠĠĠĠĠ Ġval Ġit au Client : ĠI tau Client , ĊĠĠĠĠĠĠĠ Ġval Ġb ac en Client : ĠB ac en Client Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġvalid ClientId Ġ= Ġ" 9 6 be 5 bb 9 - 6 abd - 4 5 4 3 - 9 8 7 6 - a 0 6 0 5 c 2 6 6 0 6 a " ĊĠĠĠ Ġprivate Ġval Ġinvalid ClientId Ġ= ĠUUID . randomUUID (). toString () ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġkey Repository . delete All () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġremove Ġkey Ġwhen Ġvalid Ġdata `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpix Ġ= Ġcreate Valid Key () ĊĠĠĠĠĠĠĠ Ġkey Repository . save ( pix ) ĊĊĠĠĠĠĠĠĠ ĠMockito .` when `( it au Client . find Client Infos ( pix . account . owner Id )). thenReturn ( HttpResponse . ok ( it au Account Response ())) ĊĠĠĠĠĠĠĠ ĠMockito .` when `( bac en Client . delete Key ( pix . key , Ġdelete Key Request ())). thenReturn ( HttpResponse . ok ( delete Key Response ())) ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠDelete Key Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ClientId ( pix . account . owner Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pix Id ( pix . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġgrpc Client . delete Key ( request ) ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( key Repository . exists ByKey ( pix . key )) ĊĠĠĠĠĠĠĠ ĠassertFalse ( key Repository . exists ById ( pix . id )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġthrow Ġexception Ġwhen Ġpix Id Ġis Ġempty `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠDelete Key Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pix Id ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ClientId ( UUID . randomUUID (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġerror Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . delete Key ( request ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwith Ġ( error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . INVALID _ ARGUMENT . code , Ġstatus . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( status . description ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( status . description !!. contains (" must Ġnot Ġbe Ġblank ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( status . description !!. contains (" valid ĠUUID ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġthrow Ġexception Ġwhen ĠclientId Ġis Ġempty `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠDelete Key Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pix Id ( UUID . randomUUID (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ClientId ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġerror Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . delete Key ( request ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwith Ġ( error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . INVALID _ ARGUMENT . code , Ġstatus . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( status . description ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( status . description !!. contains (" must Ġnot Ġbe Ġblank ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( status . description !!. contains (" valid ĠUUID ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġthrow Ġexception Ġwhen Ġpix Id Ġdoes Ġnot Ġexists Ġin Ġdatabase `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠDelete Key Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pix Id ( UUID . randomUUID (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ClientId ( valid ClientId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġerror Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . delete Key ( request ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . NOT _ FOUND . code , Ġstatus . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( status . description ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( status . description !!. contains (" Pix Ġid ĠnÃ£o Ġexist ente .")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġthrow Ġexception Ġwhen ĠclientId Ġis Ġnot Ġin Ġthe Ġer p Ġsystem `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġcreate Valid Key () ĊĠĠĠĠĠĠĠ Ġkey Repository . save ( key ) ĊĊĠĠĠĠĠĠĠ ĠMockito .` when `( it au Client . find Client Infos ( invalid ClientId )). thenReturn ( HttpResponse . not Found ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠDelete Key Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pix Id ( key . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ClientId ( invalid ClientId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġerror Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . delete Key ( request ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . NOT _ FOUND . code , Ġstatus . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( status . description ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( status . description !!. toLowerCase (). contains (" cliente ĠnÃ£o Ġexist ente ". toLowerCase ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġnot Ġdelete Ġkey Ġwhen Ġpix Id Ġis Ġnull `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠDelete Key Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ClientId ( valid ClientId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġerror Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . delete Key ( request ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . INVALID _ ARGUMENT . code , Ġstatus . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( status . description ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( status . description !!. contains (" must Ġnot Ġbe Ġblank ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġnot Ġdelete Ġkey Ġwhen ĠclientId Ġis Ġnull `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠDelete Key Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pix Id ( UUID . randomUUID (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġerror Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . delete Key ( request ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . INVALID _ ARGUMENT . code , Ġstatus . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( status . description ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( status . description !!. contains (" must Ġnot Ġbe Ġblank ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġnot Ġdelete Ġkey Ġwhen Ġclient Ġid Ġis Ġnot Ġequivalent Ġto Ġowner Ġid Ġof Ġthe Ġkey `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠArrange ĊĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġcreate Valid Key () ĊĠĠĠĠĠĠĠ Ġkey Repository . save ( key ) ĊĊĠĠĠĠĠĠĠ Ġval ĠclientId Ġ= ĠUUID . randomUUID (). toString () ĊĠĠĠĠĠĠĠ ĠMockito .` when `( it au Client . find Client Infos ( clientId )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( HttpResponse . ok ( Client Infos Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠclientId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnome Ġ= Ġ" E li as ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc pf Ġ= Ġ" 1 1 1 2 2 2 3 3 3 1 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinst itu icao Ġ= ĠInst itu icao Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnome Ġ= Ġ" IT AU ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis pb Ġ= Ġ" 6 0 7 0 1 1 9 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ )))) ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠDelete Key Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pix Id ( key . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ClientId ( clientId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġ// ĠAct ĊĠĠĠĠĠĠĠ Ġval Ġerror Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . delete Key ( request ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠAssert ĊĠĠĠĠĠĠĠ Ġwith ( error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . FAILED _ PRE CONDITION . code , Ġstatus . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( status . description ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( status . description !!. toLowerCase (). contains (" n Ã£o ĠÃ© Ġdon o Ġdest a Ġch ave Ġpix ". toLowerCase ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` bac en Ġclient Ġshould Ġthrow Ġexception Ġwhen Ġis pb Ġis Ġinvalid `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpix Ġ= Ġcreate Valid Key () ĊĠĠĠĠĠĠĠ Ġkey Repository . save ( pix ) ĊĊĠĠĠĠĠĠĠ ĠMockito .` when `( it au Client . find Client Infos ( pix . account . owner Id )). thenReturn ( HttpResponse . ok ( Client Infos Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" 9 6 be 5 bb 9 - 6 abd - 4 5 4 3 - 9 8 7 6 - a 0 6 0 5 c 2 6 6 0 6 a ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnome Ġ= Ġ" E li as ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc pf Ġ= Ġ" 2 2 2 3 3 3 4 4 4 1 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinst itu icao Ġ= ĠInst itu icao Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnome Ġ= Ġ" IT AU ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis pb Ġ= Ġ" invalid - is pb " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ))) ĊĠĠĠĠĠĠĠ Ġval Ġhttp Ġ= ĠHttpResponse . status < Any >( HttpStatus . FOR BID DEN ) ĊĠĠĠĠĠĠĠ ĠB DD Mockito .` when `( bac en Client . delete Key ( pix . key , ĠB ac en Delete Key Request ( pix . key , Ġ" invalid - is pb ")) ). then Throw ( HttpClient Response Exception (" Mens agem ", Ġhttp )) ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠDelete Key Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pix Id ( pix . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ClientId ( pix . account . owner Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġerror Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . delete Key ( request ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . PERMISSION _ DEN IED . code , Ġstatus . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( status . description ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" Pro ib ido Ġrealizar Ġoper aÃ§Ã£o .", Ġstatus . description ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` bac en Ġclient Ġshould Ġreturn Ġstatus Ġnot Ġfound Ġwhen Ġkey Ġdoes Ġnot Ġexists `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpix Ġ= Ġcreate Valid Key () ĊĠĠĠĠĠĠĠ Ġkey Repository . save ( pix ) ĊĠĠĠĠĠĠĠ Ġval Ġinfo Account Ġ= Ġit au Account Response () ĊĠĠĠĠĠĠĠ ĠMockito .` when `( it au Client . find Client Infos ( pix . account . owner Id )). thenReturn ( HttpResponse . ok ( it au Account Response ())) ĊĠĠĠĠĠĠĠ ĠMockito .` when `( bac en Client . delete Key ( pix . key , ĠB ac en Delete Key Request ( pix . key , Ġinfo Account . inst itu icao . is pb ))). thenReturn ( HttpResponse . not Found ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠDelete Key Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pix Id ( pix . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ClientId ( pix . account . owner Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġerror Ġ= ĠassertThrows < Status RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrpc Client . delete Key ( request ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( Status . NOT _ FOUND . code , Ġstatus . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( status . description ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" Ch ave Ġpix ĠnÃ£o Ġencontr ada .", Ġstatus . description ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Mock Bean ( It au Client :: class ) ĊĠĠĠ Ġfun Ġit au Client (): ĠI tau Client Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMockito . mock ( It au Client :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Mock Bean ( B ac en Client :: class ) ĊĠĠĠ Ġfun Ġb ac en Client (): ĠB ac en Client Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMockito . mock ( B ac en Client :: class . java ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Factory Ċ class ĠClients Ġ{ ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġblocking Stub (@ Grpc Channel ( Grpc Server Channel . NAME ) Ġchannel : ĠManaged Channel ): ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDelete Key Service Grpc . Delete Key Service Blocking Stub Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDelete Key Service Grpc . new Blocking Stub ( channel ) ĊĠĠĠ Ġ} Ċ }