package Ġapp . future d . ark ite kt . sample . ui . main Ċ Ċ import Ġapp . future d . ark ite kt . core . view model . ViewModel Test Ċ import Ġio . mock k . spy k Ċ import Ġio . mock k . verify Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ Ċ class ĠMain ViewModel Test Ġ: ĠViewModel Test () Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġview State : ĠMain ViewState ĊĠĠĠ Ġlateinit Ġvar ĠviewModel : ĠMain ViewModel ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġview State Ġ= ĠMain ViewState () ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= Ġspy k ( Main ViewModel ( view State ), Ġrecord Private Calls Ġ= Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġon Detail Ġis Ġcalled Ġthen ĠShow Detail Event Ġis Ġsend `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠWHEN ĊĠĠĠĠĠĠĠ ĠviewModel . on Detail () ĊĊĠĠĠĠĠĠĠ Ġ// ĠTHEN ĊĠĠĠĠĠĠĠ Ġverify Ġ{ ĠviewModel . send Event ( Show Detail Event ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġon Form Ġis Ġcalled Ġthen ĠShow Form Event Ġis Ġsend `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠWHEN ĊĠĠĠĠĠĠĠ ĠviewModel . on Form () ĊĊĠĠĠĠĠĠĠ Ġ// ĠTHEN ĊĠĠĠĠĠĠĠ Ġverify Ġ{ ĠviewModel . send Event ( Show Form Event ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġon Login Ġis Ġcalled Ġthen ĠShow Login Event Ġis Ġsend `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠWHEN ĊĠĠĠĠĠĠĠ ĠviewModel . on Login () ĊĊĠĠĠĠĠĠĠ Ġ// ĠTHEN ĊĠĠĠĠĠĠĠ Ġverify Ġ{ ĠviewModel . send Event ( Show Login Event ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġon Bottom Sheet Ġis Ġcalled Ġthen ĠShow Bottom Sheet Event Ġis Ġsend `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠWHEN ĊĠĠĠĠĠĠĠ ĠviewModel . on Bottom Sheet () ĊĊĠĠĠĠĠĠĠ Ġ// ĠTHEN ĊĠĠĠĠĠĠĠ Ġverify Ġ{ ĠviewModel . send Event ( Show Bottom Sheet Event ) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ