talk-android/app/src/test/java/com/nextcloud/talk/utils/ParticipantPermissionsTest.kt
Andy Scherzinger 5011649499
fix(detekt): shorten test method by extracting conversation object creation
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-12-02 18:12:35 +01:00

99 lines
3.4 KiB
Kotlin

/*
* Nextcloud Talk - Android Client
*
* SPDX-FileCopyrightText: 2022 Tim Krüger <t@timkrueger.me>
* SPDX-FileCopyrightText: 2022 Marcel Hibbe <dev@mhibbe.de>
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.nextcloud.talk.utils
import com.nextcloud.talk.data.user.model.User
import com.nextcloud.talk.models.domain.ConversationModel
import com.nextcloud.talk.models.json.capabilities.SpreedCapability
import com.nextcloud.talk.models.json.conversations.Conversation
import com.nextcloud.talk.models.json.conversations.ConversationEnums
import com.nextcloud.talk.models.json.participants.Participant
import junit.framework.TestCase
import org.junit.Test
class ParticipantPermissionsTest : TestCase() {
@Test
fun test_areFlagsSet() {
val spreedCapability = SpreedCapability()
val conversation = createConversation()
conversation.permissions = ParticipantPermissions.PUBLISH_SCREEN or
ParticipantPermissions.JOIN_CALL or
ParticipantPermissions.DEFAULT
val user = User()
user.id = 1
val attendeePermissions =
ParticipantPermissions(
spreedCapability,
ConversationModel.mapToConversationModel(conversation, user)
)
assert(attendeePermissions.canPublishScreen)
assert(attendeePermissions.canJoinCall)
assert(attendeePermissions.isDefault)
assertFalse(attendeePermissions.isCustom)
assertFalse(attendeePermissions.canStartCall())
assertFalse(attendeePermissions.canIgnoreLobby())
assertTrue(attendeePermissions.canPublishAudio())
assertTrue(attendeePermissions.canPublishVideo())
}
private fun createConversation(): Conversation {
return Conversation(
token = "test",
name = "test",
displayName = "test",
description = "test",
type = ConversationEnums.ConversationType.DUMMY,
lastPing = 1,
participantType = Participant.ParticipantType.DUMMY,
hasPassword = true,
sessionId = "test",
actorId = "test",
actorType = "test",
password = "test",
favorite = false,
lastActivity = 1,
unreadMessages = 1,
unreadMention = false,
lastMessage = null,
objectType = ConversationEnums.ObjectType.DEFAULT,
notificationLevel = ConversationEnums.NotificationLevel.ALWAYS,
conversationReadOnlyState = ConversationEnums.ConversationReadOnlyState.CONVERSATION_READ_WRITE,
lobbyState = ConversationEnums.LobbyState.LOBBY_STATE_ALL_PARTICIPANTS,
lobbyTimer = 1,
lastReadMessage = 1,
lastCommonReadMessage = 1,
hasCall = true,
callFlag = 1,
canStartCall = false,
canLeaveConversation = true,
canDeleteConversation = true,
unreadMentionDirect = true,
notificationCalls = 1,
permissions = 1,
messageExpiration = 1,
status = "test",
statusIcon = "test",
statusMessage = "test",
statusClearAt = 1,
callRecording = 1,
avatarVersion = "test",
hasCustomAvatar = true,
callStartTime = 1,
recordingConsentRequired = 1,
remoteServer = "",
remoteToken = ""
)
}
}