package Ġcom . ped rog ome z . post viewer . view . view model Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . test . ext . junit . runners . Android JUnit 4 Ċ import Ġcom . ped rog ome z . post viewer . models . db . User Table Ċ import Ġcom . ped rog ome z . post viewer . models . result . Result Ċ import Ġcom . ped rog ome z . post viewer . util . Data Helper Ċ import Ġcom . ped rog ome z . post viewer . util . get Or Await Value Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . runner . RunWith Ċ Ċ import Ġorg . junit . Assert .* Ċ import Ġorg . junit . Test Ċ Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠUsers ViewModel Test Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠS UT : ĠUsers ViewModel ĊĊĠĠĠ Ġvar Ġrepos ot ory TD Ġ= ĠRepository TD () ĊĊĠĠĠ Ġval ĠPAGE Ġ= Ġ 1 ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ ĠS UT Ġ= ĠUsers ViewModel ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepos ot ory TD ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset Loading State _ loader Data Update () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS UT . set Loading State () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS UT . loader Data . get Or Await Value (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Loading ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset Success State _ loader Data Update () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS UT . set Success State () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS UT . loader Data . get Or Await Value (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Success ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsave Selected _ selected Hit LiveData Updated () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS UT . save Selected ( Data Helper . HIT TABLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS UT . selected Hit LiveData . get Or Await Value (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData Helper . HIT TABLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdelete _ delete _ success Passed Param () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS UT . delete ( Data Helper . HIT TABLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepos ot ory TD . to Delete , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData Helper . HIT TABLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġload More _ load Hits _ success Passed Param () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS UT . load More ( PAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepos ot ory TD . page , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPAGE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠRepository TD Ġ: ĠUsers ViewModel . Repository { ĊĊĠĠĠĠĠĠĠ Ġvar Ġto Delete Ġ: ĠUser Table ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġvar Ġpage Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġoverride Ġsuspend Ġfun Ġload Users ( page : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . page Ġ= Ġpage ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġsuspend Ġfun Ġdelete ( user Item : ĠUser Table ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġto Delete Ġ= Ġuser Item ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġsuspend Ġfun ĠgetAll Users (): ĠList < User Table > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// never Ġused ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġempty List () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġobserve Users (): ĠLive Data < List < User Table >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// used Ġon Ġview model Ġclass Ġcreation . Ġit 's Ġbinding Ġto ĠDB ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠData Helper . LI VE HIST DATA ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ }