package Ġcom . al har oof . di abe tracker . log book Ċ Ċ import Ġcom . al har oof . di abe tracker . data . log book . LogEntry Repository Impl Ċ import Ġcom . al har oof . di abe tracker . data . log book . db . LogEntry Dao Ċ import Ġcom . al har oof . di abe tracker . util . TestData Ċ import Ġio . reactivex . Comp letable Ċ import Ġio . reactivex . Observable Ċ import Ġorg . junit .* Ċ import Ġorg . junit . runner .* Ċ import Ġorg . mockito .* Ċ import Ġorg . mockito . Mockito .* Ċ import Ġorg . mockito . junit .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġas hou kat Ġon ĠAug Ġ 2 0 , Ġ 2 0 1 9 Ġ 1 0 : 3 0 ĠAM . Ċ Ġ*/ Ċ Ċ @ RunWith ( Mockito JUnit Runner :: class ) Ċ class ĠLog Entry Repository Impl Test Ġ{ ĊĊĠĠĠ Ġ@ Mock ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlog Entry Dao : ĠLog Entry Dao ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlog Entry Repository : ĠLog Entry Repository Impl ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġlog Entry Repository Ġ= ĠLog Entry Repository Impl ( log Entry Dao ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġcreate Ġnew Ġlog Ġentry Ġif Ġdata Ġis Ġvalid `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ` when `( log Entry Dao . insert ( TestData . log Entry )). thenReturn ( Comp letable . complete ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Observer Ġ= Ġlog Entry Repository . add LogEntry ( TestData . log Entry ). test () ĊĊĠĠĠĠĠĠĠ Ġverify ( log Entry Dao ). insert ( TestData . log Entry ) ĊĠĠĠĠĠĠĠ Ġverify No More Interactions ( log Entry Dao ) ĊĠĠĠĠĠĠĠ Ġtest Observer . assert Complete () ĊĠĠĠĠĠĠĠ Ġtest Observer . assert No Errors () ĊĊĠĠĠĠĠĠĠ Ġtest Observer . dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġnot Ġcreate Ġnew Ġlog Ġentry Ġif Ġdata Ġis Ġinvalid `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ` when `( log Entry Dao . insert ( TestData . log Entry )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( Comp letable . error ( Exception ())) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Observer Ġ= Ġlog Entry Repository . add LogEntry ( TestData . log Entry ). test () ĊĊĠĠĠĠĠĠĠ Ġverify ( log Entry Dao ). insert ( TestData . log Entry ) ĊĠĠĠĠĠĠĠ Ġverify No More Interactions ( log Entry Dao ) ĊĠĠĠĠĠĠĠ Ġtest Observer . assertNot Complete () ĊĠĠĠĠĠĠĠ Ġtest Observer . assert Error ( Exception :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġtest Observer . dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġreturn Ġempty Ġlist Ġif Ġno Ġlog Ġentry Ġavailable `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ` when `( log Entry Dao . getAll ()). thenReturn ( Observable . just ( emptyList ())) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Observer Ġ= Ġlog Entry Repository . getAll Log Entries (). test () ĊĊĠĠĠĠĠĠĠ Ġverify ( log Entry Dao ). getAll () ĊĠĠĠĠĠĠĠ Ġverify No More Interactions ( log Entry Dao ) ĊĠĠĠĠĠĠĠ Ġtest Observer . assert Value ( emptyList ()) ĊĊĠĠĠĠĠĠĠ Ġtest Observer . dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġreturn Ġlog Ġentries Ġif Ġdata Ġis Ġavailable `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ` when `( log Entry Dao . getAll ()). thenReturn ( Observable . just ( TestData . log Entry List )) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Observer Ġ= Ġlog Entry Repository . getAll Log Entries (). test () ĊĊĠĠĠĠĠĠĠ Ġverify ( log Entry Dao ). getAll () ĊĠĠĠĠĠĠĠ Ġverify No More Interactions ( log Entry Dao ) ĊĠĠĠĠĠĠĠ Ġtest Observer . assert Value ( TestData . log Entry List ) ĊĊĠĠĠĠĠĠĠ Ġtest Observer . dispose () ĊĠĠĠ Ġ} Ċ } Ċ