package Ġcom . cu ided ac idade . domain . use case Ċ Ċ import Ġcom . cu ided ac idade . domain . entity . Request Ċ import Ġcom . cu ided ac idade . domain . exception . ValidationException Ċ import Ġcom . cu ided ac idade . domain . repository . Request Repository Ċ import Ġio . reactivex . rx java 3 . core . Comp letable Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . extension . Extend With Ċ import Ġorg . mockito . Mock Ċ import Ġorg . mockito . junit . jupiter . Mockito Extension Ċ import Ġjava . util .* Ċ import Ġorg . mockito . Mockito .` when ` Ġas Ġwhen T Ċ Ċ private Ġconst Ġval ĠEMPTY _ STRING Ġ= Ġ"" Ċ private Ġconst Ġval ĠUSER _ ID _ FA KE Ġ= Ġ" 0 " Ċ Ċ @ Extend With ( Mockito Extension :: class ) Ċ class ĠSave Request UseCase Test Ġ{ ĊĠĠĠ Ġ@ Mock ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrequest Repository : ĠRequest Repository ĊĊĠĠĠ Ġprivate Ġfun Ġconfigure Request Repository ( userId : ĠString , Ġrequest : ĠRequest ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen T ( request Repository . save Request ( userId , Ġrequest , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( Comp letable . create Ġ{ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould _ Save Successfully () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEMPTY _ STRING , Ġ" any Ġcategory ", Ġ" any Ġdescription ", Ġ" any Ġimage ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDate (), Ġnull , ĠRequest . Status . PENDING ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsave Request UseCase Ġ= ĠSave Request UseCase ( request Repository ) ĊĠĠĠĠĠĠĠ Ġconfigure Request Repository ( USER _ ID _ FA KE , Ġrequest ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Operation Ġ= Ġsave Request UseCase . invoke ( USER _ ID _ FA KE , Ġrequest , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġresult Operation . test (). assert No Errors () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould _ Throw Exception _ When _ User Is Blank () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEMPTY _ STRING , ĠEMPTY _ STRING , ĠEMPTY _ STRING , ĠEMPTY _ STRING , ĠDate (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĠRequest . Status . PENDING ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsave Request UseCase Ġ= ĠSave Request UseCase ( request Repository ) ĊĠĠĠĠĠĠĠ Ġconfigure Request Repository ( EMPTY _ STRING , Ġrequest ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Operation Ġ= Ġsave Request UseCase . invoke ( userId Ġ= ĠEMPTY _ STRING , Ġrequest , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġresult Operation . test (). assert Error Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġis ĠValidation Exception ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġit . message ?. equals (" In forme Ġo ĠusuÃ¡rio ") Ġ?: Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould _ Throw Exception _ When _ Category Is Blank () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEMPTY _ STRING , Ġcategory Name Ġ= ĠEMPTY _ STRING , ĠEMPTY _ STRING , ĠEMPTY _ STRING , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDate (), Ġnull , ĠRequest . Status . PENDING ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsave Request UseCase Ġ= ĠSave Request UseCase ( request Repository ) ĊĠĠĠĠĠĠĠ Ġconfigure Request Repository ( USER _ ID _ FA KE , Ġrequest ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Operation Ġ= Ġsave Request UseCase . invoke ( USER _ ID _ FA KE , Ġrequest , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġresult Operation . test (). assert Error Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġis ĠValidation Exception ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġit . message ?. equals (" In forme Ġa Ġcategor ia Ġpara Ġa Ġsolicit aÃ§Ã£o ") Ġ?: Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould _ Throw Exception _ When _ Description Is Blank () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEMPTY _ STRING , Ġ" any Ġcategory ", Ġdescription Ġ= ĠEMPTY _ STRING , ĠEMPTY _ STRING , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDate (), Ġnull , ĠRequest . Status . PENDING ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsave Request UseCase Ġ= ĠSave Request UseCase ( request Repository ) ĊĠĠĠĠĠĠĠ Ġconfigure Request Repository ( USER _ ID _ FA KE , Ġrequest ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Operation Ġ= Ġsave Request UseCase . invoke ( USER _ ID _ FA KE , Ġrequest , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġresult Operation . test (). assert Error Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġis ĠValidation Exception ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġit . message ?. equals (" In forme Ġa Ġdescri Ã§Ã£o Ġpara Ġa Ġsolicit aÃ§Ã£o ") Ġ?: Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould _ Throw Exception _ When _ Image Is Blank () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEMPTY _ STRING , Ġ" any Ġcategory ", Ġ" any Ġdescription ", ĠEMPTY _ STRING , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDate (), Ġnull , ĠRequest . Status . PENDING ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsave Request UseCase Ġ= ĠSave Request UseCase ( request Repository ) ĊĠĠĠĠĠĠĠ Ġconfigure Request Repository ( USER _ ID _ FA KE , Ġrequest ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Operation Ġ= Ġsave Request UseCase . invoke ( USER _ ID _ FA KE , Ġrequest , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġresult Operation . test (). assert Error Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġis ĠValidation Exception ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġit . message ?. equals (" In forme Ġa Ġimagem Ġda Ġcategor ia Ġpara Ġa Ġsolicit aÃ§Ã£o ") Ġ?: Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }