review: Add unit test for notificationFormater
This commit is contained in:
parent
2d6fc8263e
commit
f34c1fbf0a
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