package Ġcom . ctrl access . movie buff . data ĊĊ Ċ import Ġandroidx . arch . core . executor . testing . Instant Task Executor Rule Ċ import Ġandroidx . paging . Paging Source Ċ import Ġcom . ctrl access . movie buff . Fake TestData Ċ import Ġcom . ctrl access . movie buff . Main Coroutine Rule Ċ import Ġcom . ctrl access . movie buff . data . remote . Fake Movies Api Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ Ċ @ Experimental Cor outines Api Ċ class ĠMov ies Paging Source Test Ġ{ ĊĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġvar Ġinstant Task Executor Rule Ġ= ĠInstant Task Executor Rule () ĊĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġvar Ġmain Coroutine Rule Ġ= ĠMain Coroutine Rule () ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun ĠtearDown () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġpaging Ġdata `() Ġ= Ġrun Blocking Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġpaging Source Ġ= ĠMov ies Paging Source ( Fake Movies Api ()) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠP aging Source . Load Result . Page ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= ĠlistOf ( Fake TestData . movies , ĠFake TestData . movies , ĠFake TestData . movies , ĠFake TestData . movies ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprev Key Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Key Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= Ġpaging Source . load ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠP aging Source . Load Params . Refresh ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Size Ġ= Ġ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplaceholders Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertThat ( expected ). isEqualTo ( output ) ĊĠĠĠ Ġ} Ċ }