package Ġcom . j vent rib . form ul ain fo . data Ċ Ċ import Ġcom . j vent rib . form ul ain fo . data . db .* Ċ import Ġcom . j vent rib . form ul ain fo . data . remote . Race Remote DataSource Ċ import Ġcom . j vent rib . form ul ain fo . model . db . Circuit Ċ import Ġcom . j vent rib . form ul ain fo . model . db . Race Info Ċ import Ġcom . j vent rib . form ul ain fo . model . db . Race Ċ import Ġcom . j vent rib . form ul ain fo . model . remote . Race Remote Ċ import Ġio . mock k . co Every Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġjunit . framework . TestCase Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . Flow Preview Ċ import Ġkotlinx . coroutines . flow . flow Of Ċ import Ġkotlinx . coroutines . test . Test Coroutine Scope Ċ import Ġorg . junit . Test Ċ import Ġjava . time . Instant Ċ Ċ @ Flow Preview Ċ @ Experimental Cor outines Api Ċ class ĠRace Repository Test Ġ: ĠTestCase () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġtest Scope Ġ= ĠTest Coroutine Scope () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet All R aces _ when DB IsEmpty () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrace Ġ= ĠRace ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRace Info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 0 2 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" http :// test . com ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" race 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" cir 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRace Info . Sessions ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInstant . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInstant . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInstant . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInstant . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInstant . now () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCircuit ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" cir 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" http :// circuit 1 . com ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Circuit Ġ 1 Ġ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCircuit . Location ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 7 . 2 1 9 7 F , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 4 . 7 6 4 7 F , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sp iel berg ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" A ust ria ", Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" http :// image 1 . svg " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĊĠĠĠĠĠĠĠ Ġval Ġrace Remote Ġ= ĠRace Remote ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 0 2 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" http :// test . com ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" race 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRace Remote . Circuit ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" cir 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" http :// circuit 1 . com ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Circuit Ġ 1 Ġ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRace Remote . Circuit . Location ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 7 . 2 1 9 7 F , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 4 . 7 6 4 7 F , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sp iel berg ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" A ust ria ", Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" http :// image 1 . svg " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRace Remote . Sessions ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInstant . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInstant . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInstant . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInstant . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInstant . now () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġrace Dao Ġ= Ġmock k < Race Dao >() ĊĠĠĠĠĠĠĠ Ġval Ġrace Remote DataSource Ġ= Ġmock k < Race Remote DataSource >() ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrace Dao . getR aces ( any ()) Ġ} Ġreturns Ġflow Of ( listOf ( race )) ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġrace Dao . insert All ( any ()) Ġ} Ġreturns ĠUnit ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġrace Remote DataSource . getR aces ( any ()) Ġ} Ġreturns ĠlistOf ( race Remote ) ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġrace Remote DataSource . get Country Flag ( any ()) Ġ} Ġreturns Ġ" flag 1 " Ċ Ċ // ĠĠĠĠĠĠĠ Ġval Ġall R aces Ġ= ĠRace Repository ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠApp Room Database . get Database ( context ), Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġrace Remote DataSource Ċ // ĠĠĠĠĠĠĠ Ġ). getAll R aces ( 2 0 2 0 ) Ċ // Ċ // Ċ // ĠĠĠĠĠĠĠ Ġtest Scope . launch Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġall R aces . collect Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( it . data OrNull ()?. get ( 0 )) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }