package Ġcom . mark nk am au . just java . ui . pay Card Ċ Ċ import Ġandroidx . arch . core . executor . testing . Instant Task Executor Rule Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . mark nj unge . core . data . model . ApiResponse Ċ import Ġcom . mark nj unge . core . data . model . Resource Ċ import Ġcom . mark nj unge . core . data . repository . Payments Repository Ċ import Ġio . mock k . Mock K Annotations Ċ import Ġio . mock k . co Every Ċ import Ġio . mock k . impl . annotations . Mock K Ċ import Ġio . mock k . spy k Ċ import Ġio . mock k . verify Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . test . Test Coroutine Dispatcher Ċ import Ġkotlinx . coroutines . test . reset Main Ċ import Ġkotlinx . coroutines . test . set Main Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . rules . Test Rule Ċ Ċ class ĠPay Card ViewModel Test Ġ{ ĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġvar Ġrule : ĠTest Rule Ġ= ĠInstant Task Executor Rule () ĊĊĠĠĠ Ġ@ Experimental Cor outines Api ĊĠĠĠ Ġprivate Ġval Ġtest Dispatcher : ĠTest Coroutine Dispatcher Ġ= ĠTest Coroutine Dispatcher () ĊĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpayments Repository : ĠPay ments Repository ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠPay Card ViewModel ĊĊĠĠĠ Ġ@ Experimental Cor outines Api ĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ ĠMock K Annotations . init ( this , Ġrelax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ ĠDispatch ers . set Main ( test Dispatcher ) ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠPay Card ViewModel ( payments Repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Experimental Cor outines Api ĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun Ġteardown () Ġ{ ĊĠĠĠĠĠĠĠ ĠDispatch ers . reset Main () ĊĠĠĠĠĠĠĠ Ġtest Dispatcher . cleanup Test Cor outines () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` can Ġinitiate Ġcard Ġpayment `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresource Ġ= ĠResource . Success ( ApiResponse ("")) ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpayments Repository . init iate Card Payment ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġany (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġany () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġreturns Ġresource ĊĊĠĠĠĠĠĠĠ Ġval Ġobserver Ġ= Ġspy k < Observer < Resource < ApiResponse >> >() ĊĠĠĠĠĠĠĠ ĠviewModel . init iate Card Payment ("", Ġ"", Ġ"", Ġ"", Ġ""). observe Fore ver ( observer ) ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġobserver . on Changed ( resource ) Ġ} ĊĠĠĠ Ġ} Ċ }