package Ġcom . d sm . d ms . domain . service Ċ Ċ import Ġcom . d sm . d ms . domain . Base Test Ċ import Ġcom . d sm . d ms . domain . base . ErrorHandler Ċ import Ġcom . d sm . d ms . domain . base . Message Ċ import Ġcom . d sm . d ms . domain . base . Result Ċ import Ġcom . d sm . d ms . domain . entity . Go ing Out Info Ċ import Ġcom . d sm . d ms . domain . entity . enums . Go ing Out Type Ċ import Ġcom . d sm . d ms . domain . repository . Go ing Out Repository Ċ import Ġcom . d sm . d ms . domain . use case . Apply Go ing Out UseCase Ċ import Ġcom . d sm . d ms . domain . use case . Cancel Go ing Out UseCase Ċ import Ġcom . d sm . d ms . domain . use case . Get Go ing Out Info UseCase Ċ import Ġcom . d sm . d ms . domain . use case . Update Go ing Out Info UseCase Ċ import Ġio . reactivex . Comp letable Ċ import Ġio . reactivex . Single Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . mockito . Mock Ċ import Ġorg . mockito . Mockito .` when ` ĊĊ Ċ class ĠGo ing Out Service Test : ĠBaseTest () Ġ{ ĊĊĠĠĠ Ġ@ Mock ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġgoing Out Repository : ĠGo ing Out Repository ĊĠĠĠ Ġ@ Mock ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠerrorHandler : ĠError Handler ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġgoing Out Service : ĠGo ing Out Service ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġget Go ing Out Info UseCase : ĠGet Go ing Out Info UseCase ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġapply Go ing Out UseCase : ĠApply Go ing Out UseCase ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġupdate Go ing Out Info UseCase : ĠUpdate Go ing Out Info UseCase ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcancel Go ing Out UseCase : ĠCancel Go ing Out UseCase ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġinit () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġgoing Out Service Ġ= ĠGo ing Out ServiceImpl ( going Out Repository , ĠerrorHandler ) ĊĊĠĠĠĠĠĠĠ Ġget Go ing Out Info UseCase Ġ= ĠGet Go ing Out Info UseCase ( going Out Service , ĠComposite Disposable ()) ĊĠĠĠĠĠĠĠ Ġapply Go ing Out UseCase Ġ= ĠApply Go ing Out UseCase ( going Out Service , ĠComposite Disposable ()) ĊĠĠĠĠĠĠĠ Ġupdate Go ing Out Info UseCase Ġ= ĠUpdate Go ing Out Info UseCase ( going Out Service , ĠComposite Disposable ()) ĊĠĠĠĠĠĠĠ Ġcancel Go ing Out UseCase Ġ= ĠCancel Go ing Out UseCase ( going Out Service , ĠComposite Disposable ()) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` ìĻ¸ ì¶ľ ìĭł ì²Ń Ġìłķë³´ Ġê°Ģ ìł¸ ìĺ¤ ê¸° ĠìĦ± ê³µ `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġgoing Out InfoList Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGo ing Out Info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠGo ing Out Type . ME AL _ GO ING , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Ġ= Ġ" 2 0 2 0 - 0 8 - 3 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplace Ġ= Ġ" ìĦľ ìļ ¸ " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ` when `( going Out Repository . get Remote Go ing Out Info ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSingle . just ( going Out InfoList ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ` when `( going Out Repository . getLocal Go ing Out Info ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoing Out InfoList ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġget Go ing Out Info UseCase . create ( Unit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. test (). assert Value ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Success ( going Out InfoList ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` ìĻ¸ ì¶ľ ìĭł ì²Ń Ġìłķë³´ Ġê°Ģ ìł¸ ìĺ¤ ê¸° Ġìĭ¤ íĮ ¨ `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠException () ĊĠĠĠĠĠĠĠ Ġval Ġgoing Out InfoList Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGo ing Out Info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠGo ing Out Type . ME AL _ GO ING , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Ġ= Ġ" 2 0 2 0 - 0 8 - 3 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplace Ġ= Ġ" ìĦľ ìļ ¸ " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ` when `( error Handler . error Handle ( exception )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( Message . UN KNO W _ ERROR ) ĊĊĠĠĠĠĠĠĠ Ġ` when `( going Out Repository . get Remote Go ing Out Info ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSingle . error ( exception ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ` when `( going Out Repository . getLocal Go ing Out Info ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoing Out InfoList ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġget Go ing Out Info UseCase . create ( Unit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. test (). assert Value ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Error ( going Out InfoList , ĠMessage . UN KNO W _ ERROR ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` ìĻ¸ ì¶ľ ìĭł ì²Ń Ġíķĺ ê¸° ĠìĦ± ê³µ `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġgoing Out Info Ġ= ĠGo ing Out Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠGo ing Out Type . ME AL _ GO ING , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate Ġ= Ġ" 2 0 2 0 - 0 8 - 3 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplace Ġ= Ġ" ìĦľ ìļ ¸ " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ` when `( going Out Repository . post Remote Go ing Out Info ( going Out Info )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComp letable . complete () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġapply Go ing Out UseCase . create ( going Out Info ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. test (). assert Value ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Success ( Unit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` ìĻ¸ ì¶ľ ìĭł ì²Ń Ġíķĺ ê¸° Ġìĭ¤ íĮ ¨ `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠException () ĊĠĠĠĠĠĠĠ Ġval Ġgoing Out Info Ġ= ĠGo ing Out Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠGo ing Out Type . ME AL _ GO ING , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate Ġ= Ġ" 2 0 2 0 - 0 8 - 3 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplace Ġ= Ġ" ìĦľ ìļ ¸ " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ` when `( error Handler . error Handle ( exception )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( Message . UN KNO W _ ERROR ) ĊĊĠĠĠĠĠĠĠ Ġ` when `( going Out Repository . post Remote Go ing Out Info ( going Out Info )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComp letable . error ( exception ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġapply Go ing Out UseCase . create ( going Out Info ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. test (). assert Value ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Error ( message Ġ= ĠMessage . UN KNO W _ ERROR ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` ìĻ¸ ì¶ľ ìĭł ì²Ń Ġìłķë³´ ĠìĪĺ ìłķ ĠìĦ± ê³µ `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġgoing Out Info Ġ= ĠGo ing Out Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠGo ing Out Type . ME AL _ GO ING , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate Ġ= Ġ" 2 0 2 0 - 0 8 - 3 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplace Ġ= Ġ" ìĦľ ìļ ¸ " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ` when `( going Out Repository . patch Go ing Out Info ( going Out Info )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComp letable . complete () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġupdate Go ing Out Info UseCase . create ( going Out Info ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. test (). assert Value ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Success ( Unit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` ìĻ¸ ì¶ľ ìĭł ì²Ń Ġìłķë³´ ĠìĪĺ ìłķ Ġìĭ¤ íĮ ¨ `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠException () ĊĠĠĠĠĠĠĠ Ġval Ġgoing Out Info Ġ= ĠGo ing Out Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠGo ing Out Type . ME AL _ GO ING , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate Ġ= Ġ" 2 0 2 0 - 0 8 - 3 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplace Ġ= Ġ" ìĦľ ìļ ¸ " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ` when `( error Handler . error Handle ( exception )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( Message . UN KNO W _ ERROR ) ĊĊĠĠĠĠĠĠĠ Ġ` when `( going Out Repository . patch Go ing Out Info ( going Out Info )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComp letable . error ( exception ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġupdate Go ing Out Info UseCase . create ( going Out Info ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. test (). assert Value ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Error ( message Ġ= Ġ ĠMessage . UN KNO W _ ERROR ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` ìĻ¸ ì¶ľ ìĭł ì²Ń Ġì · ¨ ìĨĮ ĠìĦ± ê³µ `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġ 1 ĊĊĠĠĠĠĠĠĠ Ġ` when `( going Out Repository . delete Remote Go ing Out Info ( id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComp letable . complete () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcancel Go ing Out UseCase . create ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. test (). assert Value ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Success ( Unit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` ìĻ¸ ì¶ľ ìĭł ì²Ń Ġì · ¨ ìĨĮ Ġìĭ¤ íĮ ¨ `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠException () ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġ 1 ĊĊĠĠĠĠĠĠĠ Ġ` when `( error Handler . error Handle ( exception )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( Message . UN KNO W _ ERROR ) ĊĊĠĠĠĠĠĠĠ Ġ` when `( going Out Repository . delete Remote Go ing Out Info ( id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComp letable . error ( exception ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcancel Go ing Out UseCase . create ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. test (). assert Value ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Error ( message Ġ= ĠMessage . UN KNO W _ ERROR ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ