From 17c937f26ef8d21bc2b5fc61cd6cf34c2713c9e4 Mon Sep 17 00:00:00 2001 From: sangyoon Date: Wed, 3 Apr 2024 17:30:28 +0900 Subject: [PATCH 1/4] Add test code : whenNoParams_recentSearchQueriesAreReturnedUpTo10 ([#1327]) --- .../GetRecentSearchQueriesUseCaseTest.kt | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) 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 b45c9f83c..9bdf5e87f 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 @@ -18,7 +18,11 @@ package com.google.samples.apps.nowinandroid.core.domain import com.google.samples.apps.nowinandroid.core.testing.repository.TestRecentSearchRepository import com.google.samples.apps.nowinandroid.core.testing.util.MainDispatcherRule +import kotlinx.coroutines.flow.first +import kotlinx.coroutines.test.runTest import org.junit.Rule +import org.junit.Test +import kotlin.test.assertEquals class GetRecentSearchQueriesUseCaseTest { @@ -27,5 +31,34 @@ class GetRecentSearchQueriesUseCaseTest { private val recentSearchRepository = TestRecentSearchRepository() + private val useCase = GetRecentSearchQueriesUseCase( + recentSearchRepository + ) -} \ No newline at end of file + @Test + fun whenNoParams_recentSearchQueriesAreReturnedUpTo10() = runTest { + // Obtain a stream of recent search queries. + val recentSearchQueries = useCase() + + // insert search queries. + for (query in testRecentSearchQueries) { + recentSearchRepository.insertOrReplaceRecentSearch(query) + } + + // Check that recent search queries are ordered by latest up to 10. + assertEquals( + testRecentSearchQueries.reversed().take(10), + recentSearchQueries.first().map { it.query }, + ) + } +} + +private val testRecentSearchQueries = listOf( + "Compose", "Wear OS", + "Jetpack", "Headlines", + "Architecture", "UI", + "Testing", "Android Studio", + "Performance", "New API", + "Games", "Android TV", + "Camera", "Media" +) \ No newline at end of file From db168787304391c8232cc0e915b02ededcc8e75b Mon Sep 17 00:00:00 2001 From: sangyoon Date: Wed, 3 Apr 2024 18:13:09 +0900 Subject: [PATCH 2/4] FIX test code : whenNoParams_recentSearchQueriesAreReturnedUpTo10 ([#1327]) --- .../GetRecentSearchQueriesUseCaseTest.kt | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 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 9bdf5e87f..6b74a162d 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 @@ -18,6 +18,7 @@ package com.google.samples.apps.nowinandroid.core.domain import com.google.samples.apps.nowinandroid.core.testing.repository.TestRecentSearchRepository import com.google.samples.apps.nowinandroid.core.testing.util.MainDispatcherRule +import kotlinx.coroutines.delay import kotlinx.coroutines.flow.first import kotlinx.coroutines.test.runTest import org.junit.Rule @@ -37,12 +38,27 @@ class GetRecentSearchQueriesUseCaseTest { @Test fun whenNoParams_recentSearchQueriesAreReturnedUpTo10() = runTest { - // Obtain a stream of recent search queries. + // Obtain a stream of recent search queries with no param. val recentSearchQueries = useCase() - // insert search queries. - for (query in testRecentSearchQueries) { - recentSearchRepository.insertOrReplaceRecentSearch(query) + // insert 5 search queries. + for (index in 0 until 5) { + recentSearchRepository.insertOrReplaceRecentSearch(testRecentSearchQueries[index]) + // delay for saving value + delay(10L) + } + + // Check that 5 recent search queries are ordered by latest. + assertEquals( + testRecentSearchQueries.take(5).reversed(), + recentSearchQueries.first().map { it.query }, + ) + + // insert 9 more search queries. + for (index in 5 until testRecentSearchQueries.size) { + recentSearchRepository.insertOrReplaceRecentSearch(testRecentSearchQueries[index]) + // delay for saving value + delay(10L) } // Check that recent search queries are ordered by latest up to 10. From b7822917d2aee14b7a9cca0fc81756d971140992 Mon Sep 17 00:00:00 2001 From: sangyoon Date: Wed, 3 Apr 2024 18:16:29 +0900 Subject: [PATCH 3/4] FIX test code : whenParamIsSetTo5_recentSearchQueriesAreReturnedUpTo5 ([#1327]) --- .../GetRecentSearchQueriesUseCaseTest.kt | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) 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 6b74a162d..83162c572 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 @@ -67,6 +67,38 @@ class GetRecentSearchQueriesUseCaseTest { recentSearchQueries.first().map { it.query }, ) } + + @Test + fun whenParamIsSetTo5_recentSearchQueriesAreReturnedUpTo5() = runTest { + // Obtain a stream of recent search queries with param set 5. + val recentSearchQueries = useCase(5) + + // insert 2 search queries. + for (index in 0 until 2) { + recentSearchRepository.insertOrReplaceRecentSearch(testRecentSearchQueries[index]) + // delay for saving value + delay(10L) + } + + // Check that 5 recent search queries are ordered by latest. + assertEquals( + testRecentSearchQueries.take(2).reversed(), + recentSearchQueries.first().map { it.query }, + ) + + // insert 12 more search queries. + for (index in 2 until testRecentSearchQueries.size) { + recentSearchRepository.insertOrReplaceRecentSearch(testRecentSearchQueries[index]) + // delay for saving value + delay(10L) + } + + // Check that recent search queries are ordered by latest up to 10. + assertEquals( + testRecentSearchQueries.reversed().take(5), + recentSearchQueries.first().map { it.query }, + ) + } } private val testRecentSearchQueries = listOf( From 98fd9ee8b917c15849c6247f342779afce8685b0 Mon Sep 17 00:00:00 2001 From: sangyoon Date: Wed, 3 Apr 2024 18:17:48 +0900 Subject: [PATCH 4/4] FIX test code : whenParamIsSetTo5_recentSearchQueriesAreReturnedUpTo5 ([#1327]) --- .../core/domain/GetRecentSearchQueriesUseCaseTest.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 83162c572..7c9e601a2 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 @@ -93,7 +93,7 @@ class GetRecentSearchQueriesUseCaseTest { delay(10L) } - // Check that recent search queries are ordered by latest up to 10. + // Check that recent search queries are ordered by latest up to 5. assertEquals( testRecentSearchQueries.reversed().take(5), recentSearchQueries.first().map { it.query },