package Ġde . r ki . cor on aw arn app . storage . key cache Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . room . Room Ċ import Ġandroidx . test . core . app . Application Provider Ċ import Ġandroidx . test . ext . junit . runners . Android JUnit 4 Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġde . r ki . cor on aw arn app . storage . App Database Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ Ċ /** Ċ Ġ* ĠKey Cache Dao Ġtest . Ċ Ġ*/ Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠKey Cache Dao Test Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġkey Cache Dao : ĠKey Cache Dao ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdb : ĠApp Database ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠApplication Provider . getApplicationContext < Context >() ĊĠĠĠĠĠĠĠ Ġdb Ġ= ĠRoom . in Memory Database Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĠApp Database :: class . java ). build () ĊĠĠĠĠĠĠĠ Ġkey Cache Dao Ġ= Ġdb . date Dao () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTest ĠCreate Ġ/ ĠRead Ġ/ ĠDelete ĠDB Ġoperations . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest CR DO per ations () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdates Ġ= ĠKey Cache Entity (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . id Ġ= Ġ" 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . path Ġ= Ġ" 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . type Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhours Ġ= ĠKey Cache Entity (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . id Ġ= Ġ" 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . path Ġ= Ġ" 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . type Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( key Cache Dao . getAll Entries (). isEmpty ()). isTrue () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Cache Dao . insert Entry ( dates ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Cache Dao . insert Entry ( hours ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġall Ġ= Ġkey Cache Dao . getAll Entries () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( all . size ). isEqualTo ( 2 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselected Dates Ġ= Ġkey Cache Dao . get Dates () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( selected Dates . size ). isEqualTo ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( selected Dates [ 0 ]. type ). isEqualTo ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( selected Dates [ 0 ]. id ). isEqualTo ( dates . id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselected Hours Ġ= Ġkey Cache Dao . getHours () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( selected Hours . size ). isEqualTo ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( selected Hours [ 0 ]. type ). isEqualTo ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( selected Hours [ 0 ]. id ). isEqualTo ( hours . id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Cache Dao . clear Hours () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġall Ġ= Ġkey Cache Dao . getAll Entries () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( all . size ). isEqualTo ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( all [ 0 ]. type ). isEqualTo ( 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Cache Dao . insert Entry ( hours ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( key Cache Dao . getAll Entries (). size ). isEqualTo ( 2 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Cache Dao . clear () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( key Cache Dao . getAll Entries (). isEmpty ()). isTrue () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun Ġclose Db () Ġ{ ĊĠĠĠĠĠĠĠ Ġdb . close () ĊĠĠĠ Ġ} Ċ } Ċ