package Ġcom . inion gun . t iv bible . room db . repository Impl . settings Ċ Ċ import Ġcom . inion gun . t iv bible . entities . Audio Speed Ċ import Ġcom . inion gun . t iv bible . entities . FontStyle Ċ import Ġcom . inion gun . t iv bible . entities . Setting Ċ import Ġcom . inion gun . t iv bible . entities . Theme Ċ import Ġcom . inion gun . t iv bible . room db . dao . Setting Dao Ċ import Ġio . mock k . every Ċ import Ġio . mock k . impl . annotations . Mock K Ċ import Ġio . mock k . junit 5 . Mock K Extension Ċ import Ġio . reactivex . Comp letable Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . Single Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . extension . Extend With Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠI sa ac ĠIn ion gun Ġon Ġ 2 0 1 9 - 1 2 - 1 7 . Ċ Ġ* ĠFor ĠT iv ĠBible Ġproject . Ċ Ġ*/ Ċ Ċ @ Extend With ( Mock K Extension :: class ) Ċ internal Ġclass ĠSettings Repo Impl Test Ġ{ ĊĊĠĠĠ Ġ// class Ġunder Ġtest ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsettings Repo Impl : ĠSettings Repo Impl ĊĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsetting Dao Mock : ĠSetting Dao ĊĊĠĠĠ Ġprivate Ġval Ġtest FontStyle Ġ= ĠFont Style ( name Ġ= Ġ" Sans ĠSerif ") ĊĠĠĠ Ġprivate Ġval Ġtest Theme Ġ= ĠTheme ( name Ġ= Ġ" Dark ") ĊĠĠĠ Ġprivate Ġval Ġtest Audio Speed Ġ= ĠAudio Speed ( name Ġ= Ġ" High ") ĊĠĠĠ Ġprivate Ġval Ġtest Settings Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠSetting ( 1 2 , Ġ 2 , Ġtest FontStyle , Ġtest Theme , Ġtrue , Ġtest Audio Speed ), ĊĠĠĠĠĠĠĠ ĠSetting ( 1 2 , Ġ 2 , Ġtest FontStyle , Ġtest Theme , Ġtrue , Ġtest Audio Speed ), ĊĠĠĠĠĠĠĠ ĠSetting ( 1 2 , Ġ 2 , Ġtest FontStyle , Ġtest Theme , Ġtrue , Ġtest Audio Speed ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġsettings Repo Impl Ġ= ĠSettings Repo Impl ( setting Dao Mock ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠgetAll Settings _ should Return Correct Values _ when Values Inserted () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġsetting Dao Mock . getAll Settings () Ġ} Ġreturns ĠObservable . just ( test Settings ) ĊĊĠĠĠĠĠĠĠ Ġsettings Repo Impl . getAll Settings (). test (). assert Value ( test Settings ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Setting ById _ should ReturnValue _ when Values Inserted () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġsetting Ġ= Ġtest Settings [ 0 ] ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġsetting Dao Mock . get Setting ById ( any ()) Ġ} Ġreturns ĠSingle . just ( test Settings . first Ġ{ Ġit . id Ġ== Ġsetting . id Ġ}) ĊĊĠĠĠĠĠĠĠ Ġsettings Repo Impl . get Setting ById ( setting . id ). test (). assert Value ( setting ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġinsert Settings _ should Complete Successfully () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġsetting Dao Mock . insert Settings ( test Settings ) Ġ} Ġreturns ĠComp letable . complete () ĊĊĠĠĠĠĠĠĠ Ġsettings Repo Impl . insert Settings ( test Settings ). test (). assert Complete () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdelete Settings _ should Complete Successfully () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġsetting Dao Mock . delete Settings ( test Settings ) Ġ} Ġreturns ĠComp letable . complete () ĊĊĠĠĠĠĠĠĠ Ġsettings Repo Impl . delete Settings ( test Settings ). test (). assert Complete () ĊĠĠĠ Ġ} Ċ }