From 5eecf4ed8769c5e0b5b02f4260a3149c9696dc95 Mon Sep 17 00:00:00 2001 From: sangyoon Date: Thu, 21 Aug 2025 16:35:32 +0900 Subject: [PATCH] Replace: cached filed of TestRecentSearchRepository change from 'MutableList' to 'MutableSharedFlow' Change-Id: Ic7f914d5a3963812d0647a2f0b89f732f2d4188c --- .../domain/GetRecentSearchQueriesUseCaseTest.kt | 5 ++--- .../repository/TestRecentSearchRepository.kt | 17 ++++++++++++----- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/core/domain/src/test/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetRecentSearchQueriesUseCaseTest.kt b/core/domain/src/test/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetRecentSearchQueriesUseCaseTest.kt index 72b4568d1..b6261fac2 100644 --- a/core/domain/src/test/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetRecentSearchQueriesUseCaseTest.kt +++ b/core/domain/src/test/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetRecentSearchQueriesUseCaseTest.kt @@ -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 diff --git a/core/testing/src/main/kotlin/com/google/samples/apps/nowinandroid/core/testing/repository/TestRecentSearchRepository.kt b/core/testing/src/main/kotlin/com/google/samples/apps/nowinandroid/core/testing/repository/TestRecentSearchRepository.kt index f700bdc31..f300464a4 100644 --- a/core/testing/src/main/kotlin/com/google/samples/apps/nowinandroid/core/testing/repository/TestRecentSearchRepository.kt +++ b/core/testing/src/main/kotlin/com/google/samples/apps/nowinandroid/core/testing/repository/TestRecentSearchRepository.kt @@ -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 = mutableListOf() + private val cachedRecentSearches = MutableSharedFlow>( + replay = 1, + onBufferOverflow = BufferOverflow.DROP_OLDEST + ).apply { tryEmit(mutableListOf()) } override fun getRecentSearchQueries(limit: Int): Flow> = - 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()) }