From 8d008fba53a3043a8087ebf7d183343327cb780a Mon Sep 17 00:00:00 2001 From: yongsuk44 Date: Sat, 23 Mar 2024 22:00:29 +0900 Subject: [PATCH] Add Testcase to verify 'viewedNewsResources' --- .../repository/TestUserDataRepository.kt | 17 +++++++---------- .../feature/foryou/ForYouViewModelTest.kt | 11 +++++++++++ .../feature/settings/SettingsViewModelTest.kt | 1 - 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/core/testing/src/main/kotlin/com/google/samples/apps/nowinandroid/core/testing/repository/TestUserDataRepository.kt b/core/testing/src/main/kotlin/com/google/samples/apps/nowinandroid/core/testing/repository/TestUserDataRepository.kt index 29611b7f9..f867ff983 100644 --- a/core/testing/src/main/kotlin/com/google/samples/apps/nowinandroid/core/testing/repository/TestUserDataRepository.kt +++ b/core/testing/src/main/kotlin/com/google/samples/apps/nowinandroid/core/testing/repository/TestUserDataRepository.kt @@ -76,16 +76,13 @@ class TestUserDataRepository : UserDataRepository { override suspend fun setNewsResourceViewed(newsResourceId: String, viewed: Boolean) { currentUserData.let { current -> - _userData.tryEmit( - current.copy( - viewedNewsResources = - if (viewed) { - current.viewedNewsResources + newsResourceId - } else { - current.viewedNewsResources - newsResourceId - }, - ), - ) + val viewedNews = if (viewed) { + current.viewedNewsResources + newsResourceId + } else { + current.viewedNewsResources - newsResourceId + } + + _userData.tryEmit(current.copy(viewedNewsResources = viewedNews)) } } diff --git a/feature/foryou/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt b/feature/foryou/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt index 2fbdf0a79..90ffbe1a5 100644 --- a/feature/foryou/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt +++ b/feature/foryou/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt @@ -524,6 +524,17 @@ class ForYouViewModelTest { actual = userDataRepository.userData.first().bookmarkedNewsResources, ) } + + @Test + fun whenSetNewsResourceViewedIsCalled_viewedStateIsUpdated() = runTest { + val newsResourceId = "123" + viewModel.setNewsResourceViewed(newsResourceId, true) + + assertEquals( + expected = setOf(newsResourceId), + actual = userDataRepository.userData.first().viewedNewsResources, + ) + } } private val sampleTopics = listOf( diff --git a/feature/settings/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsViewModelTest.kt b/feature/settings/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsViewModelTest.kt index c43c18078..f757f3c0b 100644 --- a/feature/settings/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsViewModelTest.kt +++ b/feature/settings/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsViewModelTest.kt @@ -30,7 +30,6 @@ import org.junit.Before import org.junit.Rule import org.junit.Test import kotlin.test.assertEquals -import kotlin.test.assertIs class SettingsViewModelTest {