package Ġcom . cs osa . f nt est . view models Ċ Ċ import Ġandroid . os . Build Ċ import Ġandroidx . test . ext . junit . runners . Android JUnit 4 Ċ import Ġcom . cs osa . f nt est . Base ViewModel Test Ċ import Ġcom . cs osa . f nt est . f akes . Fake GetAll Veh icles UseCase Ċ import Ġcom . cs osa . f nt est . utils . Ui State Ċ import Ġcom . cs osa . f nt est . view model . List Veh icles ViewModel Ċ import Ġcom . google . common . truth . Truth Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . test . run Blocking Test Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . ro bo lectric . annotation . Config Ċ Ċ @ Experimental Cor outines Api Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ @ Config ( manifest = Config . NONE , Ġsdk Ġ= Ġ[ Build . VERSION _ CODES . P ]) Ċ internal Ġclass ĠList Veh icles ViewModel Test Ġ: ĠBase ViewModel Test () Ġ{ ĊĊĠĠĠ Ġ// Ġregion ĠMembers ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlist Veh icles ViewModel : ĠList Veh icles ViewModel ĊĊĠĠĠ Ġ// Ġend region ĊĊĠĠĠ Ġ// Ġregion ĠTests ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġget Ġall Ġvehicles `() Ġ{ ĊĠĠĠĠĠĠĠ Ġcoroutine Test Rule . dispatcher . run Blocking Test Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprepare ViewModel ( Ui State . SUCCESS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Veh icles ViewModel . execute GetAll Veh icles ("") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Veh icles ViewModel . vehicles ViewState . observe Fore ver Ġ{ Ġstate Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( state . isLoading ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( state . vehicles ). isNull () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( state . error ). isNull () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( state . error ). isNull () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( state . vehicles ?. size ). isEqualTo ( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġend region ĊĊĠĠĠ Ġ// Ġregion ĠBase ViewModel Test ĊĊĠĠĠ Ġoverride Ġfun Ġprepare ViewModel ( ui State : ĠUi State ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval ĠgetAll Veh icles UseCase Ġ= ĠFake GetAll Veh icles UseCase ( ui State ) ĊĊĠĠĠĠĠĠĠ Ġlist Veh icles ViewModel Ġ= ĠList Veh icles ViewModel ( getAll Veh icles UseCase ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġend region Ċ Ċ } Ċ