package Ġza . co . dv t . android . testing Ċ Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . do Nothing Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . times Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . verify Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . wh enever Ċ import Ġio . reactivex . Flow able Ċ import Ġjunit . framework . Assert . assertTrue Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . mockito . Mock Ċ import Ġorg . mockito . Mockito Annotations . init Mocks Ċ Ċ class ĠRx ViewModel Test Ġ{ ĊĠĠĠ Ġ@ Mock ĊĠĠĠ Ġlateinit Ġvar Ġrepo : ĠRepository ĊĠĠĠ Ġlateinit Ġvar Ġsystem UnderTest : ĠRx ViewModel ĊĊĠĠĠ Ġ@ Mock ĊĠĠĠ Ġlateinit Ġvar Ġview : ĠThe View ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Mocks ( this ) ĊĠĠĠĠĠĠĠ Ġsystem UnderTest Ġ= ĠRx ViewModel ( view , Ġrepo ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ fetch Pl ants _ Returns ListOf Pl ants () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexpected ListOf Pl ants Ġ= Ġarray ListOf ( Plant (" Tree ")) ĊĠĠĠĠĠĠĠ Ġwhenever ( repo . get Pl ants ()). thenReturn ( Flow able . just ( array ListOf ( Plant (" Tree ")) )) ĊĠĠĠĠĠĠĠ Ġdo Nothing (). wh enever ( view ). show Successful Message () ĊĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġsystem UnderTest . fetch Pl ants (). test () ĊĊĠĠĠĠĠĠĠ Ġactual . assert Value ( expected ListOf Pl ants ) ĊĠĠĠĠĠĠĠ Ġverify ( repo ). get Pl ants () ĊĠĠĠĠĠĠĠ Ġverify ( view , Ġtimes ( 1 )). show Successful Message () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ F etches Pl ants _ Returns Empty List () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhenever ( repo . get Pl ants ()). thenReturn ( Flow able . just ( array ListOf ( Plant (" Plant ")) )) ĊĠĠĠĠĠĠĠ Ġdo Nothing (). wh enever ( view ). show Successful Message () ĊĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġsystem UnderTest . fetch Pl ants (). test () ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġactual . values () ĊĠĠĠĠĠĠĠ ĠassertTrue ( result . first (). isEmpty ()) ĊĠĠĠĠĠĠĠ Ġverify ( repo ). get Pl ants () ĊĠĠĠĠĠĠĠ Ġverify ( view , Ġtimes ( 1 )). show Successful Message () ĊĠĠĠ Ġ} Ċ }