Replace: cached filed of TestRecentSearchRepository change from 'MutableList' to 'MutableSharedFlow'

Change-Id: Ic7f914d5a3963812d0647a2f0b89f732f2d4188c
pull/1359/head
sangyoon 2 weeks ago
parent bcb827aa5d
commit 5eecf4ed87

@ -48,8 +48,8 @@ class GetRecentSearchQueriesUseCaseTest {
// Check that the number of recent search queries are up to 10.
assertEquals(
10,
recentSearchQueries.first().size,
expected = 10,
actual = recentSearchQueries.first().size,
)
}
@ -61,7 +61,6 @@ class GetRecentSearchQueriesUseCaseTest {
// insert search queries over 10.
testRecentSearchQueries.forEach { query ->
recentSearchRepository.insertOrReplaceRecentSearch(query)
advanceUntilIdle()
}
// Check that search queries is ordered in recently up to 10

@ -18,19 +18,26 @@ package com.google.samples.apps.nowinandroid.core.testing.repository
import com.google.samples.apps.nowinandroid.core.data.model.RecentSearchQuery
import com.google.samples.apps.nowinandroid.core.data.repository.RecentSearchRepository
import kotlinx.coroutines.channels.BufferOverflow
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.map
class TestRecentSearchRepository : RecentSearchRepository {
private val cachedRecentSearches: MutableList<RecentSearchQuery> = mutableListOf()
private val cachedRecentSearches = MutableSharedFlow<MutableList<RecentSearchQuery>>(
replay = 1,
onBufferOverflow = BufferOverflow.DROP_OLDEST
).apply { tryEmit(mutableListOf()) }
override fun getRecentSearchQueries(limit: Int): Flow<List<RecentSearchQuery>> =
flowOf(cachedRecentSearches.sortedByDescending { it.queriedDate }.take(limit))
cachedRecentSearches.map { it.sortedByDescending { it.queriedDate }.take(limit) }
override suspend fun insertOrReplaceRecentSearch(searchQuery: String) {
cachedRecentSearches.add(RecentSearchQuery(searchQuery))
val searchQueries = cachedRecentSearches.map { it.apply { add(RecentSearchQuery(searchQuery)) } }.first()
cachedRecentSearches.emit(searchQueries)
}
override suspend fun clearRecentSearches() = cachedRecentSearches.clear()
override suspend fun clearRecentSearches() = cachedRecentSearches.emit(mutableListOf())
}

Loading…
Cancel
Save