package Ġcom . die g of aj ardo . stack exchange app . ui . main Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroidx . arch . core . executor . testing . Instant Task Executor Rule Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . die g of aj ardo . stack exchange app . data . model . Only In name Query Model Ċ import Ġcom . die g of aj ardo . stack exchange app . data . to Domain User Ċ import Ġcom . die g of aj ardo . stack exchange app . test di . Test Use case Module Ċ import Ġcom . die g of aj ardo . stack exchange app . test utils . Scheduler Provider Tr amp oline Ċ import Ġcom . die g of aj ardo . stack exchange app . test utils . Test Default Values . default Fake Users Ċ import Ġcom . die g of aj ardo . stack exchange app . use case . Get Users Use case Ċ import Ġcom . die g of aj ardo . stack exchange app . utils .* Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . mock Ċ 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 Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ Ċ class ĠMainActivity ViewModel IntegrationTest Ġ{ ĊĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġval Ġrule Ġ= ĠInstant Task Executor Rule () ĊĊĠĠĠ Ġprivate Ġval Ġapp : ĠApplication Ġ= Ġmock () ĊĠĠĠ Ġprivate Ġval Ġget Users Use case : ĠGet Users Use case Ġ= ĠTest Use case Module . fake Get Users Use case ĊĠĠĠ Ġprivate Ġval Ġquery Builder : ĠQuery Builder Ġ= ĠOnly In name QueryBuilder () ĊĠĠĠ Ġprivate Ġval Ġscheduler Provider : ĠScheduler Provider Impl Ġ= ĠScheduler Provider Tr amp oline () ĊĠĠĠ Ġprivate Ġval Ġerror Mapper : ĠError Mapper Ġ= ĠSimple Error Mapper ( app ) ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmain Activity ViewModel : ĠMainActivity ViewModel ĊĊĠĠĠ Ġprivate Ġval Ġobserver : ĠObserver < MainActivity ViewModel . Ui Model > Ġ= Ġmock () ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġmain Activity ViewModel Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMainActivity ViewModel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Users Use case , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery Builder , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscheduler Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Mapper ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġget Users Ġis Ġcalled Ġdata Ġis Ġloaded Ġfrom Ġserver `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmain Activity ViewModel . model . observe Fore ver ( observer ) ĊĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Activity ViewModel . get Users ( Only In name Query Model (" some Ġvalue ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( observer , Ġtimes ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Changed ( MainActivity ViewModel . Ui Model . Content ( default Fake Users . map Ġ{ Ġit . to Domain User () Ġ})) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }