package Ġcom . ny times . android . external . store 3 Ċ Ċ import Ġcom . ny times . android . external . store 3 . base . impl . Bar Code Ċ import Ġcom . ny times . android . external . store 3 . base . impl . Store Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . Test Ċ Ċ class ĠClear Store Memory Test Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġnetwork Calls Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġval Ġstore Ġ= ĠStore . from < Int , ĠBar Code > Ġ{ Ġnetwork Calls ++ Ġ}. open () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Clear Single Bar Code () Ġ= Ġrun Blocking < Unit > Ġ{ ĊĠĠĠĠĠĠĠ Ġ// one Ġrequest Ġshould Ġproduce Ġone Ġcall ĊĠĠĠĠĠĠĠ Ġval Ġbarcode Ġ= ĠBar Code (" type ", Ġ" key ") ĊĠĠĠĠĠĠĠ Ġstore . get ( barcode ) ĊĠĠĠĠĠĠĠ ĠassertThat ( network Calls ). isEqualTo ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġafter Ġclearing Ġthe Ġmemory Ġanother Ġcall Ġshould Ġbe Ġmade ĊĠĠĠĠĠĠĠ Ġstore . clear ( barcode ) ĊĠĠĠĠĠĠĠ Ġstore . get ( barcode ) ĊĠĠĠĠĠĠĠ ĠassertThat ( network Calls ). isEqualTo ( 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Clear All Bar Codes () Ġ= Ġrun Blocking < Unit > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġb 1 Ġ= ĠBar Code (" type 1 ", Ġ" key 1 ") ĊĠĠĠĠĠĠĠ Ġval Ġb 2 Ġ= ĠBar Code (" type 2 ", Ġ" key 2 ") ĊĊĠĠĠĠĠĠĠ Ġ// each Ġrequest Ġshould Ġproduce Ġone Ġcall ĊĠĠĠĠĠĠĠ Ġstore . get ( b 1 ) ĊĠĠĠĠĠĠĠ Ġstore . get ( b 2 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( network Calls ). isEqualTo ( 2 ) ĊĊĠĠĠĠĠĠĠ Ġstore . clear ( b 1 ) ĊĠĠĠĠĠĠĠ Ġstore . clear ( b 2 ) ĊĊĠĠĠĠĠĠĠ Ġ// after Ġeverything Ġis Ġcleared Ġeach Ġrequest Ġshould Ġproduce Ġanother Ġ 2 Ġcalls ĊĠĠĠĠĠĠĠ Ġstore . get ( b 1 ) ĊĠĠĠĠĠĠĠ Ġstore . get ( b 2 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( network Calls ). isEqualTo ( 4 ) ĊĠĠĠ Ġ} Ċ } Ċ