From b369f9dfd3a81999340117ffceff3b530249bcb0 Mon Sep 17 00:00:00 2001 From: Aidan Follestad Date: Fri, 11 Jan 2019 21:03:57 -0800 Subject: [PATCH] Update MainViewModelTest --- .../java/com/afollestad/nocknock/TestData.kt | 22 ++++---- .../nocknock/ui/main/MainViewModelTest.kt | 50 +++++++++++++------ 2 files changed, 47 insertions(+), 25 deletions(-) diff --git a/app/src/test/java/com/afollestad/nocknock/TestData.kt b/app/src/test/java/com/afollestad/nocknock/TestData.kt index 2039beb..e5e4c29 100644 --- a/app/src/test/java/com/afollestad/nocknock/TestData.kt +++ b/app/src/test/java/com/afollestad/nocknock/TestData.kt @@ -89,20 +89,24 @@ fun fakeHeaders(siteId: Long): List
{ ) } -fun fakeModel(id: Long) = Site( +fun fakeModel( + id: Long, + tags: String = "" +) = Site( id = id, name = "Test", url = "https://test.com", - tags = "", + tags = tags, settings = fakeSettingsModel(id), lastResult = fakeResultModel(id), retryPolicy = fakeRetryPolicy(id), headers = fakeHeaders(id) ) -val MOCK_MODEL_1 = fakeModel(1) -val MOCK_MODEL_2 = fakeModel(2) -val MOCK_MODEL_3 = fakeModel(3) +val MOCK_MODEL_1 = fakeModel(1, tags = "one,two") +val MOCK_MODEL_2 = fakeModel(2, tags = "three,four") +val MOCK_MODEL_3 = fakeModel(3, tags = "five,six") + val ALL_MOCK_MODELS = listOf(MOCK_MODEL_1, MOCK_MODEL_2, MOCK_MODEL_3) fun mockDatabase(): AppDatabase { @@ -168,13 +172,13 @@ fun mockDatabase(): AppDatabase { on { delete(isA()) } doReturn 1 } val headerDao = mock { - on { all() } doReturn com.afollestad.nocknock.engine.MOCK_MODEL_1.headers + com.afollestad.nocknock.engine.MOCK_MODEL_2.headers + com.afollestad.nocknock.engine.MOCK_MODEL_3.headers + on { all() } doReturn MOCK_MODEL_1.headers + MOCK_MODEL_2.headers + MOCK_MODEL_3.headers on { forSite(isA()) } doAnswer { inv -> val id = inv.getArgument(0) return@doAnswer when (id) { - 1L -> com.afollestad.nocknock.engine.MOCK_MODEL_1.headers - 2L -> com.afollestad.nocknock.engine.MOCK_MODEL_2.headers - 3L -> com.afollestad.nocknock.engine.MOCK_MODEL_3.headers + 1L -> MOCK_MODEL_1.headers + 2L -> MOCK_MODEL_2.headers + 3L -> MOCK_MODEL_3.headers else -> listOf() } } diff --git a/app/src/test/java/com/afollestad/nocknock/ui/main/MainViewModelTest.kt b/app/src/test/java/com/afollestad/nocknock/ui/main/MainViewModelTest.kt index 1a483af..593996e 100644 --- a/app/src/test/java/com/afollestad/nocknock/ui/main/MainViewModelTest.kt +++ b/app/src/test/java/com/afollestad/nocknock/ui/main/MainViewModelTest.kt @@ -60,18 +60,45 @@ class MainViewModelTest { .test() val sites = viewModel.onSites() .test() + val tags = viewModel.onTags() + .test() + val tagsVisibility = viewModel.onTagsListVisibility() + .test() viewModel.onResume() verify(notificationManager).cancelStatusNotifications() verify(validationManager).ensureScheduledValidations() - sites.assertValues( - listOf(), - ALL_MOCK_MODELS - ) + sites.assertValues(ALL_MOCK_MODELS) isLoading.assertValues(true, false) emptyTextVisibility.assertValues(false, false) + tags.assertValues(listOf("one", "two", "three", "four", "five", "six").sorted()) + tagsVisibility.assertValues(true) + } + + @Test fun onTagSelection() = runBlocking { + val isLoading = viewModel.onIsLoading() + .test() + val emptyTextVisibility = viewModel.onEmptyTextVisibility() + .test() + val sites = viewModel.onSites() + .test() + val tags = viewModel.onTags() + .test() + val tagsVisibility = viewModel.onTagsListVisibility() + .test() + + viewModel.onTagSelection(listOf("four", "six")) + + verify(notificationManager).cancelStatusNotifications() + verify(validationManager).ensureScheduledValidations() + + sites.assertValues(listOf(MOCK_MODEL_2, MOCK_MODEL_3)) + isLoading.assertValues(true, false) + emptyTextVisibility.assertValues(false, false) + tags.assertValues(listOf("one", "two", "three", "four", "five", "six").sorted()) + tagsVisibility.assertValues(true) } @Test fun postSiteUpdate_notFound() { @@ -86,10 +113,7 @@ class MainViewModelTest { .test() viewModel.onResume() - sites.assertValues( - listOf(), - ALL_MOCK_MODELS - ) + sites.assertValues(ALL_MOCK_MODELS) val updatedModel2 = MOCK_MODEL_2.copy( name = "Wakanda Forever!!!" @@ -120,10 +144,7 @@ class MainViewModelTest { .test() viewModel.onResume() - sites.assertValues( - listOf(), - ALL_MOCK_MODELS - ) + sites.assertValues(ALL_MOCK_MODELS) isLoading.assertValues(true, false) val modifiedModel = MOCK_MODEL_1.copy(id = 11111) @@ -147,10 +168,7 @@ class MainViewModelTest { .test() viewModel.onResume() - sites.assertValues( - listOf(), - ALL_MOCK_MODELS - ) + sites.assertValues(ALL_MOCK_MODELS) isLoading.assertValues(true, false) val modelsWithout1 = ALL_MOCK_MODELS.toMutableList()