package Ġcom . yo ss ise ge v . data Ċ Ċ import Ġcom . yo ss ise ge v . data . repositories . Cached Movies DataStore Ċ import Ġcom . yo ss ise ge v . data . repositories . Memory Movies Cache Ċ import Ġcom . yo ss ise ge v . domain . Movies Cache Ċ import Ġcom . yo ss ise ge v . domain . common . Domain TestUtils . Companion . generate Movie Entity List Ċ import Ġcom . yo ss ise ge v . domain . common . Domain TestUtils . Companion . getTest Movie Entity Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby ĠY oss i ĠSe ge v Ġon Ġ 2 2 / 0 1 / 2 0 1 8 . Ċ Ġ*/ Ċ class ĠCached Movies DataStore Tests Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmovies Cache : ĠMov ies Cache ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcached Movies DataStore : ĠCached Movies DataStore ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġbefore () Ġ{ ĊĠĠĠĠĠĠĠ Ġmovies Cache Ġ= ĠMemory Movies Cache () ĊĠĠĠĠĠĠĠ Ġcached Movies DataStore Ġ= ĠCached Movies DataStore ( movies Cache ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun Ġafter () Ġ{ ĊĠĠĠĠĠĠĠ Ġmovies Cache . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest When Saving Movies In Cache They Can Be Retrie ved () Ġ{ ĊĠĠĠĠĠĠĠ Ġmovies Cache . save All ( generate Movie Entity List ()) ĊĠĠĠĠĠĠĠ Ġcached Movies DataStore . get Movies (). test () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Value Ġ{ Ġlist Ġ-> Ġlist . size Ġ== Ġ 5 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Complete () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Saved Movie Can Be Retrie ved Using Id () Ġ{ ĊĠĠĠĠĠĠĠ Ġmovies Cache . save ( getTest Movie Entity ( 1 )) ĊĠĠĠĠĠĠĠ Ġcached Movies DataStore . get Movie ById ( 1 ). test () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Value Ġ{ Ġoptional Ġ-> Ġoptional . hasValue () Ġ&& Ġoptional . value ?. id Ġ== Ġ 1 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Complete () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest When Retrie ving Id That DoesNot Exists Return Empty Optional () Ġ{ ĊĠĠĠĠĠĠĠ Ġmovies Cache . save All ( generate Movie Entity List ()) ĊĠĠĠĠĠĠĠ Ġcached Movies DataStore . get Movie ById ( 1 8 8 7 7 ). test () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Value Ġ{ Ġoptional Ġ-> Ġ! optional . hasValue () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Complete () ĊĠĠĠ Ġ} Ċ }