Ensure clearing the cache delete the CacheStore.
This commit is contained in:
parent
93717d0db0
commit
ed58f7161e
8 changed files with 45 additions and 2 deletions
|
|
@ -11,4 +11,5 @@ interface CacheStore {
|
|||
suspend fun storeData(key: String, data: CacheData)
|
||||
suspend fun getData(key: String): CacheData?
|
||||
suspend fun deleteData(key: String)
|
||||
suspend fun deleteAll()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,10 +27,14 @@ class DatabaseCacheStore(
|
|||
override suspend fun storeData(key: String, data: CacheData) {
|
||||
database.cacheDataQueries.insertData(
|
||||
data.toDbModel(key)
|
||||
)
|
||||
).await()
|
||||
}
|
||||
|
||||
override suspend fun deleteData(key: String) {
|
||||
database.cacheDataQueries.deleteData(key)
|
||||
database.cacheDataQueries.deleteData(key).await()
|
||||
}
|
||||
|
||||
override suspend fun deleteAll() {
|
||||
database.cacheDataQueries.deleteAll().await()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,3 +23,6 @@ INSERT OR REPLACE INTO CacheData VALUES ?;
|
|||
|
||||
deleteData:
|
||||
DELETE FROM CacheData WHERE key = ?;
|
||||
|
||||
deleteAll:
|
||||
DELETE FROM CacheData;
|
||||
|
|
|
|||
|
|
@ -65,4 +65,22 @@ class DatabaseCacheStoreTest {
|
|||
databaseCacheStore.deleteData(A_KEY)
|
||||
assertThat(database.cacheDataQueries.selectData(A_KEY).executeAsOneOrNull()).isNull()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `deleteAll deletes all the data`() = runTest {
|
||||
// Assert that no data is stored for the key
|
||||
assertThat(database.cacheDataQueries.selectData(A_KEY).executeAsOneOrNull()).isNull()
|
||||
// Store data
|
||||
databaseCacheStore.storeData(A_KEY, CacheData(A_DATA_1, 1))
|
||||
assertThat(database.cacheDataQueries.selectData(A_KEY).executeAsOneOrNull()).isEqualTo(
|
||||
DbCacheData(
|
||||
key = A_KEY,
|
||||
value_ = A_DATA_1,
|
||||
updatedAt = 1,
|
||||
)
|
||||
)
|
||||
// Delete all data
|
||||
databaseCacheStore.deleteAll()
|
||||
assertThat(database.cacheDataQueries.selectData(A_KEY).executeAsOneOrNull()).isNull()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,4 +26,8 @@ class InMemoryCacheStore(
|
|||
override suspend fun deleteData(key: String) {
|
||||
dataMap.remove(key)
|
||||
}
|
||||
|
||||
override suspend fun deleteAll() {
|
||||
dataMap.clear()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue