diff --git a/core/domain/src/test/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetFollowableTopicsUseCaseTest.kt b/core/domain/src/test/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetFollowableTopicsUseCaseTest.kt index 42a31f858..fe671ff8c 100644 --- a/core/domain/src/test/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetFollowableTopicsUseCaseTest.kt +++ b/core/domain/src/test/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetFollowableTopicsUseCaseTest.kt @@ -28,6 +28,9 @@ import org.junit.Rule import org.junit.Test import kotlin.test.assertEquals +/** + * Unit test for [GetFollowableTopicsUseCase] + */ class GetFollowableTopicsUseCaseTest { @get:Rule @@ -42,7 +45,7 @@ class GetFollowableTopicsUseCaseTest { ) @Test - fun whenNoParams_followableTopicsAreReturnedWithNoSorting() = runTest { + fun whenSortOrderIsByNone_followableTopicsAreReturnedWithNoSorting() = runTest { // Obtain a stream of followable topics. val followableTopics = useCase() 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 6be34697d..9d592be19 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,13 +18,16 @@ 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.advanceUntilIdle import kotlinx.coroutines.test.runTest import org.junit.Rule import org.junit.Test import kotlin.test.assertEquals +/** + * Unit test for [GetRecentSearchQueriesUseCase] + */ class GetRecentSearchQueriesUseCaseTest { @get:Rule @@ -37,65 +40,36 @@ class GetRecentSearchQueriesUseCaseTest { ) @Test - fun whenNoParams_recentSearchQueriesAreReturnedUpTo10() = runTest { + fun whenQueryLimitIsBy10_recentSearchQueriesAreReturnedUpTo10() = runTest { // Obtain a stream of recent search queries with no param. val recentSearchQueries = useCase() - // insert 5 search queries. - for (index in 0 until 5) { - recentSearchRepository.insertOrReplaceRecentSearch(testRecentSearchQueries[index]) - // delay for saving value - delay(10L) + // insert search queries over 10. + testRecentSearchQueries.forEach { query -> + recentSearchRepository.insertOrReplaceRecentSearch(query) } - // Check that 5 recent search queries are ordered by latest. + // Check that the number of recent search queries are up to 10. 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. - assertEquals( - testRecentSearchQueries.reversed().take(10), - recentSearchQueries.first().map { it.query }, + 10, + recentSearchQueries.first().size ) } @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 }, - ) + fun whenReceivingRecentSearchQueries_recentSearchQueriesAreReturnedInRecentOrder() = runTest { + // Obtain a stream of recent search queries with no param. + val recentSearchQueries = useCase() - // insert 12 more search queries. - for (index in 2 until testRecentSearchQueries.size) { - recentSearchRepository.insertOrReplaceRecentSearch(testRecentSearchQueries[index]) - // delay for saving value - delay(10L) + // insert search queries over 10. + testRecentSearchQueries.forEach { query -> + recentSearchRepository.insertOrReplaceRecentSearch(query) + advanceUntilIdle() } - // Check that recent search queries are ordered by latest up to 5. + // Check that search queries is ordered in recently up to 10 assertEquals( - testRecentSearchQueries.reversed().take(5), + testRecentSearchQueries.reversed().take(10), recentSearchQueries.first().map { it.query }, ) }