Add unit test on toAnalyticsJoinedRoom and fix a mapping issue.

This commit is contained in:
Benoit Marty 2024-09-12 12:09:02 +02:00 committed by Benoit Marty
parent d5ac6dabdf
commit 30847e9e1f
2 changed files with 94 additions and 2 deletions

View file

@ -10,9 +10,10 @@ package io.element.android.libraries.matrix.impl.analytics
import im.vector.app.features.analytics.plan.JoinedRoom
import io.element.android.libraries.matrix.api.room.MatrixRoom
private fun Long?.toAnalyticsRoomSize(): JoinedRoom.RoomSize {
private fun Long.toAnalyticsRoomSize(): JoinedRoom.RoomSize {
return when (this) {
null,
0L,
1L -> JoinedRoom.RoomSize.One
2L -> JoinedRoom.RoomSize.Two
in 3..10 -> JoinedRoom.RoomSize.ThreeToTen
in 11..100 -> JoinedRoom.RoomSize.ElevenToOneHundred

View file

@ -0,0 +1,91 @@
/*
* Copyright 2024 New Vector Ltd.
*
* SPDX-License-Identifier: AGPL-3.0-only
* Please see LICENSE in the repository root for full details.
*/
package io.element.android.libraries.matrix.impl.analytics
import com.google.common.truth.Truth.assertThat
import im.vector.app.features.analytics.plan.JoinedRoom
import io.element.android.libraries.matrix.api.room.MatrixRoom
import io.element.android.libraries.matrix.test.room.FakeMatrixRoom
import org.junit.Test
class JoinedRoomExtKtTest {
@Test
fun `test room size mapping`() {
mapOf(
listOf(0L, 1L) to JoinedRoom.RoomSize.One,
listOf(2L, 2L) to JoinedRoom.RoomSize.Two,
listOf(3L, 10L) to JoinedRoom.RoomSize.ThreeToTen,
listOf(11L, 100L) to JoinedRoom.RoomSize.ElevenToOneHundred,
listOf(101L, 1000L) to JoinedRoom.RoomSize.OneHundredAndOneToAThousand,
listOf(1001L, 2000L) to JoinedRoom.RoomSize.MoreThanAThousand
).forEach { (joinedMemberCounts, expectedRoomSize) ->
joinedMemberCounts.forEach { joinedMemberCount ->
assertThat(aMatrixRoom(joinedMemberCount = joinedMemberCount).toAnalyticsJoinedRoom(null))
.isEqualTo(
JoinedRoom(
isDM = false,
isSpace = false,
roomSize = expectedRoomSize,
trigger = null
)
)
}
}
}
@Test
fun `test isDirect parameter mapping`() {
assertThat(aMatrixRoom(isDirect = true).toAnalyticsJoinedRoom(null))
.isEqualTo(
JoinedRoom(
isDM = true,
isSpace = false,
roomSize = JoinedRoom.RoomSize.One,
trigger = null
)
)
}
@Test
fun `test isSpace parameter mapping`() {
assertThat(aMatrixRoom(isSpace = true).toAnalyticsJoinedRoom(null))
.isEqualTo(
JoinedRoom(
isDM = false,
isSpace = true,
roomSize = JoinedRoom.RoomSize.One,
trigger = null
)
)
}
@Test
fun `test trigger parameter mapping`() {
assertThat(aMatrixRoom().toAnalyticsJoinedRoom(JoinedRoom.Trigger.Invite))
.isEqualTo(
JoinedRoom(
isDM = false,
isSpace = false,
roomSize = JoinedRoom.RoomSize.One,
trigger = JoinedRoom.Trigger.Invite
)
)
}
private fun aMatrixRoom(
isDirect: Boolean = false,
isSpace: Boolean = false,
joinedMemberCount: Long = 0
): MatrixRoom {
return FakeMatrixRoom(
isDirect = isDirect,
isSpace = isSpace,
joinedMemberCount = joinedMemberCount
)
}
}