package Ġcom . and ige ek y . mvp app . ui . lines Ċ Ċ import Ġandroidx . arch . core . executor . testing . Instant Task Executor Rule Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . and ige ek y . mvp app . api . vo . Resource Ċ import Ġcom . and ige ek y . mvp app . lines . data . repository . Lines Repository Ċ import Ġcom . and ige ek y . mvp app . lines . presentation . Lines ViewModel Ċ import Ġcom . and ige ek y . mvp app . lines . data . vo . Line Ċ import Ġcom . and ige ek y . mvp app . ui . util . mock Ċ import Ġcom . and ige ek y . mvp app . ui . util . TestUtil Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . JUnit 4 Ċ import Ġorg . mockito . Mockito .* Ċ Ċ @ RunWith ( JUnit 4 :: class ) Ċ class ĠLines ViewModel Test Ġ{ ĊĠĠĠ Ġ@ Rule ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġval Ġinstant Executor Rule Ġ= ĠInstant Task Executor Rule () ĊĊĠĠĠ Ġprivate Ġval Ġlines Repository Ġ= Ġmock ( Lines Repository :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġlines ViewModel Ġ= ĊĠĠĠĠĠĠĠ ĠLines ViewModel ( lines Repository ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġlines Ġlive Ġdata Ġcall Ġload Lines ()` () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfoo Ġ= ĠMutable LiveData < Resource < List < Line >> >() ĊĠĠĠĠĠĠĠ Ġ` when `( lines Repository . load Lines ()). thenReturn ( foo ) ĊĊĠĠĠĠĠĠĠ Ġlines ViewModel . get Lines (). observe Fore ver ( mock ()) ĊĠĠĠĠĠĠĠ Ġverify ( lines Repository ). load Lines () ĊĠĠĠĠĠĠĠ Ġreset ( lines Repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġsending Ġdata Ġto ĠUI `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfoo Ġ= ĠMutable LiveData < Resource < List < Line >> >() ĊĠĠĠĠĠĠĠ Ġ` when `( lines Repository . load Lines ()). thenReturn ( foo ) ĊĠĠĠĠĠĠĠ Ġval Ġobserver Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock < Observer < Resource < List < Line >>>> () ĊĊĠĠĠĠĠĠĠ Ġlines ViewModel . get Lines (). observe Fore ver ( observer ) ĊĠĠĠĠĠĠĠ Ġverify ( observer , Ġnever ()). on Changed ( any ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġfoo User Ġ= ĠTest Util . create Lines ( 1 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġfoo Value Ġ= ĠResource . success ( foo User ) ĊĠĠĠĠĠĠĠ Ġfoo . value Ġ= Ġfoo Value ĊĠĠĠĠĠĠĠ Ġverify ( observer ). on Changed ( foo Value ) ĊĠĠĠĠĠĠĠ Ġreset ( observer ) ĊĠĠĠ Ġ} Ċ } Ċ