Update test code by applying code conventions and reflecting feedback

Change-Id: Ia1d9049642e447d9233713a7e3ee593d0bd56930
pull/1359/head
sangyoon 1 year ago
parent 5b1c704b86
commit ba04452010

@ -28,6 +28,9 @@ import org.junit.Rule
import org.junit.Test import org.junit.Test
import kotlin.test.assertEquals import kotlin.test.assertEquals
/**
* Unit test for [GetFollowableTopicsUseCase]
*/
class GetFollowableTopicsUseCaseTest { class GetFollowableTopicsUseCaseTest {
@get:Rule @get:Rule
@ -42,7 +45,7 @@ class GetFollowableTopicsUseCaseTest {
) )
@Test @Test
fun whenNoParams_followableTopicsAreReturnedWithNoSorting() = runTest { fun whenSortOrderIsByNone_followableTopicsAreReturnedWithNoSorting() = runTest {
// Obtain a stream of followable topics. // Obtain a stream of followable topics.
val followableTopics = useCase() val followableTopics = useCase()

@ -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.repository.TestRecentSearchRepository
import com.google.samples.apps.nowinandroid.core.testing.util.MainDispatcherRule import com.google.samples.apps.nowinandroid.core.testing.util.MainDispatcherRule
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.first
import kotlinx.coroutines.test.advanceUntilIdle
import kotlinx.coroutines.test.runTest import kotlinx.coroutines.test.runTest
import org.junit.Rule import org.junit.Rule
import org.junit.Test import org.junit.Test
import kotlin.test.assertEquals import kotlin.test.assertEquals
/**
* Unit test for [GetRecentSearchQueriesUseCase]
*/
class GetRecentSearchQueriesUseCaseTest { class GetRecentSearchQueriesUseCaseTest {
@get:Rule @get:Rule
@ -37,65 +40,36 @@ class GetRecentSearchQueriesUseCaseTest {
) )
@Test @Test
fun whenNoParams_recentSearchQueriesAreReturnedUpTo10() = runTest { fun whenQueryLimitIsBy10_recentSearchQueriesAreReturnedUpTo10() = runTest {
// Obtain a stream of recent search queries with no param. // Obtain a stream of recent search queries with no param.
val recentSearchQueries = useCase() val recentSearchQueries = useCase()
// insert 5 search queries. // insert search queries over 10.
for (index in 0 until 5) { testRecentSearchQueries.forEach { query ->
recentSearchRepository.insertOrReplaceRecentSearch(testRecentSearchQueries[index]) recentSearchRepository.insertOrReplaceRecentSearch(query)
// delay for saving value
delay(10L)
} }
// Check that 5 recent search queries are ordered by latest. // Check that the number of recent search queries are up to 10.
assertEquals( assertEquals(
testRecentSearchQueries.take(5).reversed(), 10,
recentSearchQueries.first().map { it.query }, recentSearchQueries.first().size
)
// 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 },
) )
} }
@Test @Test
fun whenParamIsSetTo5_recentSearchQueriesAreReturnedUpTo5() = runTest { fun whenReceivingRecentSearchQueries_recentSearchQueriesAreReturnedInRecentOrder() = runTest {
// Obtain a stream of recent search queries with param set 5. // Obtain a stream of recent search queries with no param.
val recentSearchQueries = useCase(5) val recentSearchQueries = useCase()
// 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. // insert search queries over 10.
for (index in 2 until testRecentSearchQueries.size) { testRecentSearchQueries.forEach { query ->
recentSearchRepository.insertOrReplaceRecentSearch(testRecentSearchQueries[index]) recentSearchRepository.insertOrReplaceRecentSearch(query)
// delay for saving value advanceUntilIdle()
delay(10L)
} }
// Check that recent search queries are ordered by latest up to 5. // Check that search queries is ordered in recently up to 10
assertEquals( assertEquals(
testRecentSearchQueries.reversed().take(5), testRecentSearchQueries.reversed().take(10),
recentSearchQueries.first().map { it.query }, recentSearchQueries.first().map { it.query },
) )
} }

Loading…
Cancel
Save