package Ġcom . kir ak ish ou . photo exchange . helper . util Ċ Ċ import Ġcom . kir ak ish ou . photo exchange . helper . Lon Lat Ċ import Ġcom . kir ak ish ou . photo exchange . helper . exception . Attempt To Access Internet With Meter ed Network Exception Ċ import Ġcom . kir ak ish ou . photo exchange . helper . exception . Connection Error Ċ import Ġcom . kir ak ish ou . photo exchange . mv rx . model . photo . Gallery Photo Ċ import Ġcom . kir ak ish ou . photo exchange . mv rx . model . photo . Photo Additional Info Ċ import Ġjunit . framework . Assert .* Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . mockito . Mockito Ċ Ċ class ĠP aged Api Utils Impl Test Ġ{ ĊĊĠ Ġprivate Ġlateinit Ġvar Ġtime Utils : ĠTime Utils ĊĠ Ġprivate Ġlateinit Ġvar Ġpage d Api Utils : ĠP aged Api Utils ĊĊĠ Ġprivate Ġval ĠcurrentTime Ġ= Ġ 1 0 0 0 L ĊĊĠ Ġprivate Ġval Ġphotos From Cache Ġ= ĠlistOf ( ĊĠĠĠ ĠGallery Photo ( ĊĠĠĠĠĠ Ġ" 1 2 3 ", ĊĠĠĠĠĠ ĠL on Lat . empty (), ĊĠĠĠĠĠĠ 2 1 2 1 2 L , ĊĠĠĠĠĠ ĠPhoto Additional Info . empty (" 1 2 3 ") ĊĠĠĠ Ġ) ĊĠ Ġ) ĊĠ Ġprivate Ġval Ġphotos From Server Ġ= ĠlistOf ( ĊĠĠĠ ĠGallery Photo ( ĊĠĠĠĠĠ Ġ" 2 2 2 ", ĊĠĠĠĠĠ ĠL on Lat ( 1 1 . 1 , Ġ 2 2 . 2 ), ĊĠĠĠĠĠĠ 4 0 0 L , ĊĠĠĠĠĠ ĠPhoto Additional Info . empty (" 2 2 2 ") ĊĠĠĠ Ġ), ĊĠĠĠ ĠGallery Photo ( ĊĠĠĠĠĠ Ġ" 3 3 3 ", ĊĠĠĠĠĠ ĠL on Lat ( 1 2 . 1 , Ġ 2 3 . 2 ), ĊĠĠĠĠĠĠ 4 0 1 L , ĊĠĠĠĠĠ ĠPhoto Additional Info . empty (" 3 3 3 ") ĊĠĠĠ Ġ) ĊĠ Ġ) ĊĠ Ġprivate Ġval Ġfresh Photos From Server Ġ= ĠlistOf ( ĊĠĠĠ ĠGallery Photo ( ĊĠĠĠĠĠ Ġ" 4 4 4 ", ĊĠĠĠĠĠ ĠL on Lat ( 5 1 . 1 , Ġ 2 2 . 2 ), ĊĠĠĠĠĠĠ 3 9 6 L , ĊĠĠĠĠĠ ĠPhoto Additional Info . empty (" 4 4 4 ") ĊĠĠĠ Ġ), ĊĠĠĠ ĠGallery Photo ( ĊĠĠĠĠĠ Ġ" 5 5 5 ", ĊĠĠĠĠĠ ĠL on Lat ( 4 2 . 1 , Ġ 2 3 . 2 ), ĊĠĠĠĠĠĠ 3 9 7 L , ĊĠĠĠĠĠ ĠPhoto Additional Info . empty (" 5 5 5 ") ĊĠĠĠ Ġ), ĊĠĠĠ ĠGallery Photo ( ĊĠĠĠĠĠ Ġ" 6 6 6 ", ĊĠĠĠĠĠ ĠL on Lat ( 2 2 . 1 , Ġ 6 3 . 2 ), ĊĠĠĠĠĠĠ 3 9 8 L , ĊĠĠĠĠĠ ĠPhoto Additional Info . empty (" 6 6 6 ") ĊĠĠĠ Ġ) ĊĠ Ġ) ĊĊĠ Ġ@ Before ĊĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠ Ġtime Utils Ġ= ĠMockito . mock ( Time Utils :: class . java ) ĊĊĠĠĠ Ġpage d Api Utils Ġ= ĠP aged Api Utils Impl ( ĊĠĠĠĠĠ Ġtime Utils ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġassert Not Called (): ĠNothing Ġ= Ġthrow ĠRuntimeException (" Must Ġnot Ġbe Ġcalled ") ĊĠ Ġprivate Ġfun Ġthrow Meter ed Network Exception (): ĠNothing Ġ= Ġthrow ĠAttempt To Access Internet With Meter ed Network Exception (" B AM ") ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` should Ġreturn Ġphotos Ġfrom Ġcache Ġwhen Ġthere Ġis Ġno Ġinternet Ġand Ġnetwork Ġaccess Ġlevel Ġis Ġless Ġthan Ġcan Access Network `() Ġ{ ĊĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠ Ġval Ġpage Ġ= Ġpage d Api Utils . getPage Of Photos < Gallery Photo >( ĊĠĠĠĠĠĠĠ Ġ" test ", ĊĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠ ĠcurrentTime , ĊĠĠĠĠĠĠĠĠ 5 , ĊĠĠĠĠĠĠĠ Ġ" 2 3 4 ", ĊĠĠĠĠĠĠĠ Ġget Photos From Cache Func Ġ= Ġ{ Ġ_, Ġ_ Ġ-> Ġphotos From Cache Ġ}, ĊĠĠĠĠĠĠĠ Ġget Fresh Photos Func Ġ= Ġ{ Ġthrow Meter ed Network Exception () Ġ}, ĊĠĠĠĠĠĠĠ Ġget Page Of Photos Func Ġ= Ġ{ Ġ_, Ġ_, Ġ_ Ġ-> Ġassert Not Called () Ġ}, ĊĠĠĠĠĠĠĠ Ġclear Cache Func Ġ= Ġ{ Ġassert Not Called () Ġ}, ĊĠĠĠĠĠĠĠ Ġdelete Old Func Ġ= Ġ{ Ġassert Not Called () Ġ}, ĊĠĠĠĠĠĠĠ Ġfilter B anned Photos Func Ġ= Ġ{ Ġassert Not Called () Ġ}, ĊĠĠĠĠĠĠĠ Ġcache Photos Func Ġ= Ġ{ Ġassert Not Called () Ġ} ĊĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠ ĠassertEquals ( 1 , Ġpage . page . size ) ĊĠĠĠĠĠ ĠassertEquals (" 1 2 3 ", Ġpage . page . first (). photo Name ) ĊĊĠĠĠĠĠ ĠassertTrue ( page . is End ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` should Ġreturn Ġphotos Ġfrom Ġcache Ġwhen Ġit 's Ġfirst Ġrun Ġand Ġthere Ġare Ġenough Ġphotos Ġin Ġthe Ġcache `() Ġ{ ĊĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠ Ġval Ġpage Ġ= Ġpage d Api Utils . getPage Of Photos < Gallery Photo >( ĊĠĠĠĠĠĠĠ Ġ" test ", ĊĠĠĠĠĠĠĠ Ġ- 1 L , ĊĠĠĠĠĠĠĠ ĠcurrentTime , ĊĠĠĠĠĠĠĠĠ 1 , ĊĠĠĠĠĠĠĠ Ġ" 2 3 4 ", ĊĠĠĠĠĠĠĠ Ġget Photos From Cache Func Ġ= Ġ{ Ġ_, Ġ_ Ġ-> Ġphotos From Cache Ġ}, ĊĠĠĠĠĠĠĠ Ġget Fresh Photos Func Ġ= Ġ{ ĠlistOf < Gallery Photo >() Ġ}, ĊĠĠĠĠĠĠĠ Ġget Page Of Photos Func Ġ= Ġ{ Ġ_, Ġ_, Ġ_ Ġ-> Ġassert Not Called () Ġ}, ĊĠĠĠĠĠĠĠ Ġclear Cache Func Ġ= Ġ{ Ġassert Not Called () Ġ}, ĊĠĠĠĠĠĠĠ Ġdelete Old Func Ġ= Ġ{ Ġassert Not Called () Ġ}, ĊĠĠĠĠĠĠĠ Ġfilter B anned Photos Func Ġ= Ġ{ Ġassert Not Called () Ġ}, ĊĠĠĠĠĠĠĠ Ġcache Photos Func Ġ= Ġ{ Ġassert Not Called () Ġ} ĊĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠ ĠassertEquals ( 1 , Ġpage . page . size ) ĊĠĠĠĠĠ ĠassertEquals (" 1 2 3 ", Ġpage . page . first (). photo Name ) ĊĊĠĠĠĠĠ ĠassertFalse ( page . is End ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` should Ġget Ġfresh Ġphotos Ġfrom Ġserver Ġwhen Ġit 's Ġfirst Ġrun Ġand Ġthere Ġare Ġnot Ġenough Ġphotos Ġin Ġthe Ġcache `() Ġ{ ĊĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠ Ġvar Ġdelete Old Func Called Ġ= Ġfalse ĊĊĠĠĠĠĠ Ġval Ġpage Ġ= Ġpage d Api Utils . getPage Of Photos ( ĊĠĠĠĠĠĠĠ Ġ" test ", ĊĠĠĠĠĠĠĠ Ġ- 1 L , ĊĠĠĠĠĠĠĠ ĠcurrentTime , ĊĠĠĠĠĠĠĠĠ 2 , ĊĠĠĠĠĠĠĠ Ġ" 2 3 4 ", ĊĠĠĠĠĠĠĠ Ġget Photos From Cache Func Ġ= Ġ{ Ġ_, Ġ_ Ġ-> Ġphotos From Cache Ġ}, ĊĠĠĠĠĠĠĠ Ġget Fresh Photos Func Ġ= Ġ{ ĠlistOf < Gallery Photo >() Ġ}, ĊĠĠĠĠĠĠĠ Ġget Page Of Photos Func Ġ= Ġ{ Ġ_, Ġ_, Ġ_ Ġ-> Ġphotos From Server Ġ}, ĊĠĠĠĠĠĠĠ Ġclear Cache Func Ġ= Ġ{ Ġassert Not Called () Ġ}, ĊĠĠĠĠĠĠĠ Ġdelete Old Func Ġ= Ġ{ Ġdelete Old Func Called Ġ= Ġtrue Ġ}, ĊĠĠĠĠĠĠĠ Ġfilter B anned Photos Func Ġ= Ġ{ Ġphotos Ġ-> Ġphotos Ġ}, ĊĠĠĠĠĠĠĠ Ġcache Photos Func Ġ= Ġ{ Ġtrue Ġ} ĊĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠ ĠassertTrue ( delete Old Func Called ) ĊĊĠĠĠĠĠ ĠassertEquals ( 2 , Ġpage . page . size ) ĊĠĠĠĠĠ Ġval Ġphotos Ġ= Ġpage . page ĊĊĠĠĠĠĠ ĠassertEquals (" 2 2 2 ", Ġphotos [ 0 ]. photo Name ) ĊĠĠĠĠĠ ĠassertEquals (" 3 3 3 ", Ġphotos [ 1 ]. photo Name ) ĊĊĠĠĠĠĠ ĠassertFalse ( page . is End ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` should Ġreturn Ġphotos Ġfrom Ġcache Ġwhen Ġattempt Ġto Ġfetch Ġphotos Ġfrom Ġserver Ġresulted Ġin Ġconnection Ġexception `() Ġ{ ĊĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠ Ġval Ġpage Ġ= Ġpage d Api Utils . getPage Of Photos < Gallery Photo >( ĊĠĠĠĠĠĠĠ Ġ" test ", ĊĠĠĠĠĠĠĠ Ġ- 1 L , ĊĠĠĠĠĠĠĠ ĠcurrentTime , ĊĠĠĠĠĠĠĠĠ 2 , ĊĠĠĠĠĠĠĠ Ġ" 2 3 4 ", ĊĠĠĠĠĠĠĠ Ġget Photos From Cache Func Ġ= Ġ{ Ġ_, Ġ_ Ġ-> Ġphotos From Cache Ġ}, ĊĠĠĠĠĠĠĠ Ġget Fresh Photos Func Ġ= Ġ{ ĠlistOf < Gallery Photo >() Ġ}, ĊĠĠĠĠĠĠĠ Ġget Page Of Photos Func Ġ= Ġ{ Ġ_, Ġ_, Ġ_ Ġ-> Ġthrow ĠConnection Error (" B AM ") Ġ}, ĊĠĠĠĠĠĠĠ Ġclear Cache Func Ġ= Ġ{ Ġassert Not Called () Ġ}, ĊĠĠĠĠĠĠĠ Ġdelete Old Func Ġ= Ġ{ Ġassert Not Called () Ġ}, ĊĠĠĠĠĠĠĠ Ġfilter B anned Photos Func Ġ= Ġ{ Ġassert Not Called () Ġ}, ĊĠĠĠĠĠĠĠ Ġcache Photos Func Ġ= Ġ{ Ġassert Not Called () Ġ} ĊĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠ ĠassertEquals ( 1 , Ġpage . page . size ) ĊĠĠĠĠĠ Ġval Ġphotos Ġ= Ġpage . page ĊĊĠĠĠĠĠ ĠassertEquals (" 1 2 3 ", Ġphotos [ 0 ]. photo Name ) ĊĠĠĠĠĠ ĠassertTrue ( page . is End ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` should Ġreturn Ġphotos Ġfrom Ġcache Ġwhen Ġattempt Ġto Ġget Ġamount Ġof Ġfresh Ġphotos Ġon Ġthe Ġserver Ġresulted Ġin Ġconnection Ġexception `() Ġ{ ĊĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠ Ġval Ġpage Ġ= Ġpage d Api Utils . getPage Of Photos < Gallery Photo >( ĊĠĠĠĠĠĠĠ Ġ" test ", ĊĠĠĠĠĠĠĠĠ 1 L , ĊĠĠĠĠĠĠĠ ĠcurrentTime , ĊĠĠĠĠĠĠĠĠ 2 , ĊĠĠĠĠĠĠĠ Ġ" 2 3 4 ", ĊĠĠĠĠĠĠĠ Ġget Photos From Cache Func Ġ= Ġ{ Ġ_, Ġ_ Ġ-> Ġphotos From Cache Ġ}, ĊĠĠĠĠĠĠĠ Ġget Fresh Photos Func Ġ= Ġ{ Ġthrow ĠConnection Error (" B AM ") Ġ}, ĊĠĠĠĠĠĠĠ Ġget Page Of Photos Func Ġ= Ġ{ Ġ_, Ġ_, Ġ_ Ġ-> Ġassert Not Called () Ġ}, ĊĠĠĠĠĠĠĠ Ġclear Cache Func Ġ= Ġ{ Ġassert Not Called () Ġ}, ĊĠĠĠĠĠĠĠ Ġdelete Old Func Ġ= Ġ{ Ġassert Not Called () Ġ}, ĊĠĠĠĠĠĠĠ Ġfilter B anned Photos Func Ġ= Ġ{ Ġassert Not Called () Ġ}, ĊĠĠĠĠĠĠĠ Ġcache Photos Func Ġ= Ġ{ Ġassert Not Called () Ġ} ĊĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠ ĠassertEquals ( 1 , Ġpage . page . size ) ĊĠĠĠĠĠ ĠassertEquals (" 1 2 3 ", Ġpage . page . first (). photo Name ) ĊĊĠĠĠĠĠ ĠassertTrue ( page . is End ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` should Ġreturn Ġphotos Ġfrom Ġserver Ġwhen Ġthere Ġare Ġno Ġfresh Ġphotos Ġon Ġthe Ġserver Ġand Ġnot Ġenough Ġphotos Ġin Ġthe Ġcache `() Ġ{ ĊĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠ Ġvar Ġdelete Old Func Called Ġ= Ġfalse ĊĠĠĠĠĠ Ġval Ġpage Ġ= Ġpage d Api Utils . getPage Of Photos < Gallery Photo >( ĊĠĠĠĠĠĠĠ Ġ" test ", ĊĠĠĠĠĠĠĠĠ 1 L , ĊĠĠĠĠĠĠĠ ĠcurrentTime , ĊĠĠĠĠĠĠĠĠ 2 , ĊĠĠĠĠĠĠĠ Ġ" 2 3 4 ", ĊĠĠĠĠĠĠĠ Ġget Photos From Cache Func Ġ= Ġ{ Ġ_, Ġ_ Ġ-> Ġphotos From Cache Ġ}, ĊĠĠĠĠĠĠĠ Ġget Fresh Photos Func Ġ= Ġ{ ĠlistOf < Gallery Photo >() Ġ}, ĊĠĠĠĠĠĠĠ Ġget Page Of Photos Func Ġ= Ġ{ Ġ_, Ġ_, Ġ_ Ġ-> Ġphotos From Server Ġ}, ĊĠĠĠĠĠĠĠ Ġclear Cache Func Ġ= Ġ{ Ġassert Not Called () Ġ}, ĊĠĠĠĠĠĠĠ Ġdelete Old Func Ġ= Ġ{ Ġdelete Old Func Called Ġ= Ġtrue Ġ}, ĊĠĠĠĠĠĠĠ Ġfilter B anned Photos Func Ġ= Ġ{ Ġit Ġ}, ĊĠĠĠĠĠĠĠ Ġcache Photos Func Ġ= Ġ{ Ġtrue Ġ} ĊĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠ ĠassertTrue ( delete Old Func Called ) ĊĊĠĠĠĠĠ ĠassertEquals ( 2 , Ġpage . page . size ) ĊĠĠĠĠĠ Ġval Ġphotos Ġ= Ġpage . page ĊĊĠĠĠĠĠ ĠassertEquals (" 2 2 2 ", Ġphotos [ 0 ]. photo Name ) ĊĠĠĠĠĠ ĠassertEquals (" 3 3 3 ", Ġphotos [ 1 ]. photo Name ) ĊĊĠĠĠĠĠ ĠassertFalse ( page . is End ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` should Ġreturn Ġphotos Ġfrom Ġcache Ġwhen Ġthere Ġare Ġfresh Ġphotos Ġon Ġthe Ġserver Ġbut Ġattempt Ġto Ġget Ġthem Ġresulted Ġin Ġconnection Ġexception `() Ġ{ ĊĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠ Ġval Ġpage Ġ= Ġpage d Api Utils . getPage Of Photos < Gallery Photo >( ĊĠĠĠĠĠĠĠ Ġ" test ", ĊĠĠĠĠĠĠĠĠ 1 L , ĊĠĠĠĠĠĠĠ ĠcurrentTime , ĊĠĠĠĠĠĠĠĠ 2 , ĊĠĠĠĠĠĠĠ Ġ" 2 3 4 ", ĊĠĠĠĠĠĠĠ Ġget Photos From Cache Func Ġ= Ġ{ Ġ_, Ġ_ Ġ-> Ġphotos From Cache Ġ}, ĊĠĠĠĠĠĠĠ Ġget Fresh Photos Func Ġ= Ġ{ Ġfresh Photos From Server . take ( 2 ) Ġ}, ĊĠĠĠĠĠĠĠ Ġget Page Of Photos Func Ġ= Ġ{ Ġ_, Ġ_, Ġ_ Ġ-> Ġthrow ĠConnection Error (" B AM ") Ġ}, ĊĠĠĠĠĠĠĠ Ġclear Cache Func Ġ= Ġ{ Ġassert Not Called () Ġ}, ĊĠĠĠĠĠĠĠ Ġdelete Old Func Ġ= Ġ{ Ġassert Not Called () Ġ}, ĊĠĠĠĠĠĠĠ Ġfilter B anned Photos Func Ġ= Ġ{ Ġassert Not Called () Ġ}, ĊĠĠĠĠĠĠĠ Ġcache Photos Func Ġ= Ġ{ Ġassert Not Called () Ġ} ĊĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠ ĠassertEquals ( 1 , Ġpage . page . size ) ĊĠĠĠĠĠ Ġval Ġphotos Ġ= Ġpage . page ĊĊĠĠĠĠĠ ĠassertEquals (" 1 2 3 ", Ġphotos [ 0 ]. photo Name ) ĊĠĠĠĠĠ ĠassertTrue ( page . is End ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` should Ġreturn Ġpage Ġof Ġphotos Ġconcaten ated Ġwith Ġfresh Ġphotos Ġwhen Ġthere Ġare Ġfresh Ġphotos Ġon Ġthe Ġserver `() Ġ{ ĊĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠ Ġvar Ġdelete Old Func Called Ġ= Ġfalse ĊĠĠĠĠĠ Ġval Ġpage Ġ= Ġpage d Api Utils . getPage Of Photos < Gallery Photo >( ĊĠĠĠĠĠĠĠ Ġ" test ", ĊĠĠĠĠĠĠĠĠ 1 L , ĊĠĠĠĠĠĠĠ ĠcurrentTime , ĊĠĠĠĠĠĠĠĠ 2 , ĊĠĠĠĠĠĠĠ Ġ" 2 3 4 ", ĊĠĠĠĠĠĠĠ Ġget Photos From Cache Func Ġ= Ġ{ Ġ_, Ġ_ Ġ-> Ġphotos From Cache Ġ}, ĊĠĠĠĠĠĠĠ Ġget Fresh Photos Func Ġ= Ġ{ Ġfresh Photos From Server . take ( 2 ) Ġ}, ĊĠĠĠĠĠĠĠ Ġget Page Of Photos Func Ġ= Ġ{ Ġ_, Ġ_, Ġ_ Ġ-> Ġphotos From Server Ġ}, ĊĠĠĠĠĠĠĠ Ġclear Cache Func Ġ= Ġ{ Ġassert Not Called () Ġ}, ĊĠĠĠĠĠĠĠ Ġdelete Old Func Ġ= Ġ{ Ġdelete Old Func Called Ġ= Ġtrue Ġ}, ĊĠĠĠĠĠĠĠ Ġfilter B anned Photos Func Ġ= Ġ{ Ġit Ġ}, ĊĠĠĠĠĠĠĠ Ġcache Photos Func Ġ= Ġ{ Ġtrue Ġ} ĊĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠ ĠassertTrue ( delete Old Func Called ) ĊĠĠĠĠĠ ĠassertEquals ( 4 , Ġpage . page . size ) ĊĊĠĠĠĠĠ Ġval Ġphotos Ġ= Ġpage . page ĊĊĠĠĠĠĠ ĠassertEquals (" 2 2 2 ", Ġphotos [ 2 ]. photo Name ) ĊĠĠĠĠĠ ĠassertEquals (" 3 3 3 ", Ġphotos [ 3 ]. photo Name ) ĊĠĠĠĠĠ ĠassertEquals (" 4 4 4 ", Ġphotos [ 0 ]. photo Name ) ĊĠĠĠĠĠ ĠassertEquals (" 5 5 5 ", Ġphotos [ 1 ]. photo Name ) ĊĊĠĠĠĠĠ ĠassertFalse ( page . is End ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` should Ġclear Ġcache Ġcompletely Ġand Ġthen Ġget Ġpage Ġof Ġphotos Ġfrom Ġthe Ġserver Ġwhen Ġfresh Ġphotos Ġamount Ġis Ġgreater Ġthan Ġrequested Ġphotos Ġcount `() Ġ{ ĊĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠ Ġvar Ġclear Cache Func Called Ġ= Ġfalse ĊĊĠĠĠĠĠ Ġval Ġpage Ġ= Ġpage d Api Utils . getPage Of Photos < Gallery Photo >( ĊĠĠĠĠĠĠĠ Ġ" test ", ĊĠĠĠĠĠĠĠĠ 1 L , ĊĠĠĠĠĠĠĠ ĠcurrentTime , ĊĠĠĠĠĠĠĠĠ 2 , ĊĠĠĠĠĠĠĠ Ġ" 2 3 4 ", ĊĠĠĠĠĠĠĠ Ġget Photos From Cache Func Ġ= Ġ{ Ġ_, Ġ_ Ġ-> Ġphotos From Cache Ġ}, ĊĠĠĠĠĠĠĠ Ġget Fresh Photos Func Ġ= Ġ{ Ġfresh Photos From Server Ġ}, ĊĠĠĠĠĠĠĠ Ġget Page Of Photos Func Ġ= Ġ{ Ġ_, Ġ_, Ġ_ Ġ-> Ġphotos From Server Ġ}, ĊĠĠĠĠĠĠĠ Ġclear Cache Func Ġ= Ġ{ Ġclear Cache Func Called Ġ= Ġtrue Ġ}, ĊĠĠĠĠĠĠĠ Ġdelete Old Func Ġ= Ġ{ Ġassert Not Called () Ġ}, ĊĠĠĠĠĠĠĠ Ġfilter B anned Photos Func Ġ= Ġ{ Ġit Ġ}, ĊĠĠĠĠĠĠĠ Ġcache Photos Func Ġ= Ġ{ Ġtrue Ġ} ĊĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠ ĠassertTrue ( clear Cache Func Called ) ĊĊĠĠĠĠĠ ĠassertEquals ( 2 , Ġpage . page . size ) ĊĠĠĠĠĠ Ġval Ġphotos Ġ= Ġpage . page ĊĊĠĠĠĠĠ ĠassertEquals (" 2 2 2 ", Ġphotos [ 0 ]. photo Name ) ĊĠĠĠĠĠ ĠassertEquals (" 3 3 3 ", Ġphotos [ 1 ]. photo Name ) ĊĊĠĠĠĠĠ ĠassertFalse ( page . is End ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }