package Ġbr . com . z up . controller . service Ċ Ċ import Ġbr . com . z up .* Ċ import Ġbr . com . z up . controller . dto . request . Ch ave Pix Request Rest Ċ import Ġbr . com . z up . utils . Grpc Client Factory Ċ import Ġio . grpc . Status Ċ import Ġio . grpc . Status RuntimeException Ċ import Ġio . mic ronaut . context . annotation . Factory Ċ import Ġio . mic ronaut . context . annotation . Re places Ċ import Ġio . mic ronaut . http . HttpRequest Ċ import Ġio . mic ronaut . http . HttpResponse Ċ import Ġio . mic ronaut . http . HttpStatus Ċ import Ġio . mic ronaut . http . client . HttpClient Ċ import Ġio . mic ronaut . http . client . annotation . Client Ċ import Ġio . mic ronaut . http . client . exceptions . HttpClient Response Exception Ċ 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 . Assertions .* Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ import Ġorg . mockito . Mockito Ċ Ċ @ Mic ronaut Test Ċ internal Ġclass ĠC ada stra Grpc Service Test Ġ{ ĊĊĠĠĠ Ġ@ field : Inject ĊĠĠĠ Ġ@ field : Client ("/") ĊĠĠĠ Ġlateinit Ġvar Ġclient : ĠHttpClient ĊĊĠĠĠ Ġ@ field : Inject ĊĠĠĠ Ġlateinit Ġvar Ġgrpc Server Mock : ĠDes af io Pix Service Grpc . Des af io Pix Service Blocking Stub ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` de ve Ġret orn ar Ġsu cesso `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠCh ave Pix Request Rest ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 d 1 bb 1 9 4 - 3 c 5 2 - 4 e 6 7 - 8 c 3 5 - a 9 3 c 0 af 9 2 8 4 f ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTipo Ch ave . EMAIL , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ful ano @ z up . com . br ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTipo Cont a . CONT A _ COR REN TE ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġgrpc Response Ġ= ĠCh ave Pix Response . newBuilder (). set Pix Id ( 1 L ). build () ĊĊĠĠĠĠĠĠĠ ĠMockito .` when `( grpc Server Mock . c ada stra ( Mockito . any ())). thenReturn ( grpc Response ) ĊĊĠĠĠĠĠĠĠ Ġval ĠhttpRequest Ġ= ĠHttpRequest . POST ("/ api / ch aves ", Ġrequest ) ĊĠĠĠĠĠĠĠ Ġval ĠhttpResponse Ġ: ĠHttpResponse < Any > Ġ= Ġclient . to Blocking (). exchange ( httpRequest ) ĊĊĠĠĠĠĠĠĠ ĠMockito . verify ( grpc Server Mock , ĠMockito . at Least Once ()). c ada stra ( Mockito . any ()) ĊĊĠĠĠĠĠĠĠ Ġwith ( httpResponse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 2 0 1 , Ġcode ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( httpResponse . headers . contains (" Location ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( httpResponse . header (" Location ") !!. contains ( grpc Response . pix Id . toString ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` de ve Ġret orn ar Ġ 4 0 0 `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠCh ave Pix Request Rest ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 d 1 bb 1 9 4 - 3 c 5 2 - 4 e 6 7 - 8 c 3 5 - a 9 3 c 0 af 9 2 8 4 f ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTipo Ch ave . EMAIL , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ful ano @ z up . com . br ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTipo Cont a . CONT A _ COR REN TE ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠMockito .` when `( grpc Server Mock . c ada stra ( Mockito . any ())). then Throw ( Status RuntimeException ( Status . INVALID _ ARGUMENT )) ĊĊĠĠĠĠĠĠĠ Ġval ĠhttpRequest Ġ= ĠHttpRequest . POST ("/ api / ch aves ", Ġrequest ) ĊĠĠĠĠĠĠĠ Ġval Ġerror Ġ= ĠassertThrows < HttpClient Response Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠhttpResponse Ġ: ĠHttpResponse < Any > Ġ= Ġclient . to Blocking (). exchange ( httpRequest ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠMockito . verify ( grpc Server Mock , ĠMockito . at Least Once ()). c ada stra ( Mockito . any ()) ĊĠĠĠĠĠĠĠ ĠMockito . reset ( grpc Server Mock ) ĊĊĠĠĠĠĠĠĠ Ġwith ( error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatus . BAD _ REQUEST , Ġstatus ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` de ve Ġret orn ar Ġ 4 2 2 `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠCh ave Pix Request Rest ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 d 1 bb 1 9 4 - 3 c 5 2 - 4 e 6 7 - 8 c 3 5 - a 9 3 c 0 af 9 2 8 4 f ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTipo Ch ave . CP F , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 7 4 5 7 5 4 7 4 0 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTipo Cont a . CONT A _ COR REN TE ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠMockito .` when `( grpc Server Mock . c ada stra ( Mockito . any ())). then Throw ( Status RuntimeException ( Status . AL READY _ EXISTS )) ĊĊĠĠĠĠĠĠĠ Ġval ĠhttpRequest Ġ= ĠHttpRequest . POST ("/ api / ch aves ", Ġrequest ) ĊĠĠĠĠĠĠĠ Ġval Ġerror Ġ= ĠassertThrows < HttpClient Response Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠhttpResponse Ġ: ĠHttpResponse < Any > Ġ= Ġclient . to Blocking (). exchange ( httpRequest ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠMockito . verify ( grpc Server Mock , ĠMockito . at Least Once ()). c ada stra ( Mockito . any ()) ĊĠĠĠĠĠĠĠ ĠMockito . reset ( grpc Server Mock ) ĊĊĠĠĠĠĠĠĠ Ġwith ( error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatus . UN PROCESS ABLE _ ENTITY , Ġstatus ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` de ve Ġret orn ar Ġ 5 0 3 `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠCh ave Pix Request Rest ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 d 1 bb 1 9 4 - 3 c 5 2 - 4 e 6 7 - 8 c 3 5 - a 9 3 c 0 af 9 2 8 4 f ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTipo Ch ave . TELE F ONE _ CEL ULAR , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"+ 5 5 8 4 9 9 6 3 2 7 1 3 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTipo Cont a . CONT A _ PO UP AN CA ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠMockito .` when `( grpc Server Mock . c ada stra ( Mockito . any ())). then Throw ( Status RuntimeException ( Status . UN AVAILABLE )) ĊĊĠĠĠĠĠĠĠ Ġval ĠhttpRequest Ġ= ĠHttpRequest . POST ("/ api / ch aves ", Ġrequest ) ĊĠĠĠĠĠĠĠ Ġval Ġerror Ġ= ĠassertThrows < HttpClient Response Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠhttpResponse Ġ: ĠHttpResponse < Any > Ġ= Ġclient . to Blocking (). exchange ( httpRequest ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠMockito . verify ( grpc Server Mock , ĠMockito . at Least Once ()). c ada stra ( Mockito . any ()) ĊĠĠĠĠĠĠĠ ĠMockito . reset ( grpc Server Mock ) ĊĊĠĠĠĠĠĠĠ Ġwith ( error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatus . SERVICE _ UN AVAILABLE , Ġstatus ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` de ve Ġret orn ar Ġ 5 0 0 `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠCh ave Pix Request Rest ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 d 1 bb 1 9 4 - 3 c 5 2 - 4 e 6 7 - 8 c 3 5 - a 9 3 c 0 af 9 2 8 4 f ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTipo Ch ave . TELE F ONE _ CEL ULAR , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"+ 5 5 8 4 9 9 6 3 2 7 1 3 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTipo Cont a . CONT A _ PO UP AN CA ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠMockito .` when `( grpc Server Mock . c ada stra ( Mockito . any ())). then Throw ( Status RuntimeException ( Status . INTERNAL )) ĊĊĠĠĠĠĠĠĠ Ġval ĠhttpRequest Ġ= ĠHttpRequest . POST ("/ api / ch aves ", Ġrequest ) ĊĠĠĠĠĠĠĠ Ġval Ġerror Ġ= ĠassertThrows < HttpClient Response Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠhttpResponse Ġ: ĠHttpResponse < Any > Ġ= Ġclient . to Blocking (). exchange ( httpRequest ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠMockito . verify ( grpc Server Mock , ĠMockito . at Least Once ()). c ada stra ( Mockito . any ()) ĊĠĠĠĠĠĠĠ ĠMockito . reset ( grpc Server Mock ) ĊĊĠĠĠĠĠĠĠ Ġwith ( error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( HttpStatus . INTERNAL _ SERVER _ ERROR , Ġstatus ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Factory ĊĠĠĠ Ġ@ Re places ( factory Ġ= ĠGr pc Client Factory :: class ) ĊĠĠĠ Ġinternal Ġclass ĠClients Ġ{ Ġ// Ġo ĠM ic ronaut Ġsemp re Ġle v anta Ġos Ġtest es Ġem Ġuma Ġporta Ġdifer ente . ĠPara Ġterm os Ġacesso Ġa Ġesse Ġchannel , Ġus amos Ġa que le Ġenum Ġno Ġargument o ĊĊĠĠĠĠĠĠĠ Ġ@ Singleton ĊĠĠĠĠĠĠĠ Ġfun Ġblocking Stub Mock () Ġ= ĠMockito . mock ( Des af io Pix Service Grpc . Des af io Pix Service Blocking Stub :: class . java ) ĊĊĠĠĠ Ġ} Ċ Ċ }