package Ġcom . tool slab . re plorer . view . main Ċ Ċ import Ġcom . n ha ar man . mockito _ kotlin . any Ċ import Ġcom . n ha ar man . mockito _ kotlin . mock Ċ import Ġcom . n ha ar man . mockito _ kotlin . wh enever Ċ import Ġcom . tool slab . re plorer . base _ network . model . Repo Ċ import Ġcom . tool slab . re plorer . base _ repository . model . Repository ViewModel Ċ import Ġorg . am sh ove . k lu ent . should Equal Ċ import Ġorg . junit . Assert . fail Ċ import Ġorg . junit . Test Ċ Ċ class ĠRepo Interactor Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġrepo 1 : ĠRepo Ġ= Ġmock () ĊĠĠĠ Ġprivate Ġval Ġrepo 2 : ĠRepo Ġ= Ġmock () ĊĠĠĠ Ġprivate Ġval Ġrepos Ġ= ĠlistOf ( repo 1 , Ġrepo 2 ) ĊĠĠĠ Ġprivate Ġval Ġrepository ViewModel 1 : ĠRepository ViewModel Ġ= Ġmock () ĊĠĠĠ Ġprivate Ġval Ġrepository ViewModel 2 : ĠRepository ViewModel Ġ= Ġmock () ĊĠĠĠ Ġprivate Ġval Ġview Models Ġ= ĠlistOf ( repository ViewModel 1 , Ġrepository ViewModel 2 ) ĊĊĠĠĠ Ġprivate Ġval Ġunder Test Ġ= ĠRepo Interactor ( mock (), Ġmock (), Ġmock ()) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġlist Spaces () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhenever ( under Test . repository Model Converter . convert ( repo 1 )). thenReturn ( repository ViewModel 1 ) ĊĠĠĠĠĠĠĠ Ġwhenever ( under Test . repository Model Converter . convert ( repo 2 )). thenReturn ( repository ViewModel 2 ) ĊĠĠĠĠĠĠĠ Ġwhenever ( under Test . repository Repository . list Repositories ( any (), Ġany ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . invoke Repos Success ( repos ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġunder Test . list Repositories ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġshould Equal Ġview Models ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfail () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġlist Repositories WithError () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠException (" an Ġexception ") ĊĠĠĠĠĠĠĠ Ġval Ġhandled Exception Ġ= ĠException (" a Ġhandled Ġexception ") ĊĠĠĠĠĠĠĠ Ġwhenever ( under Test . error Handler . handle ( exception )). thenReturn ( handled Exception ) ĊĠĠĠĠĠĠĠ Ġwhenever ( under Test . repository Repository . list Repositories ( any (), Ġany ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . invoke Error ( exception ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġunder Test . list Repositories ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfail () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġshould Equal Ġhandled Exception ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ Ċ } Ċ