package Ġcom . im min ent me als . im min ent time . repository . database Ċ Ċ import Ġandroid . arch . core . executor . testing . Instant Task Executor Rule Ċ import Ġandroid . arch . lifecycle . LiveData Ċ import Ġandroid . arch . lifecycle . Observer Ċ import Ġandroid . support . test . runner . Android JUnit 4 Ċ import Ġcom . im min ent me als . im min ent time . repository . Time Budget Ċ import Ġorg . hamcrest . Matcher Assert . assertThat Ċ import Ġorg . hamcrest . Matchers Ċ import Ġorg . hamcrest . Matchers . contains Ċ import Ġorg . hamcrest . Matchers . has Size Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ Ċ // ĠTODO : Ġimprove Ġwith ĠAssertions ĠDSL Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠTime Budget s Test Ġ: ĠDatabase Test () Ġ{ ĊĊĠĠĠ Ġ@ Rule ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġvar Ġinstant Executor Rule Ġ= ĠInstant Task Executor Rule () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġduplicate Insert ions Replace () Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( db . time Budget s ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist (). live Data Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Time Budget ( Time Budget (" replace Ġme ", Ġ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Time Budget ( Time Budget (" re placed ", Ġ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( value , Ġhas Size ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( value , Ġcontains ( Time Budget (" re placed ", Ġ 1 ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġempty List () Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( db . time Budget s ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist (). live Data Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( value , Ġhas Size ( 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġlists Entered Time Budget s () Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( db . time Budget s ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist (). live Data Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Time Budget ( Time Budget (" first Ġentry ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Time Budget ( Time Budget (" second Ġentry ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( value , Ġcontains ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTime Budget (" first Ġentry ", Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTime Budget (" second Ġentry ", Ġ 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ< T > ĠLive Data < T >. live Data Test ( block : ĠTest Observer < T >. () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġobserver Ġ= ĠTest Observer < T >() ĊĠĠĠĠĠĠĠ Ġobserve Fore ver ( observer ) ĊĠĠĠĠĠĠĠ Ġblock ( observer ) ĊĠĠĠĠĠĠĠ Ġremove Observer ( observer ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠTest Observer < T > Ġ: ĠObserver < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġvalue : ĠT ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonChanged ( t : ĠT ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġt ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }