package Ġit . fac ile . records . agent . domain . repository . network ĊĊ Ċ import ĠInstant Task Executor Rule Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġio . mock k . Mock K Annotations Ċ import Ġio . mock k . co Every Ċ import Ġio . mock k . every Ċ import Ġio . mock k . impl . annotations . Mock K Ċ import Ġio . mock k . mock k Ċ import Ġit . fac ile . records . agent . domain . entity . remote . Record List DTO Ċ import Ġit . fac ile . records . agent . library . android . entity . Result Ċ import Ġit . fac ile . records . agent . util . Main Coroutine Rule Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġokhttp 3 . ResponseBody . Companion . to ResponseBody Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . JUnit 4 Ċ import Ġretrofit 2 . Response Ċ Ċ @ RunWith ( JUnit 4 :: class ) Ċ class ĠRemote Store Test Ġ{ ĊĠĠĠ Ġ@ Experimental Cor outines Api ĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġval Ġcoroutine Scope Ġ= ĠMain Coroutine Rule () ĊĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġval Ġinstant Executor Rule Ġ= ĠInstant Task Executor Rule () ĊĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrest Api : ĠRest Api ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġremote Store : ĠRemote Store ĊĊĠĠĠ Ġprivate Ġval Ġmocked Success Response List Ġ= ĊĠĠĠĠĠĠĠ Ġmock k < Record List DTO > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrecords Ġ} Ġreturns ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmock k Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġid Ġ} Ġreturns Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrecord Name Ġ} Ġreturns Ġ" Records 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmock k Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġid Ġ} Ġreturns Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrecord Name Ġ} Ġreturns Ġ" Records 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmock k Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġid Ġ} Ġreturns Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrecord Name Ġ} Ġreturns Ġ" Records 2 3 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ ĠMock K Annotations . init ( this ) ĊĠĠĠĠĠĠĠ Ġremote Store Ġ= ĠRemote Store ( rest Api ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Experimental Std lib Api ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġon Ġnetwork Ġerror Ġit Ġreturns Ġcorrectly Ġfailed Ġfor Ġlist Ġof Ġrecords `() Ġ{ ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġrest Api . retrieve Records From Remote () Ġ} Ġreturns ĠResponse . error ( 4 0 4 , Ġ" response Body ". to ResponseBody ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġrun Blocking Ġ{ remote Store . getAll records () Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( response . suc ce ded ). isTrue () ĊĠĠĠĠĠĠĠ Ġval Ġsuccess Ġ= Ġresponse Ġas ĠResult . Success ĊĠĠĠĠĠĠĠ ĠassertThat ( success . data ). isEmpty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Experimental Std lib Api ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġon Ġnetwork Ġsuccess Ġit Ġreturns Ġcorrectly Ġsuccess Ġfor Ġlist Ġof Ġrecords `() Ġ{ ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġrest Api . retrieve Records From Remote () Ġ} Ġreturns ĠResponse . success ( mocked Success Response List ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġrun Blocking Ġ{ Ġremote Store . getAll records () Ġ} ĊĠĠĠĠĠĠĠ ĠassertThat ( response . suc ce ded ). isTrue () ĊĠĠĠ Ġ} Ċ }