package Ġio . github . well ing ton cost a . curso android con gress ode ti . app . ui Ċ Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġio . github . well ing ton cost a . curso android con gress ode ti . app . ui . list ar cont atos . todos . Lista Cont atos ViewModel Ċ import Ġio . github . well ing ton cost a . curso android con gress ode ti . domain . entity . Cont ato Ċ import Ġio . github . well ing ton cost a . curso android con gress ode ti . domain . exception . Network Exception Ċ import Ġio . github . well ing ton cost a . curso android con gress ode ti . testutil . mock . Cont ato Mocks . cin co Cont atos Ċ import Ġio . github . well ing ton cost a . curso android con gress ode ti . testutil . mock . Cont ato Mocks . um Cont ato Ċ import Ġio . mock k . Runs Ċ import Ġio . mock k . every Ċ import Ġio . mock k . just Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . verify Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Test Ċ Ċ class ĠList a Cont atos ViewModel Test Ġ: ĠBase ViewModel Test () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcont atos Observer Ġ= Ġmock k < Observer < List < Cont ato >> >() ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Ġ= ĠList a Cont atos ViewModel ( executor , Ġrepository ) ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġresultado List agem Cont atos : ĠList < Cont ato > ĊĊĠĠĠ Ġ@ Test Ġfun Ġ` sem Ġinter acoes `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ` d ado Ġque Ġeu Ġten ha Ġos Ġob servers Ġconfigur ados `() ĊĊĠĠĠĠĠĠĠ Ġ` ent ao Ġn ao Ġde vo Ġter Ġinter acoes `() ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ġfun Ġ` list ar Ġcont atos Ġcom Ġum Ġresultado `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ` d ado Ġque Ġeu Ġten ha Ġuma Ġlista Ġcom Ġum Ġcont ato `() ĊĊĠĠĠĠĠĠĠ Ġ` qu ando Ġeu Ġlist ar Ġos Ġcont atos `() ĊĊĠĠĠĠĠĠĠ Ġ` ent ao Ġde vo Ġrece ber Ġuma Ġlista Ġcom Ġum Ġcont ato `() ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ġfun Ġ` list ar Ġcont atos Ġcom Ġcin co Ġresultados `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ` d ado Ġque Ġeu Ġten ha Ġuma Ġlista Ġcom Ġcin co Ġcont atos `() ĊĊĠĠĠĠĠĠĠ Ġ` qu ando Ġeu Ġlist ar Ġos Ġcont atos `() ĊĊĠĠĠĠĠĠĠ Ġ` ent ao Ġde vo Ġrece ber Ġuma Ġlista Ġcom Ġcin co Ġcont atos `() ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ġfun Ġ` list ar Ġcont atos Ġcom Ġfal ha `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ` d ado Ġque Ġeu Ġten ha Ġuma Ġlista Ġde Ġcont atos Ġcom Ġfal ha `() ĊĊĠĠĠĠĠĠĠ Ġ` qu ando Ġeu Ġlist ar Ġos Ġcont atos `() ĊĊĠĠĠĠĠĠĠ Ġ` ent ao Ġde vo Ġrece ber Ġuma Ġfal ha `() ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ` d ado Ġque Ġeu Ġten ha Ġos Ġob servers Ġconfigur ados `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġcont atos Observer . on Changed ( any ()) Ġ} Ġjust ĠRuns ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġcar reg ando Observer . on Changed ( any ()) Ġ} Ġjust ĠRuns ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġerro Observer . on Changed ( any ()) Ġ} Ġjust ĠRuns ĊĊĠĠĠĠĠĠĠ ĠviewModel . cont atos . observe Fore ver ( cont atos Observer ) ĊĊĠĠĠĠĠĠĠ ĠviewModel . car reg ando . observe Fore ver ( car reg ando Observer ) ĊĊĠĠĠĠĠĠĠ ĠviewModel . erro . observe Fore ver ( erro Observer ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ` d ado Ġque Ġeu Ġten ha Ġuma Ġlista Ġcom Ġum Ġcont ato `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ` d ado Ġque Ġeu Ġten ha Ġos Ġob servers Ġconfigur ados `() ĊĊĠĠĠĠĠĠĠ Ġresultado List agem Cont atos Ġ= ĠlistOf ( um Cont ato ) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepository . list ar Todos () Ġ} Ġreturns Ġresultado List agem Cont atos ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ` d ado Ġque Ġeu Ġten ha Ġuma Ġlista Ġcom Ġcin co Ġcont atos `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ` d ado Ġque Ġeu Ġten ha Ġos Ġob servers Ġconfigur ados `() ĊĊĠĠĠĠĠĠĠ Ġresultado List agem Cont atos Ġ= Ġcin co Cont atos ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepository . list ar Todos () Ġ} Ġreturns Ġresultado List agem Cont atos ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ` d ado Ġque Ġeu Ġten ha Ġuma Ġlista Ġde Ġcont atos Ġcom Ġfal ha `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ` d ado Ġque Ġeu Ġten ha Ġos Ġob servers Ġconfigur ados `() ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepository . list ar Todos () Ġ} Ġthrows ĠNetwork Exception () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ` qu ando Ġeu Ġlist ar Ġos Ġcont atos `() Ġ{ ĊĊĠĠĠĠĠĠĠ ĠviewModel . list ar Todos () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ` ent ao Ġn ao Ġde vo Ġter Ġinter acoes `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġrepository . list ar Todos () Ġ} ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġcont atos Observer . on Changed ( any ()) Ġ} ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġcar reg ando Observer . on Changed ( any ()) Ġ} ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġerro Observer . on Changed ( any ()) Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ` ent ao Ġde vo Ġrece ber Ġuma Ġlista Ġcom Ġum Ġcont ato `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġcont atos Observer . on Changed ( any ()) Ġ} ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 2 ) Ġ{ Ġcar reg ando Observer . on Changed ( any ()) Ġ} ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġerro Observer . on Changed ( any ()) Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( viewModel . cont atos . value ?. size Ġ== Ġ 1 ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( viewModel . cont atos . value Ġ== Ġresultado List agem Cont atos ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ` ent ao Ġde vo Ġrece ber Ġuma Ġlista Ġcom Ġcin co Ġcont atos `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġcont atos Observer . on Changed ( any ()) Ġ} ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 2 ) Ġ{ Ġcar reg ando Observer . on Changed ( any ()) Ġ} ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġerro Observer . on Changed ( any ()) Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( viewModel . cont atos . value ?. size Ġ== Ġ 5 ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( viewModel . cont atos . value Ġ== Ġresultado List agem Cont atos ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ` ent ao Ġde vo Ġrece ber Ġuma Ġfal ha `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġcont atos Observer . on Changed ( any ()) Ġ} ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 2 ) Ġ{ Ġcar reg ando Observer . on Changed ( any ()) Ġ} ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġerro Observer . on Changed ( any ()) Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ }