From d656a93e8aa293f739deda3c75c74a18b2fff23c Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Thu, 25 Jul 2024 00:06:11 +0200 Subject: [PATCH] add test cases for create room Signed-off-by: sowjanyakch --- .../talk/contacts/ContactsViewModelTest.kt | 48 ++++++++++++++++++- .../talk/contacts/apiService/FakeItem.kt | 14 ++++++ .../repository/FakeRepositorySuccess.kt | 4 +- 3 files changed, 63 insertions(+), 3 deletions(-) diff --git a/app/src/test/java/com/nextcloud/talk/contacts/ContactsViewModelTest.kt b/app/src/test/java/com/nextcloud/talk/contacts/ContactsViewModelTest.kt index 632f41182..f4ae66631 100644 --- a/app/src/test/java/com/nextcloud/talk/contacts/ContactsViewModelTest.kt +++ b/app/src/test/java/com/nextcloud/talk/contacts/ContactsViewModelTest.kt @@ -1,7 +1,7 @@ /* * Nextcloud Talk - Android Client * - * SPDX-FileCopyrightText: 2024 Your Name + * SPDX-FileCopyrightText: 2024 Sowjanya Kota * SPDX-License-Identifier: GPL-3.0-or-later */ @@ -59,4 +59,50 @@ class ContactsViewModelTest { viewModel = ContactsViewModel(FakeRepositoryError()) assert(viewModel.contactsViewState.value is ContactsUiState.Error) } + + @Test + fun `update search query`() { + viewModel.updateSearchQuery("Ma") + assert(viewModel.searchQuery.value == "Ma") + } + + @Test + fun `initial search query is empty string`() { + viewModel.updateSearchQuery("") + assert(viewModel.searchQuery.value == "") + } + + @Test + fun `initial shareType is User`() { + assert(viewModel.shareTypeList.contains(ShareType.User.shareType)) + } + + @Test + fun `update shareTypes`() { + viewModel.updateShareTypes(ShareType.Group.shareType) + assert(viewModel.shareTypeList.contains(ShareType.Group.shareType)) + } + + @Test + fun `initial room state is none`() = + runTest { + assert(viewModel.roomViewState.value is RoomUiState.None) + } + + @Test + fun `test success room state`() = + runTest { + viewModel.createRoom("1", "users", "s@gmail.com", null) + assert(viewModel.roomViewState.value is RoomUiState.Success) + val successState = viewModel.roomViewState.value as RoomUiState.Success + assert(successState.conversation == FakeItem.roomOverall.ocs!!.data) + } + + @Test + fun `test failure room state`() = + runTest { + viewModel = ContactsViewModel(FakeRepositoryError()) + viewModel.createRoom("1", "users", "s@gmail.com", null) + assert(viewModel.roomViewState.value is RoomUiState.Error) + } } diff --git a/app/src/test/java/com/nextcloud/talk/contacts/apiService/FakeItem.kt b/app/src/test/java/com/nextcloud/talk/contacts/apiService/FakeItem.kt index d419c2e7d..146ec8628 100644 --- a/app/src/test/java/com/nextcloud/talk/contacts/apiService/FakeItem.kt +++ b/app/src/test/java/com/nextcloud/talk/contacts/apiService/FakeItem.kt @@ -10,7 +10,11 @@ package com.nextcloud.talk.contacts.apiService import com.nextcloud.talk.models.json.autocomplete.AutocompleteOCS import com.nextcloud.talk.models.json.autocomplete.AutocompleteOverall import com.nextcloud.talk.models.json.autocomplete.AutocompleteUser +import com.nextcloud.talk.models.json.conversations.Conversation +import com.nextcloud.talk.models.json.conversations.RoomOCS +import com.nextcloud.talk.models.json.conversations.RoomOverall import com.nextcloud.talk.models.json.generic.GenericMeta +import org.mockito.Mockito.mock object FakeItem { val contacts: List? = @@ -41,4 +45,14 @@ object FakeItem { data = contacts ) ) + val roomOverall: RoomOverall = RoomOverall( + ocs = RoomOCS( + meta = GenericMeta( + status = "ok", + statusCode = 200, + message = "OK" + ), + data = mock(Conversation::class.java) + ) + ) } diff --git a/app/src/test/java/com/nextcloud/talk/contacts/repository/FakeRepositorySuccess.kt b/app/src/test/java/com/nextcloud/talk/contacts/repository/FakeRepositorySuccess.kt index 24bca99c3..b5164c2c8 100644 --- a/app/src/test/java/com/nextcloud/talk/contacts/repository/FakeRepositorySuccess.kt +++ b/app/src/test/java/com/nextcloud/talk/contacts/repository/FakeRepositorySuccess.kt @@ -23,10 +23,10 @@ class FakeRepositorySuccess() : ContactsRepository { userId: String, conversationName: String? ): RoomOverall { - TODO("Not yet implemented") + return FakeItem.roomOverall } override fun getImageUri(avatarId: String, requestBigSize: Boolean): String { - TODO("Not yet implemented") + return "https://mydomain.com/index.php/avatar/$avatarId/512" } }