/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠOn a ĠSystems , ĠInc Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġorg . smart register . fhir core . anc . data . report Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . paging . Paging Config Ċ import Ġandroidx . paging . Paging Source Ċ import Ġandroidx . paging . Paging State Ċ import Ġandroidx . test . core . app . Application Provider Ċ import Ġcom . google . android . fhir . Fhir Engine Ċ import Ġio . mock k . co Every Ċ import Ġio . mock k . mock k Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . test . run Blocking Test Ċ import Ġorg . hl 7 . fhir . r 4 . model . Encounter Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . smart register . fhir core . anc . data . report . model . Report Item Ċ import Ġorg . smart register . fhir core . anc . ro bo lectric . Ro bo lectric Test Ċ import Ġorg . smart register . fhir core . engine . util . extension . decode Json Ċ Ċ @ Experimental Cor outines Api Ċ class ĠReport Repository Test Ġ: ĠRo bo lectric Test () Ġ{ ĊĊĠ Ġprivate Ġlateinit Ġvar Ġrepository : ĠReport Repository ĊĊĠ Ġprivate Ġlateinit Ġvar Ġfhir Engine : ĠF hir Engine ĊĊĠ Ġprivate Ġval Ġcontext Ġ= ĠApplication Provider . getApplicationContext < Context >() ĊĊĠ Ġprivate Ġval ĠSAMPLE _ REPORT _ MEAS URE S _ FILE Ġ= Ġ" sample _ data _ report _ meas ures . json " ĊĊĠ Ġ@ Before ĊĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠ Ġfhir Engine Ġ= Ġmock k () ĊĠĠĠ Ġrepository Ġ= ĠReport Repository ( fhir Engine , ĠApplication Provider . getApplicationContext ()) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun ĠtestGet Refresh Key Should Return Valid Anchor Position () Ġ{ ĊĠĠĠ Ġval Ġpaging State Ġ= ĠP aging State < Int , ĠReport Item >( listOf (), Ġ 0 , ĠP aging Config ( 1 ), Ġ 1 0 ) ĊĠĠĠ Ġval Ġanchor Position Ġ= Ġrepository . get Refresh Key ( paging State ) ĊĠĠĠ ĠAssert . assertEquals ( 0 , Ġanchor Position ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Load Returns Page When On Successful Load Of Item Key ed Data () Ġ= Ġrun Blocking Test Ġ{ ĊĠĠĠ Ġval Ġencounter 1 Ġ= Ġget Test Encounter 1 () ĊĠĠĠ Ġval Ġencounter 2 Ġ= Ġget Test Encounter 2 () ĊĊĠĠĠ Ġco Every Ġ{ ĊĠĠĠĠĠ Ġhint ( Encounter :: class ) ĊĠĠĠĠĠ Ġfhir Engine . search < Encounter >( any ()) ĊĠĠĠ Ġ} Ġreturns ĠlistOf ( en counter 1 , Ġencounter 2 ) ĊĊĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠ ĠP aging Source . Load Result . Page ( load Test Measures ( context ), Ġnull , Ġnull ), ĊĠĠĠĠĠ Ġrepository . load ( Paging Source . Load Params . Refresh ( 1 , Ġ 1 , Ġfalse )) ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġget Test Encounter 1 (): ĠEn counter Ġ{ ĊĠĠĠ Ġreturn ĠEn counter (). apply Ġ{ Ġid Ġ= Ġ" 1 " Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġget Test Encounter 2 (): ĠEn counter Ġ{ ĊĠĠĠ Ġreturn ĠEn counter (). apply Ġ{ Ġid Ġ= Ġ" 2 " Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġload Test Measures ( context : ĠContext ): ĠList < Report Item > Ġ{ ĊĠĠĠ Ġval Ġtest Json Ġ= ĊĠĠĠĠĠ Ġcontext . assets . open ( SAMPLE _ REPORT _ MEAS URE S _ FILE ). buffered Reader (). use Ġ{ Ġit . read Text () Ġ} ĊĠĠĠ Ġreturn Ġtest Json . decode Json () Ġas ĠList < Report Item > ĊĠ Ġ} Ċ } Ċ