package Ġcom . tit ou . bl a um . use _ cases Ċ Ċ import Ġcom . tit ou . bl a um . entities . Title Ċ import Ġcom . tit ou . bl a um . entities . testing . Title Mock Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġio . reactivex . rx java 3 . core . Observable Ċ import Ġio . reactivex . rx java 3 . core . Single Ċ Ċ object ĠData Sources Stub s Ġ{ ĊĊĠĠĠ Ġval Ġdefault Error Ġ= ĠThrowable (" Test Ġerror ") ĊĊĠĠĠ Ġfun Ġcreate Error Throw ing Database Titles DataSource Stub (): ĠDatabase Titles DataSource Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdatabase Titles DataSource Ġ= Ġmock k < Database Titles DataSource >() ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdatabase Titles DataSource . save Titles ( Title Mock . titles ) Ġ} Ġreturns ĠSingle . just ( Unit ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdatabase Titles DataSource . getTitle s () Ġ} Ġreturns ĠObservable . error ( default Error ) ĊĠĠĠĠĠĠĠ Ġreturn Ġdatabase Titles DataSource ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Empty Database Titles DataSource Stub (): ĠDatabase Titles DataSource Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdatabase Titles DataSource Ġ= Ġmock k < Database Titles DataSource >() ĊĠĠĠĠĠĠĠ Ġvar Ġtitles Ġ= Ġempty List < Title >() ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdatabase Titles DataSource . save Titles ( Title Mock . titles ) Ġ} Ġreturns ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlet Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitles Ġ= ĠTitle Mock . titles ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSingle . just ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUnit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdatabase Titles DataSource . getTitle s () Ġ} Ġreturns ĠObservable . just ( titles ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdatabase Titles DataSource ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Full Database Titles DataSource Stub (): ĠDatabase Titles DataSource Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdatabase Titles DataSource Ġ= Ġmock k < Database Titles DataSource >() ĊĠĠĠĠĠĠĠ Ġval Ġtitles Ġ= ĠTitle Mock . titles ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdatabase Titles DataSource . getTitle s () Ġ} Ġreturns ĠObservable . just ( titles ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdatabase Titles DataSource . save Titles ( Title Mock . titles ) Ġ} Ġreturns ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSingle . just ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUnit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdatabase Titles DataSource ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġcreate Remote Titles DataSource Stub () Ġ: ĠRemote Titles DataSource { ĊĠĠĠĠĠĠĠ Ġval Ġremote Titles DataSource Ġ= Ġmock k < Remote Titles DataSource >() ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġremote Titles DataSource . getTitle s () Ġ} Ġreturns ĠObservable . just ( Title Mock . titles ) ĊĠĠĠĠĠĠĠ Ġreturn Ġremote Titles DataSource ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġcreate Error Throw ing Remote Titles DataSource Stub (): ĠRemote Titles DataSource Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġremote Titles DataSource Ġ= Ġmock k < Remote Titles DataSource >() ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġremote Titles DataSource . getTitle s () Ġ} Ġreturns ĠObservable . error ( default Error ) ĊĠĠĠĠĠĠĠ Ġreturn Ġremote Titles DataSource ĊĠĠĠ Ġ} Ċ } ĊĊĊ