From 17c937f26ef8d21bc2b5fc61cd6cf34c2713c9e4 Mon Sep 17 00:00:00 2001 From: sangyoon Date: Wed, 3 Apr 2024 17:30:28 +0900 Subject: [PATCH] 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