package Ġcom . github . p av los pt . ref actored umb rella . ui . dashboard Ċ Ċ import Ġandroidx . arch . core . executor . testing . Instant Task Executor Rule Ċ import Ġcom . github . p av los pt . ref actored umb rella . rem ot ere po . github . Github Repo Model Ċ import Ġcom . github . p av los pt . ref actored umb rella . rem ot ere po . github . Github Repo Owner Ċ import Ġcom . github . p av los pt . ref actored umb rella . test . Mock Github Local Repo Ċ import Ġcom . github . p av los pt . ref actored umb rella . test . Mock Github Remote Repo Ċ import Ġcom . github . p av los pt . ref actored umb rella . test . UnitTest Ċ import Ġcom . github . p av los pt . ref actored umb rella . test . force Get Ċ import Ġcom . github . p av los pt . ref actored umb rella . test . observe ForTesting Ċ import Ġcom . github . p av los pt . ref actored umb rella . use case . github . Ob serve Github Repos UseCase Ċ import Ġcom . github . p av los pt . ref actored umb rella . use case . github . Refresh Github Repos UseCase Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . Flow Preview Ċ import Ġkotlinx . coroutines . test . run Blocking Test Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ Ċ @ Opt In ( Flow Preview :: class , ĠExperimental Cor outines Api :: class ) Ċ class ĠDashboard ViewModel Test Ġ: ĠUnit Test () Ġ{ ĊĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġval Ġinstant Task Executor Rule Ġ= ĠInstant Task Executor Rule () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ repo _ refresh () Ġ= Ġcor outines Test Rule . test Dispatcher . run Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġremote Repos Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGithub Repo Model ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" foo ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstars Ġ= Ġ 1 2 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġowner Ġ= ĠGithub Repo Owner ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġavatar Url Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGithub Repo Model ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" bar ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstars Ġ= Ġ 4 3 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġowner Ġ= ĠGithub Repo Owner ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġavatar Url Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmock Github Remote Repo Ġ= ĠMock Github Remote Repo ( f etched Repos Ġ= Ġremote Repos ) ĊĠĠĠĠĠĠĠ Ġval Ġmock Github Local Repo Ġ= ĠMock Github Local Repo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobserved Github Repos Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcom . github . p av los pt . ref actored umb rella . db . github . Github Repo Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinternal Id Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremote Id Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" foo ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstars Ġ= Ġ 1 2 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġowner Avatar Url Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcom . github . p av los pt . ref actored umb rella . db . github . Github Repo Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinternal Id Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremote Id Ġ= Ġ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" bar ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstars Ġ= Ġ 4 3 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġowner Avatar Url Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrefresh Github Repo UseCase Ġ= ĠRefresh Github Repos UseCase ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Coroutine Dispatch ers Ġ= Ġtest App Coroutine Dispatch ers , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgithub Remote Repo Ġ= Ġmock Github Remote Repo , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgithub Local Repo Ġ= Ġmock Github Local Repo ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġobserve Github Repos UseCase Ġ= ĠOb serve Github Repos UseCase ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Coroutine Dispatch ers Ġ= Ġtest App Coroutine Dispatch ers , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgithub Local Repo Ġ= Ġmock Github Local Repo ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġvm Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDashboard ViewModel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Github Repos UseCase Ġ= Ġrefresh Github Repo UseCase , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobserve Github Repos UseCase Ġ= Ġobserve Github Repos UseCase ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġvm . process Intent ( intent Dashboard Ġ= ĠDashboard View Intent . Refresh ) ĊĊĠĠĠĠĠĠĠ Ġvm . github Repos . observe ForTesting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( first Repo , Ġsecond Repo ) Ġ= Ġvm . github Repos . force Get ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġfirst Repo . repo Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġsecond Repo . repo Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ