package Ġbr . com . project . key Ċ Ċ import Ġbr . com . project . List Keys Client Request Ċ import Ġbr . com . project . Pix Key Load Manager Grpc Ċ import Ġbr . com . project . account . Account Ċ import Ġbr . com . project . account . Account Repository Ċ import Ġbr . com . project . account . Account Type Ċ import Ġbr . com . project . key . model . Key Ċ import Ġbr . com . project . key . model . Key Repository Ċ import Ġbr . com . project . key . model . KeyType Ċ import Ġio . grpc . Status Ċ import Ġio . grpc . Status RuntimeException Ċ import Ġio . mic ronaut . test . extensions . junit 5 . annotation . Mic ronaut Test Ċ import Ġorg . junit . jupiter . api . Assertions Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ import Ġjava . time . Instant Ċ Ċ @ Mic ronaut Test ( Ġtransaction al Ġ= Ġfalse Ġ) Ċ internal Ġclass ĠList IntegrationTest ( ĊĠĠĠ Ġval Ġaccount Repository : ĠAccount Repository , ĊĠĠĠ Ġval Ġkey Repository : ĠKey Repository , ĊĠĠĠ Ġprivate Ġval Ġload Manager Grpc : ĠP ix Key Load Manager Grpc . Pix Key Load Manager Blocking Stub Ċ ) Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` client Ġdont Ġhave Ġkeys ` (){ ĊĠĠĠĠĠĠĠ Ġkey Repository . delete All () ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġload Manager Grpc . list Keys By Client ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠList Keys Client Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ClientId (" 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 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals (" 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 ", Ġresponse . clientId Ġ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( Ġ 0 , Ġresponse . pix Key List . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` client Ġhave Ġkeys ` (){ ĊĠĠĠĠĠĠĠ Ġcreate Key () ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġload Manager Grpc . list Keys By Client ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠList Keys Client Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ClientId (" 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 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals (" 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 ", Ġresponse . clientId Ġ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( Ġ 1 , Ġresponse . pix Key List . size ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( Ġ" jo ao @ email . com ", Ġresponse . pix Key List [ 0 ]. key Value Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` client Ġid Ġrequest Ġinvalid ` (){ ĊĠĠĠĠĠĠĠ Ġval Ġthrown Ġ= ĠassertThrows < Status RuntimeException >{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Manager Grpc . list Keys By Client ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠList Keys Client Request . newBuilder (). set ClientId (" "). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( throw n . status . code . value (), ĠStatus . INVALID _ ARGUMENT . code . value ()) ĊĠĠĠĠĠĠĠ Ġif ( Ġthrown . message . equals (" INVALID _ ARGUMENT : ĠClient Id Ġcannot Ġbe Ġblank Ġor Ġnull .") Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( throw n . message , Ġ" INVALID _ ARGUMENT : ĠClient Id Ġcannot Ġbe Ġblank Ġor Ġnull .") ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( throw n . message , Ġ" INVALID _ ARGUMENT : Ġmust Ġmatch Ġ\" ^[ 0 - 9 a - f ]{ 8 }- [ 0 - 9 a - f ]{ 4 }- [ 1 - 5 ][ 0 - 9 a - f ]{ 3 }- [ 8 9 ab ][ 0 - 9 a - f ]{ 3 }- [ 0 - 9 a - f ]{ 1 2 }\ $ \" ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Key () Ġ: ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠKey . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with ClientId (" 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 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Client Name (" Jo ao ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with C pf (" 5 7 5 1 9 9 9 1 0 0 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with KeyType ( KeyType . EMAIL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with KeyValue (" jo ao @ email . com ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Creation Date ( ĠInstant . now () Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Account ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAccount . builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Bank Name (" IT A Ã ļ ĠUN IB AN CO ĠS . A .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Ag ency (" 0 0 0 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Account Number (" 1 2 3 4 5 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with I spb (" 6 0 7 0 1 1 9 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Account Type ( Account Type . CONT A _ COR REN TE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build (). save ( Ġaccount Repository Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. register ( Ġkey Repository Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. id . toString () ĊĠĠĠ Ġ} Ċ Ċ }