package Ġcom . byte byte 6 . view model Ċ Ċ import Ġandroidx . arch . core . executor . testing . Instant Task Executor Rule Ċ import Ġandroidx . test . ext . junit . runners . Android JUnit 4 Ċ import Ġcom . byte byte 6 . common . base Module Ċ import Ġcom . byte byte 6 . common . get Success Data Ċ import Ġcom . byte byte 6 . common . isLoading Ċ Ċ import Ġcom . byte byte 6 . data . data Module Ċ import Ġcom . byte byte 6 . use case . Download List UseCase Ċ import Ġcom . byte byte 6 . use case . use Case Module Ċ import Ġio . reactivex . rx java 3 . plugins . Rx Java Plugins Ċ import Ġio . reactivex . rx java 3 . schedul ers . Schedulers Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . k oin . core . context . start K oin Ċ import Ġorg . k oin . core . context . stop K oin Ċ import Ġorg . k oin . test . Auto Close K oin Test Ċ import Ġorg . k oin . test . get ĊĊ Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠDownload ViewModel Test Ġ: ĠAuto Close K oin Test () Ġ{ ĊĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġval Ġinstant Task Executor Rule Ġ= ĠInstant Task Executor Rule () ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġstart () Ġ{ ĊĠĠĠĠĠĠĠ Ġstop K oin () ĊĠĠĠĠĠĠĠ Ġstart K oin Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroom Memory Module , Ġdata Module , Ġuse Case Module , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Module , Ġtest Exo Player Module , Ġbase Module ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠRx Java Plugins . set Io Scheduler Handler Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS chedulers . tr amp oline () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ pause Interval () Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠviewModel Ġ= Ġget ViewModel () ĊĠĠĠĠĠĠĠ Ġvar Ġloading = false ĊĠĠĠĠĠĠĠ ĠviewModel . download ListResult . observe Fore ver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isLoading ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading = true ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠviewModel . pause Interval () ĊĠĠĠĠĠĠĠ Ġassert ( loading ) ĊĠĠĠĠĠĠĠ Ġassert ( viewModel . download ListResult . get Success Data () !!. isEmpty ()) ĊĠĠĠĠĠĠĠ Ġassert (! viewModel . is Start Interval ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ start Interval (){ ĊĠĠĠĠĠĠĠ Ġval ĠviewModel = get ViewModel () ĊĠĠĠĠĠĠĠ ĠviewModel . start Interval () ĊĠĠĠĠĠĠĠ Ġassert (! viewModel . is Start Interval ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ load Download List () Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠviewModel Ġ= Ġget ViewModel () ĊĠĠĠĠĠĠĠ Ġvar Ġloading = false ĊĠĠĠĠĠĠĠ ĠviewModel . download ListResult . observe Fore ver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isLoading ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading = true ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠviewModel . load Download List () ĊĠĠĠĠĠĠĠ Ġassert ( loading ) ĊĠĠĠĠĠĠĠ Ġassert ( viewModel . download ListResult . get Success Data () !!. isEmpty ()) ĊĠĠĠĠĠĠĠ Ġassert (! viewModel . is Start Interval ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget ViewModel (): ĠDownload ViewModel Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDownload ViewModel ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDownload List UseCase ( get (), Ġget ()) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }