Skip to content

Commit 423ea0e

Browse files
Fix the test of view models
1 parent a651861 commit 423ea0e

File tree

2 files changed

+26
-8
lines changed

2 files changed

+26
-8
lines changed

app/src/test/java/com/intive/tmdbandroid/details/viewmodel/DetailsViewModelTest.kt

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ import com.intive.tmdbandroid.common.State
88
import com.intive.tmdbandroid.model.Genre
99
import com.intive.tmdbandroid.model.TVShow
1010
import com.intive.tmdbandroid.usecase.DetailTVShowUseCase
11+
import com.intive.tmdbandroid.usecase.GetIfExistsUseCase
12+
import com.intive.tmdbandroid.usecase.RemoveTVShowFromWatchlistUseCase
13+
import com.intive.tmdbandroid.usecase.SaveTVShowInWatchlistUseCase
1114
import kotlinx.coroutines.ExperimentalCoroutinesApi
1215
import kotlinx.coroutines.flow.flow
1316
import kotlinx.coroutines.test.runBlockingTest
@@ -18,18 +21,18 @@ import org.mockito.Mockito.*
1821
import kotlin.time.ExperimentalTime
1922

2023
@ExperimentalCoroutinesApi
21-
class DetailsViewModelTest{
24+
class DetailsViewModelTest {
2225

2326
@get:Rule
2427
var mainCoroutineRule = MainCoroutineRule()
2528

2629
@get:Rule
2730
var instantTaskExecutorRule = InstantTaskExecutorRule()
2831

29-
private val tvShow = TVShow(
32+
private val tvShow = TVShow(
3033
backdrop_path = "BACKDROP_PATH",
3134
first_air_date = "1983-10-20",
32-
genres = listOf(Genre(1, "genre1"), Genre(2,"genre2")),
35+
genres = listOf(Genre(1, "genre1"), Genre(2, "genre2")),
3336
id = 1,
3437
name = "Simona la Cacarisa",
3538
original_name = "El cochiloco",
@@ -45,19 +48,30 @@ class DetailsViewModelTest{
4548
)
4649

4750
private lateinit var detailViewModel: DetailsViewModel
48-
private lateinit var detailUseCase: DetailTVShowUseCase
51+
private lateinit var tVShowUseCase: DetailTVShowUseCase
52+
private lateinit var saveTVShowInWatchlistUseCase: SaveTVShowInWatchlistUseCase
53+
private lateinit var removeTVShowFromWatchlistUseCase: RemoveTVShowFromWatchlistUseCase
54+
private lateinit var getIfExistsUseCase: GetIfExistsUseCase
4955

5056

5157
@Before
5258
fun setup() {
53-
detailUseCase = mock(DetailTVShowUseCase::class.java)
54-
detailViewModel = DetailsViewModel(detailUseCase)
59+
tVShowUseCase = mock(DetailTVShowUseCase::class.java)
60+
saveTVShowInWatchlistUseCase = mock(SaveTVShowInWatchlistUseCase::class.java)
61+
removeTVShowFromWatchlistUseCase = mock(RemoveTVShowFromWatchlistUseCase::class.java)
62+
getIfExistsUseCase = mock(GetIfExistsUseCase::class.java)
63+
detailViewModel = DetailsViewModel(
64+
tVShowUseCase,
65+
saveTVShowInWatchlistUseCase,
66+
removeTVShowFromWatchlistUseCase,
67+
getIfExistsUseCase
68+
)
5569
}
5670

5771
@Test
5872
@ExperimentalTime
5973
fun tVShowsTest() = mainCoroutineRule.runBlockingTest {
60-
`when`(detailUseCase.invoke(anyInt())).thenReturn(
74+
`when`(tVShowUseCase.invoke(anyInt())).thenReturn(
6175
flow {
6276
emit(
6377
tvShow

app/src/test/java/com/intive/tmdbandroid/viewmodel/HomeViewModelTest.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import com.intive.tmdbandroid.common.State
99
import com.intive.tmdbandroid.home.viewmodel.HomeViewModel
1010
import com.intive.tmdbandroid.model.Genre
1111
import com.intive.tmdbandroid.model.TVShow
12+
import com.intive.tmdbandroid.usecase.GetAllItemsInWatchlistUseCase
1213
import com.intive.tmdbandroid.usecase.PaginatedPopularTVShowsUseCase
1314
import kotlinx.coroutines.ExperimentalCoroutinesApi
1415
import kotlinx.coroutines.flow.flow
@@ -56,6 +57,9 @@ class HomeViewModelTest {
5657
@Mock
5758
private lateinit var popularTVShowsUseCase: PaginatedPopularTVShowsUseCase
5859

60+
@Mock
61+
private lateinit var getAllItemsInWatchlistUseCase: GetAllItemsInWatchlistUseCase
62+
5963
// Set the main coroutines dispatcher for unit testing.
6064
@ExperimentalCoroutinesApi
6165
@get:Rule
@@ -67,7 +71,7 @@ class HomeViewModelTest {
6771

6872
@Before
6973
fun setupViewModel() {
70-
viewModel = HomeViewModel(popularTVShowsUseCase)
74+
viewModel = HomeViewModel(popularTVShowsUseCase, getAllItemsInWatchlistUseCase)
7175
}
7276

7377
@ExperimentalTime

0 commit comments

Comments
 (0)