review: Add unit test for notificationFormater
This commit is contained in:
parent
9a8046c02d
commit
9ce8253086
1 changed files with 99 additions and 0 deletions
|
|
@ -0,0 +1,99 @@
|
|||
/*
|
||||
* Copyright (c) 2026 Element Creations Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.libraries.eventformatter.impl
|
||||
|
||||
import android.content.Context
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import io.element.android.libraries.matrix.api.notification.CallIntent
|
||||
import io.element.android.libraries.matrix.api.timeline.item.event.CallNotifyContent
|
||||
import io.element.android.libraries.matrix.test.A_USER_ID_2
|
||||
import io.element.android.libraries.matrix.test.A_USER_ID_3
|
||||
import io.element.android.libraries.matrix.test.FakeMatrixClient
|
||||
import io.element.android.services.toolbox.impl.strings.AndroidStringProvider
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.robolectric.RobolectricTestRunner
|
||||
import org.robolectric.RuntimeEnvironment
|
||||
import org.robolectric.annotation.Config
|
||||
import kotlin.toString
|
||||
|
||||
@Suppress("LargeClass")
|
||||
@RunWith(RobolectricTestRunner::class)
|
||||
class RtcNotificationContentFormatterTest {
|
||||
private lateinit var context: Context
|
||||
private lateinit var fakeMatrixClient: FakeMatrixClient
|
||||
private lateinit var formatter: RtcNotificationContentFormatter
|
||||
|
||||
@Before
|
||||
fun setup() {
|
||||
context = RuntimeEnvironment.getApplication() as Context
|
||||
fakeMatrixClient = FakeMatrixClient()
|
||||
val stringProvider = AndroidStringProvider(context.resources)
|
||||
formatter = RtcNotificationContentFormatter(
|
||||
fakeMatrixClient,
|
||||
stringProvider
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(qualifiers = "en")
|
||||
fun `Should not display declined info in rooms`() {
|
||||
val result = formatter.format(
|
||||
CallNotifyContent(
|
||||
CallIntent.VIDEO,
|
||||
declinedBy = listOf(A_USER_ID_2, A_USER_ID_3)
|
||||
),
|
||||
false
|
||||
)
|
||||
val expected = "Call started"
|
||||
assertThat(result.toString()).isEqualTo(expected)
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(qualifiers = "en")
|
||||
fun `Declined by me variant`() {
|
||||
val result = formatter.format(
|
||||
CallNotifyContent(
|
||||
CallIntent.VIDEO,
|
||||
declinedBy = listOf(fakeMatrixClient.sessionId)
|
||||
),
|
||||
true
|
||||
)
|
||||
val expected = "You declined a call"
|
||||
assertThat(result.toString()).isEqualTo(expected)
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(qualifiers = "en")
|
||||
fun `Declined by other variant`() {
|
||||
val result = formatter.format(
|
||||
CallNotifyContent(
|
||||
CallIntent.VIDEO,
|
||||
declinedBy = listOf(A_USER_ID_2)
|
||||
),
|
||||
true
|
||||
)
|
||||
val expected = "Call declined"
|
||||
assertThat(result.toString()).isEqualTo(expected)
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(qualifiers = "en")
|
||||
fun `Call started in DM`() {
|
||||
val result = formatter.format(
|
||||
CallNotifyContent(
|
||||
CallIntent.AUDIO,
|
||||
declinedBy = listOf()
|
||||
),
|
||||
true
|
||||
)
|
||||
val expected = "Call started"
|
||||
assertThat(result.toString()).isEqualTo(expected)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue