/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠPaul ĠR y bits ky i , Ġpa ul . ry bits ky i . work @ gmail . com Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . paul ry bits ky i . game d ge . database . tables Ċ Ċ import Ġandroidx . arch . core . executor . testing . Instant Task Executor Rule Ċ import Ġapp . cash . tur bine . test Ċ import Ġcom . paul ry bits ky i . game d ge . database . articles . Database Article Ċ import Ġcom . paul ry bits ky i . game d ge . database . articles . tables . Articles Table Ċ import Ġcom . paul ry bits ky i . game d ge . database . commons . di . Database Module Ċ import Ġcom . paul ry bits ky i . game d ge . database . utils . DATABASE _ ARTIC LES Ċ import Ġdagger . Module Ċ import Ġdagger . h ilt . Install In Ċ import Ġdagger . h ilt . android . testing . H ilt Android Rule Ċ import Ġdagger . h ilt . android . testing . H ilt Android Test Ċ import Ġdagger . h ilt . android . testing . Un install Modules Ċ import Ġdagger . h ilt . components . Singleton Component Ċ import Ġjavax . inject . Inject Ċ import Ġkotlinx . coroutines . test . run Blocking Test Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ Ċ @ H ilt Android Test Ċ @ Un install Modules ( Database Module :: class ) Ċ internal Ġclass ĠArticles Table Test Ġ{ ĊĊĠĠĠ Ġ@ get : Rule ( order Ġ= Ġ 0 ) ĊĠĠĠ Ġval Ġh ilt Rule Ġ= ĠH ilt Android Rule ( this ) ĊĊĠĠĠ Ġ@ get : Rule ( order Ġ= Ġ 1 ) ĊĠĠĠ Ġval Ġexecutor Rule Ġ= ĠInstant Task Executor Rule () ĊĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar ĠS UT : ĠArticles Table ĊĊĠĠĠ Ġ@ Module ( includes Ġ= Ġ[ Test Database Module :: class ]) ĊĠĠĠ Ġ@ Install In ( Singleton Component :: class ) ĊĠĠĠ Ġclass ĠTest Module ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġh ilt Rule . inject () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsaves _ and _ ob serves _ sorted _ articles () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS UT . save Articles ( DATABASE _ ARTIC LES ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Articles Ġ= ĠDATABASE _ ARTIC LES . sorted By Descending ( Database Article :: publication Date ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠS UT . observe Articles ( offset Ġ= Ġ 0 , Ġlimit Ġ= ĠDATABASE _ ARTIC LES . size ). test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( await Item ()). isEqualTo ( expected Articles ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ