package Ġcom . robert om ir anda . app . features . welcome . data Ċ Ċ import Ġcom . robert om ir anda . data . repository . local . Local Repository Ċ import Ġcom . robert om ir anda . data . repository . remote . Remote Repository Ċ import Ġcom . robert om ir anda . data . models . Comment Ċ import Ġcom . robert om ir anda . data . models . Post Ċ import Ġcom . robert om ir anda . data . models . Resource Ċ import Ġcom . robert om ir anda . data . models . User Ċ import Ġcom . robert om ir anda . data . room . models . Resource Room Ċ import Ġio . mock k . confirm Verified Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . verify Ċ import Ġio . reactivex . Flow able Ċ import Ġio . reactivex . Maybe Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ Ċ class ĠWelcome DataProvider Test Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġwelcome DataProvider : ĠWelcome DataProvider ĊĠĠĠ Ġprivate Ġval Ġlocal Repository Ġ= Ġmock k < Local Repository >() ĊĠĠĠ Ġprivate Ġval Ġremote Repository Ġ= Ġmock k < Remote Repository >() ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġwelcome DataProvider Ġ= ĠWelcome DataProvider ( remote Repository , Ġlocal Repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠgetAll Data Ok () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġposts List : ĠList < Post > Ġ= ĠlistOf ( POST ) ĊĠĠĠĠĠĠĠ Ġval Ġcomments List : ĠList < Comment > Ġ= ĠlistOf ( COMMENT ) ĊĠĠĠĠĠĠĠ Ġval Ġuser List : ĠList < User > Ġ= ĠlistOf ( USER ) ĊĠĠĠĠĠĠĠ Ġval Ġresources : List < Resource > Ġ= ĠRES O UC ES ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġremote Repository . getAll Post () Ġ} Ġreturns ĠFlow able . just ( posts List ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġremote Repository . getAll Comments () Ġ} Ġreturns ĠFlow able . just ( comments List ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġremote Repository . ge All Users () Ġ} Ġreturns ĠFlow able . just ( user List ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġremote Repository . getAll Resources () Ġ} Ġreturns ĠFlow able . just ( resources ) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġlocal Repository . addAll Post ( any ()) Ġ} Ġreturns ĠMaybe . just ( emptyList ()) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġlocal Repository . addAll Comments ( any ()) Ġ} Ġreturns ĠMaybe . just ( emptyList ()) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġlocal Repository . addAll Users ( any ()) Ġ} Ġreturns ĠMaybe . just ( emptyList ()) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġlocal Repository . addAll Resources ( any ()) Ġ} Ġreturns ĠMaybe . just ( emptyList ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Observer Ġ= Ġwelcome DataProvider . get And Cache All Data (). test () ĊĊĠĠĠĠĠĠĠ Ġtest Observer ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Sub scribed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Complete () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert No Errors () ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġremote Repository . getAll Post () Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġremote Repository . getAll Comments () Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġremote Repository . ge All Users () Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġremote Repository . getAll Resources () Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġlocal Repository . addAll Post ( posts List ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġlocal Repository . addAll Comments ( comments List ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġlocal Repository . addAll Users ( user List ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġlocal Repository . addAll Resources ( resources ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġconfirm Verified ( remote Repository ) ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( local Repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠgetAll Data Error On GetAll Post () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpost Error Ġ= ĠError (" my Ġerror ") ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġremote Repository . getAll Post () Ġ} Ġreturns ĠFlow able . error ( post Error ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Observer Ġ= Ġwelcome DataProvider . get And Cache All Data (). test () ĊĊĠĠĠĠĠĠĠ Ġtest Observer ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Sub scribed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Error ( post Error ) ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġremote Repository . getAll Post () Ġ} ĊĊĠĠĠĠĠĠĠ Ġconfirm Verified ( remote Repository ) ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( local Repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠgetAll Data Error On Save All Post () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġposts List : ĠList < Post > Ġ= ĠlistOf ( POST ) ĊĠĠĠĠĠĠĠ Ġval Ġpost Error Ġ= ĠError (" my Ġerror ") ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġremote Repository . getAll Post () Ġ} Ġreturns ĠFlow able . just ( posts List ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġlocal Repository . addAll Post ( any ()) Ġ} Ġreturns ĠMaybe . error ( post Error ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Observer Ġ= Ġwelcome DataProvider . get And Cache All Data (). test () ĊĊĠĠĠĠĠĠĠ Ġtest Observer ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Sub scribed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Error ( post Error ) ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġremote Repository . getAll Post () Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġlocal Repository . addAll Post ( posts List ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġconfirm Verified ( remote Repository ) ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( local Repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠgetAll Data Error On GetAll Comments () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġposts List : ĠList < Post > Ġ= ĠlistOf ( POST ) ĊĠĠĠĠĠĠĠ Ġval Ġcomment Error Ġ= ĠError (" my Ġerror ") ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġremote Repository . getAll Post () Ġ} Ġreturns ĠFlow able . just ( posts List ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġremote Repository . getAll Comments () Ġ} Ġreturns ĠFlow able . error ( comment Error ) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġlocal Repository . addAll Post ( any ()) Ġ} Ġreturns ĠMaybe . just ( emptyList ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Observer Ġ= Ġwelcome DataProvider . get And Cache All Data (). test () ĊĊĠĠĠĠĠĠĠ Ġtest Observer ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Sub scribed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Error ( comment Error ) ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġremote Repository . getAll Post () Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġremote Repository . getAll Comments () Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġlocal Repository . addAll Post ( posts List ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġconfirm Verified ( remote Repository ) ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( local Repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠgetAll Data Error On Save All Comments () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġposts List : ĠList < Post > Ġ= ĠlistOf ( POST ) ĊĠĠĠĠĠĠĠ Ġval Ġcomments List : ĠList < Comment > Ġ= ĠlistOf ( COMMENT ) ĊĠĠĠĠĠĠĠ Ġval Ġcomment Error Ġ= ĠError (" my Ġerror ") ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġremote Repository . getAll Post () Ġ} Ġreturns ĠFlow able . just ( posts List ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġremote Repository . getAll Comments () Ġ} Ġreturns ĠFlow able . just ( comments List ) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġlocal Repository . addAll Post ( any ()) Ġ} Ġreturns ĠMaybe . just ( emptyList ()) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġlocal Repository . addAll Comments ( any ()) Ġ} Ġreturns ĠMaybe . error ( comment Error ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Observer Ġ= Ġwelcome DataProvider . get And Cache All Data (). test () ĊĊĠĠĠĠĠĠĠ Ġtest Observer ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Sub scribed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Error ( comment Error ) ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġremote Repository . getAll Post () Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġremote Repository . getAll Comments () Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġlocal Repository . addAll Post ( posts List ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġlocal Repository . addAll Comments ( comments List ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġconfirm Verified ( remote Repository ) ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( local Repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠgetAll Data Error On GetAll Users () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġposts List : ĠList < Post > Ġ= ĠlistOf ( POST ) ĊĠĠĠĠĠĠĠ Ġval Ġcomments List : ĠList < Comment > Ġ= ĠlistOf ( COMMENT ) ĊĠĠĠĠĠĠĠ Ġval Ġuser Error Ġ= ĠError (" my Ġerror ") ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġremote Repository . getAll Post () Ġ} Ġreturns ĠFlow able . just ( posts List ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġremote Repository . getAll Comments () Ġ} Ġreturns ĠFlow able . just ( comments List ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġremote Repository . ge All Users () Ġ} Ġreturns ĠFlow able . error ( user Error ) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġlocal Repository . addAll Post ( any ()) Ġ} Ġreturns ĠMaybe . just ( emptyList ()) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġlocal Repository . addAll Comments ( any ()) Ġ} Ġreturns ĠMaybe . just ( emptyList ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Observer Ġ= Ġwelcome DataProvider . get And Cache All Data (). test () ĊĊĠĠĠĠĠĠĠ Ġtest Observer ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Sub scribed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Error ( user Error ) ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġremote Repository . getAll Post () Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġremote Repository . getAll Comments () Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġremote Repository . ge All Users () Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġlocal Repository . addAll Post ( posts List ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġlocal Repository . addAll Comments ( comments List ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġconfirm Verified ( remote Repository ) ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( local Repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠgetAll Data Error On Save All Users () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġposts List : ĠList < Post > Ġ= ĠlistOf ( POST ) ĊĠĠĠĠĠĠĠ Ġval Ġcomments List : ĠList < Comment > Ġ= ĠlistOf ( COMMENT ) ĊĠĠĠĠĠĠĠ Ġval Ġuser List : ĠList < User > Ġ= ĠlistOf ( USER ) ĊĠĠĠĠĠĠĠ Ġval Ġuser Error Ġ= ĠError (" my Ġerror ") ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġremote Repository . getAll Post () Ġ} Ġreturns ĠFlow able . just ( posts List ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġremote Repository . getAll Comments () Ġ} Ġreturns ĠFlow able . just ( comments List ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġremote Repository . ge All Users () Ġ} Ġreturns ĠFlow able . just ( user List ) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġlocal Repository . addAll Post ( any ()) Ġ} Ġreturns ĠMaybe . just ( emptyList ()) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġlocal Repository . addAll Comments ( any ()) Ġ} Ġreturns ĠMaybe . just ( emptyList ()) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġlocal Repository . addAll Users ( any ()) Ġ} Ġreturns ĠMaybe . error ( user Error ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Observer Ġ= Ġwelcome DataProvider . get And Cache All Data (). test () ĊĊĠĠĠĠĠĠĠ Ġtest Observer ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Sub scribed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Error ( user Error ) ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġremote Repository . getAll Post () Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġremote Repository . getAll Comments () Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġremote Repository . ge All Users () Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġlocal Repository . addAll Post ( posts List ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġlocal Repository . addAll Comments ( comments List ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġlocal Repository . addAll Users ( user List ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġconfirm Verified ( remote Repository ) ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( local Repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠPOST : ĠPost Ġ= ĠPost ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" s unt Ġaut Ġfac ere Ġrep ell at Ġpro vid ent Ġoccaec ati Ġexcept uri Ġopt io Ġreprehenderit ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 , Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" quia Ġet Ġsus cipit \ ns us cipit Ġre cus and ae Ġconsequ unt ur Ġexp edit a Ġet Ġcum \ n re pre henderit Ġmolest ia e Ġut Ġut Ġqu as Ġtot am \ n no str um Ġrer um Ġest Ġaut em Ġsunt Ġrem Ġeven iet Ġarchitect o " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval ĠUSER : ĠUser Ġ= ĠUser ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 , Ġ" B ret ", Ġ" hil deg ard . org ", Ġ" 1 - 7 7 0 - 7 3 6 - 8 0 3 1 Ġx 5 6 4 4 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Rom ag u era - Cron a ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" S inc ere @ apr il . biz " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval ĠCOMMENT : ĠComment Ġ= ĠComment ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" quo Ġv ero Ġre ici endis Ġvelit Ġsim il ique Ġear um ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" est Ġn atus Ġenim Ġn ih il Ġest Ġdolore Ġomn is Ġvoluptate m Ġnum quam \ net Ġomn is Ġoccaec ati Ġqu od Ġullam Ġat \ n vol upt ate m Ġerror Ġexp edit a Ġpariatur \ nn ih il Ġsint Ġnostr um Ġvoluptate m Ġre ici endis Ġet ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" J ay ne _ K uh ic @ sy dn ey . com " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval ĠRES O UC ES : ĠList < Resource > Ġ= ĠlistOf < Resource >( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResource (". info ", Ġ" âĦ ¹ ï¸ı "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResource (". co . uk ", Ġ"\ uD 8 3 C \ uD DEC \ uD 8 3 C \ uD DE 7 ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }