Add Konsist test to check that assertThat is imported, and fix existing issues.
This commit is contained in:
parent
fdc6d9d912
commit
45883975c4
26 changed files with 677 additions and 662 deletions
|
|
@ -25,7 +25,7 @@ import com.bumble.appyx.core.plugin.Plugin
|
||||||
import com.bumble.appyx.navmodel.backstack.activeElement
|
import com.bumble.appyx.navmodel.backstack.activeElement
|
||||||
import com.bumble.appyx.testing.junit4.util.MainDispatcherRule
|
import com.bumble.appyx.testing.junit4.util.MainDispatcherRule
|
||||||
import com.bumble.appyx.testing.unit.common.helper.parentNodeTestHelper
|
import com.bumble.appyx.testing.unit.common.helper.parentNodeTestHelper
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.appnav.di.RoomComponentFactory
|
import io.element.android.appnav.di.RoomComponentFactory
|
||||||
import io.element.android.appnav.room.RoomLoadedFlowNode
|
import io.element.android.appnav.room.RoomLoadedFlowNode
|
||||||
import io.element.android.features.messages.api.MessagesEntryPoint
|
import io.element.android.features.messages.api.MessagesEntryPoint
|
||||||
|
|
@ -83,7 +83,7 @@ class RoomFlowNodeTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun build(): Node {
|
override fun build(): Node {
|
||||||
return node(buildContext) {}.also {
|
return node(buildContext) {}.also {
|
||||||
nodeId = it.id
|
nodeId = it.id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -122,10 +122,10 @@ class RoomFlowNodeTest {
|
||||||
val roomFlowNodeTestHelper = roomFlowNode.parentNodeTestHelper()
|
val roomFlowNodeTestHelper = roomFlowNode.parentNodeTestHelper()
|
||||||
|
|
||||||
// THEN
|
// THEN
|
||||||
Truth.assertThat(roomFlowNode.backstack.activeElement).isEqualTo(RoomLoadedFlowNode.NavTarget.Messages)
|
assertThat(roomFlowNode.backstack.activeElement).isEqualTo(RoomLoadedFlowNode.NavTarget.Messages)
|
||||||
roomFlowNodeTestHelper.assertChildHasLifecycle(RoomLoadedFlowNode.NavTarget.Messages, Lifecycle.State.CREATED)
|
roomFlowNodeTestHelper.assertChildHasLifecycle(RoomLoadedFlowNode.NavTarget.Messages, Lifecycle.State.CREATED)
|
||||||
val messagesNode = roomFlowNode.childNode(RoomLoadedFlowNode.NavTarget.Messages)!!
|
val messagesNode = roomFlowNode.childNode(RoomLoadedFlowNode.NavTarget.Messages)!!
|
||||||
Truth.assertThat(messagesNode.id).isEqualTo(fakeMessagesEntryPoint.nodeId)
|
assertThat(messagesNode.id).isEqualTo(fakeMessagesEntryPoint.nodeId)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -147,6 +147,6 @@ class RoomFlowNodeTest {
|
||||||
// THEN
|
// THEN
|
||||||
roomFlowNodeTestHelper.assertChildHasLifecycle(RoomLoadedFlowNode.NavTarget.RoomDetails, Lifecycle.State.CREATED)
|
roomFlowNodeTestHelper.assertChildHasLifecycle(RoomLoadedFlowNode.NavTarget.RoomDetails, Lifecycle.State.CREATED)
|
||||||
val roomDetailsNode = roomFlowNode.childNode(RoomLoadedFlowNode.NavTarget.RoomDetails)!!
|
val roomDetailsNode = roomFlowNode.childNode(RoomLoadedFlowNode.NavTarget.RoomDetails)!!
|
||||||
Truth.assertThat(roomDetailsNode.id).isEqualTo(fakeRoomDetailsEntryPoint.nodeId)
|
assertThat(roomDetailsNode.id).isEqualTo(fakeRoomDetailsEntryPoint.nodeId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
package io.element.android.appnav.room
|
package io.element.android.appnav.room
|
||||||
|
|
||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.matrix.api.roomlist.RoomList
|
import io.element.android.libraries.matrix.api.roomlist.RoomList
|
||||||
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
||||||
import io.element.android.libraries.matrix.test.A_SESSION_ID
|
import io.element.android.libraries.matrix.test.A_SESSION_ID
|
||||||
|
|
@ -39,8 +39,8 @@ class LoadingRoomStateFlowFactoryTest {
|
||||||
flowFactory
|
flowFactory
|
||||||
.create(this, A_ROOM_ID)
|
.create(this, A_ROOM_ID)
|
||||||
.test {
|
.test {
|
||||||
Truth.assertThat(awaitItem()).isEqualTo(LoadingRoomState.Loading)
|
assertThat(awaitItem()).isEqualTo(LoadingRoomState.Loading)
|
||||||
Truth.assertThat(awaitItem()).isEqualTo(LoadingRoomState.Loaded(room))
|
assertThat(awaitItem()).isEqualTo(LoadingRoomState.Loaded(room))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -53,10 +53,10 @@ class LoadingRoomStateFlowFactoryTest {
|
||||||
flowFactory
|
flowFactory
|
||||||
.create(this, A_ROOM_ID)
|
.create(this, A_ROOM_ID)
|
||||||
.test {
|
.test {
|
||||||
Truth.assertThat(awaitItem()).isEqualTo(LoadingRoomState.Loading)
|
assertThat(awaitItem()).isEqualTo(LoadingRoomState.Loading)
|
||||||
matrixClient.givenGetRoomResult(A_ROOM_ID, room)
|
matrixClient.givenGetRoomResult(A_ROOM_ID, room)
|
||||||
roomListService.postAllRoomsLoadingState(RoomList.LoadingState.Loaded(1))
|
roomListService.postAllRoomsLoadingState(RoomList.LoadingState.Loaded(1))
|
||||||
Truth.assertThat(awaitItem()).isEqualTo(LoadingRoomState.Loaded(room))
|
assertThat(awaitItem()).isEqualTo(LoadingRoomState.Loaded(room))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -68,12 +68,9 @@ class LoadingRoomStateFlowFactoryTest {
|
||||||
flowFactory
|
flowFactory
|
||||||
.create(this, A_ROOM_ID)
|
.create(this, A_ROOM_ID)
|
||||||
.test {
|
.test {
|
||||||
Truth.assertThat(awaitItem()).isEqualTo(LoadingRoomState.Loading)
|
assertThat(awaitItem()).isEqualTo(LoadingRoomState.Loading)
|
||||||
roomListService.postAllRoomsLoadingState(RoomList.LoadingState.Loaded(1))
|
roomListService.postAllRoomsLoadingState(RoomList.LoadingState.Loaded(1))
|
||||||
Truth.assertThat(awaitItem()).isEqualTo(LoadingRoomState.Error)
|
assertThat(awaitItem()).isEqualTo(LoadingRoomState.Error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package io.element.android.features.cachecleaner.impl
|
package io.element.android.features.cachecleaner.impl
|
||||||
|
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.tests.testutils.testCoroutineDispatchers
|
import io.element.android.tests.testutils.testCoroutineDispatchers
|
||||||
import kotlinx.coroutines.test.TestScope
|
import kotlinx.coroutines.test.TestScope
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
|
|
@ -46,9 +46,9 @@ class DefaultCacheCleanerTest {
|
||||||
// Check the files are gone but the sub dirs are not.
|
// Check the files are gone but the sub dirs are not.
|
||||||
DefaultCacheCleaner.SUBDIRS_TO_CLEANUP.forEach {
|
DefaultCacheCleaner.SUBDIRS_TO_CLEANUP.forEach {
|
||||||
File(temporaryFolder.root, it).apply {
|
File(temporaryFolder.root, it).apply {
|
||||||
Truth.assertThat(exists()).isTrue()
|
assertThat(exists()).isTrue()
|
||||||
Truth.assertThat(isDirectory).isTrue()
|
assertThat(isDirectory).isTrue()
|
||||||
Truth.assertThat(listFiles()).isEmpty()
|
assertThat(listFiles()).isEmpty()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,8 @@ import android.os.Build
|
||||||
import app.cash.molecule.RecompositionMode
|
import app.cash.molecule.RecompositionMode
|
||||||
import app.cash.molecule.moleculeFlow
|
import app.cash.molecule.moleculeFlow
|
||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.Truth
|
||||||
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.permissions.api.PermissionStateProvider
|
import io.element.android.libraries.permissions.api.PermissionStateProvider
|
||||||
import io.element.android.libraries.permissions.api.PermissionsPresenter
|
import io.element.android.libraries.permissions.api.PermissionsPresenter
|
||||||
import io.element.android.libraries.permissions.impl.FakePermissionStateProvider
|
import io.element.android.libraries.permissions.impl.FakePermissionStateProvider
|
||||||
|
|
@ -52,7 +53,7 @@ class NotificationsOptInPresenterTests {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.notificationsPermissionState.showDialog).isFalse()
|
assertThat(initialState.notificationsPermissionState.showDialog).isFalse()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -65,7 +66,7 @@ class NotificationsOptInPresenterTests {
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink(NotificationsOptInEvents.ContinueClicked)
|
initialState.eventSink(NotificationsOptInEvents.ContinueClicked)
|
||||||
Truth.assertThat(awaitItem().notificationsPermissionState.showDialog).isTrue()
|
assertThat(awaitItem().notificationsPermissionState.showDialog).isTrue()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -80,7 +81,7 @@ class NotificationsOptInPresenterTests {
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink(NotificationsOptInEvents.ContinueClicked)
|
initialState.eventSink(NotificationsOptInEvents.ContinueClicked)
|
||||||
Truth.assertThat(isFinished).isTrue()
|
assertThat(isFinished).isTrue()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -96,7 +97,7 @@ class NotificationsOptInPresenterTests {
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink(NotificationsOptInEvents.NotNowClicked)
|
initialState.eventSink(NotificationsOptInEvents.NotNowClicked)
|
||||||
Truth.assertThat(isFinished).isTrue()
|
assertThat(isFinished).isTrue()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -122,7 +123,7 @@ class NotificationsOptInPresenterTests {
|
||||||
val isPermissionDenied = runBlocking {
|
val isPermissionDenied = runBlocking {
|
||||||
permissionStateProvider.isPermissionDenied("notifications").first()
|
permissionStateProvider.isPermissionDenied("notifications").first()
|
||||||
}
|
}
|
||||||
Truth.assertThat(isPermissionDenied).isTrue()
|
assertThat(isPermissionDenied).isTrue()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ package io.element.android.features.invitelist.impl
|
||||||
import app.cash.molecule.RecompositionMode
|
import app.cash.molecule.RecompositionMode
|
||||||
import app.cash.molecule.moleculeFlow
|
import app.cash.molecule.moleculeFlow
|
||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.invitelist.api.SeenInvitesStore
|
import io.element.android.features.invitelist.api.SeenInvitesStore
|
||||||
import io.element.android.features.invitelist.test.FakeSeenInvitesStore
|
import io.element.android.features.invitelist.test.FakeSeenInvitesStore
|
||||||
import io.element.android.libraries.architecture.Async
|
import io.element.android.libraries.architecture.Async
|
||||||
|
|
@ -63,14 +63,14 @@ class InviteListPresenterTests {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.inviteList).isEmpty()
|
assertThat(initialState.inviteList).isEmpty()
|
||||||
|
|
||||||
roomListService.postInviteRooms(listOf(aRoomSummary()))
|
roomListService.postInviteRooms(listOf(aRoomSummary()))
|
||||||
|
|
||||||
val withInviteState = awaitItem()
|
val withInviteState = awaitItem()
|
||||||
Truth.assertThat(withInviteState.inviteList.size).isEqualTo(1)
|
assertThat(withInviteState.inviteList.size).isEqualTo(1)
|
||||||
Truth.assertThat(withInviteState.inviteList[0].roomId).isEqualTo(A_ROOM_ID)
|
assertThat(withInviteState.inviteList[0].roomId).isEqualTo(A_ROOM_ID)
|
||||||
Truth.assertThat(withInviteState.inviteList[0].roomName).isEqualTo(A_ROOM_NAME)
|
assertThat(withInviteState.inviteList[0].roomName).isEqualTo(A_ROOM_NAME)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -84,11 +84,11 @@ class InviteListPresenterTests {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val withInviteState = awaitItem()
|
val withInviteState = awaitItem()
|
||||||
Truth.assertThat(withInviteState.inviteList.size).isEqualTo(1)
|
assertThat(withInviteState.inviteList.size).isEqualTo(1)
|
||||||
Truth.assertThat(withInviteState.inviteList[0].roomId).isEqualTo(A_ROOM_ID)
|
assertThat(withInviteState.inviteList[0].roomId).isEqualTo(A_ROOM_ID)
|
||||||
Truth.assertThat(withInviteState.inviteList[0].roomAlias).isEqualTo(A_USER_ID.value)
|
assertThat(withInviteState.inviteList[0].roomAlias).isEqualTo(A_USER_ID.value)
|
||||||
Truth.assertThat(withInviteState.inviteList[0].roomName).isEqualTo(A_ROOM_NAME)
|
assertThat(withInviteState.inviteList[0].roomName).isEqualTo(A_ROOM_NAME)
|
||||||
Truth.assertThat(withInviteState.inviteList[0].roomAvatarData).isEqualTo(
|
assertThat(withInviteState.inviteList[0].roomAvatarData).isEqualTo(
|
||||||
AvatarData(
|
AvatarData(
|
||||||
id = A_USER_ID.value,
|
id = A_USER_ID.value,
|
||||||
name = A_USER_NAME,
|
name = A_USER_NAME,
|
||||||
|
|
@ -96,7 +96,7 @@ class InviteListPresenterTests {
|
||||||
size = AvatarSize.RoomInviteItem,
|
size = AvatarSize.RoomInviteItem,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
Truth.assertThat(withInviteState.inviteList[0].sender).isNull()
|
assertThat(withInviteState.inviteList[0].sender).isNull()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -110,10 +110,10 @@ class InviteListPresenterTests {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val withInviteState = awaitItem()
|
val withInviteState = awaitItem()
|
||||||
Truth.assertThat(withInviteState.inviteList.size).isEqualTo(1)
|
assertThat(withInviteState.inviteList.size).isEqualTo(1)
|
||||||
Truth.assertThat(withInviteState.inviteList[0].sender?.displayName).isEqualTo(A_USER_NAME)
|
assertThat(withInviteState.inviteList[0].sender?.displayName).isEqualTo(A_USER_NAME)
|
||||||
Truth.assertThat(withInviteState.inviteList[0].sender?.userId).isEqualTo(A_USER_ID)
|
assertThat(withInviteState.inviteList[0].sender?.userId).isEqualTo(A_USER_ID)
|
||||||
Truth.assertThat(withInviteState.inviteList[0].sender?.avatarData).isEqualTo(
|
assertThat(withInviteState.inviteList[0].sender?.avatarData).isEqualTo(
|
||||||
AvatarData(
|
AvatarData(
|
||||||
id = A_USER_ID.value,
|
id = A_USER_ID.value,
|
||||||
name = A_USER_NAME,
|
name = A_USER_NAME,
|
||||||
|
|
@ -142,11 +142,11 @@ class InviteListPresenterTests {
|
||||||
originalState.eventSink(InviteListEvents.DeclineInvite(originalState.inviteList[0]))
|
originalState.eventSink(InviteListEvents.DeclineInvite(originalState.inviteList[0]))
|
||||||
|
|
||||||
val newState = awaitItem()
|
val newState = awaitItem()
|
||||||
Truth.assertThat(newState.declineConfirmationDialog).isInstanceOf(InviteDeclineConfirmationDialog.Visible::class.java)
|
assertThat(newState.declineConfirmationDialog).isInstanceOf(InviteDeclineConfirmationDialog.Visible::class.java)
|
||||||
|
|
||||||
val confirmDialog = newState.declineConfirmationDialog as InviteDeclineConfirmationDialog.Visible
|
val confirmDialog = newState.declineConfirmationDialog as InviteDeclineConfirmationDialog.Visible
|
||||||
Truth.assertThat(confirmDialog.isDirect).isTrue()
|
assertThat(confirmDialog.isDirect).isTrue()
|
||||||
Truth.assertThat(confirmDialog.name).isEqualTo(A_ROOM_NAME)
|
assertThat(confirmDialog.name).isEqualTo(A_ROOM_NAME)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -163,11 +163,11 @@ class InviteListPresenterTests {
|
||||||
originalState.eventSink(InviteListEvents.DeclineInvite(originalState.inviteList[0]))
|
originalState.eventSink(InviteListEvents.DeclineInvite(originalState.inviteList[0]))
|
||||||
|
|
||||||
val newState = awaitItem()
|
val newState = awaitItem()
|
||||||
Truth.assertThat(newState.declineConfirmationDialog).isInstanceOf(InviteDeclineConfirmationDialog.Visible::class.java)
|
assertThat(newState.declineConfirmationDialog).isInstanceOf(InviteDeclineConfirmationDialog.Visible::class.java)
|
||||||
|
|
||||||
val confirmDialog = newState.declineConfirmationDialog as InviteDeclineConfirmationDialog.Visible
|
val confirmDialog = newState.declineConfirmationDialog as InviteDeclineConfirmationDialog.Visible
|
||||||
Truth.assertThat(confirmDialog.isDirect).isFalse()
|
assertThat(confirmDialog.isDirect).isFalse()
|
||||||
Truth.assertThat(confirmDialog.name).isEqualTo(A_ROOM_NAME)
|
assertThat(confirmDialog.name).isEqualTo(A_ROOM_NAME)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -188,7 +188,7 @@ class InviteListPresenterTests {
|
||||||
originalState.eventSink(InviteListEvents.CancelDeclineInvite)
|
originalState.eventSink(InviteListEvents.CancelDeclineInvite)
|
||||||
|
|
||||||
val newState = awaitItem()
|
val newState = awaitItem()
|
||||||
Truth.assertThat(newState.declineConfirmationDialog).isInstanceOf(InviteDeclineConfirmationDialog.Hidden::class.java)
|
assertThat(newState.declineConfirmationDialog).isInstanceOf(InviteDeclineConfirmationDialog.Hidden::class.java)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -215,7 +215,7 @@ class InviteListPresenterTests {
|
||||||
|
|
||||||
skipItems(2)
|
skipItems(2)
|
||||||
|
|
||||||
Truth.assertThat(fakeNotificationDrawerManager.getClearMembershipNotificationForRoomCount(client.sessionId, A_ROOM_ID)).isEqualTo(1)
|
assertThat(fakeNotificationDrawerManager.getClearMembershipNotificationForRoomCount(client.sessionId, A_ROOM_ID)).isEqualTo(1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -245,7 +245,7 @@ class InviteListPresenterTests {
|
||||||
|
|
||||||
val newState = awaitItem()
|
val newState = awaitItem()
|
||||||
|
|
||||||
Truth.assertThat(newState.declinedAction).isEqualTo(Async.Failure<Unit>(ex))
|
assertThat(newState.declinedAction).isEqualTo(Async.Failure<Unit>(ex))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -277,7 +277,7 @@ class InviteListPresenterTests {
|
||||||
|
|
||||||
val newState = awaitItem()
|
val newState = awaitItem()
|
||||||
|
|
||||||
Truth.assertThat(newState.declinedAction).isEqualTo(Async.Uninitialized)
|
assertThat(newState.declinedAction).isEqualTo(Async.Uninitialized)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -300,8 +300,8 @@ class InviteListPresenterTests {
|
||||||
|
|
||||||
val newState = awaitItem()
|
val newState = awaitItem()
|
||||||
|
|
||||||
Truth.assertThat(newState.acceptedAction).isEqualTo(Async.Success(A_ROOM_ID))
|
assertThat(newState.acceptedAction).isEqualTo(Async.Success(A_ROOM_ID))
|
||||||
Truth.assertThat(fakeNotificationDrawerManager.getClearMembershipNotificationForRoomCount(client.sessionId, A_ROOM_ID)).isEqualTo(1)
|
assertThat(fakeNotificationDrawerManager.getClearMembershipNotificationForRoomCount(client.sessionId, A_ROOM_ID)).isEqualTo(1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -323,7 +323,7 @@ class InviteListPresenterTests {
|
||||||
val originalState = awaitItem()
|
val originalState = awaitItem()
|
||||||
originalState.eventSink(InviteListEvents.AcceptInvite(originalState.inviteList[0]))
|
originalState.eventSink(InviteListEvents.AcceptInvite(originalState.inviteList[0]))
|
||||||
|
|
||||||
Truth.assertThat(awaitItem().acceptedAction).isEqualTo(Async.Failure<RoomId>(ex))
|
assertThat(awaitItem().acceptedAction).isEqualTo(Async.Failure<RoomId>(ex))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -350,7 +350,7 @@ class InviteListPresenterTests {
|
||||||
originalState.eventSink(InviteListEvents.DismissAcceptError)
|
originalState.eventSink(InviteListEvents.DismissAcceptError)
|
||||||
|
|
||||||
val newState = awaitItem()
|
val newState = awaitItem()
|
||||||
Truth.assertThat(newState.acceptedAction).isEqualTo(Async.Uninitialized)
|
assertThat(newState.acceptedAction).isEqualTo(Async.Uninitialized)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -375,19 +375,19 @@ class InviteListPresenterTests {
|
||||||
roomListService.postInviteRooms(listOf(aRoomSummary()))
|
roomListService.postInviteRooms(listOf(aRoomSummary()))
|
||||||
|
|
||||||
awaitItem()
|
awaitItem()
|
||||||
Truth.assertThat(store.getProvidedRoomIds()).isEqualTo(setOf(A_ROOM_ID))
|
assertThat(store.getProvidedRoomIds()).isEqualTo(setOf(A_ROOM_ID))
|
||||||
|
|
||||||
// When a second is added, both are saved
|
// When a second is added, both are saved
|
||||||
roomListService.postInviteRooms(listOf(aRoomSummary(), aRoomSummary(A_ROOM_ID_2)))
|
roomListService.postInviteRooms(listOf(aRoomSummary(), aRoomSummary(A_ROOM_ID_2)))
|
||||||
|
|
||||||
awaitItem()
|
awaitItem()
|
||||||
Truth.assertThat(store.getProvidedRoomIds()).isEqualTo(setOf(A_ROOM_ID, A_ROOM_ID_2))
|
assertThat(store.getProvidedRoomIds()).isEqualTo(setOf(A_ROOM_ID, A_ROOM_ID_2))
|
||||||
|
|
||||||
// When they're both dismissed, an empty set is saved
|
// When they're both dismissed, an empty set is saved
|
||||||
roomListService.postInviteRooms(listOf())
|
roomListService.postInviteRooms(listOf())
|
||||||
|
|
||||||
awaitItem()
|
awaitItem()
|
||||||
Truth.assertThat(store.getProvidedRoomIds()).isEmpty()
|
assertThat(store.getProvidedRoomIds()).isEmpty()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -413,11 +413,11 @@ class InviteListPresenterTests {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
|
|
||||||
val withInviteState = awaitItem()
|
val withInviteState = awaitItem()
|
||||||
Truth.assertThat(withInviteState.inviteList.size).isEqualTo(2)
|
assertThat(withInviteState.inviteList.size).isEqualTo(2)
|
||||||
Truth.assertThat(withInviteState.inviteList[0].roomId).isEqualTo(A_ROOM_ID)
|
assertThat(withInviteState.inviteList[0].roomId).isEqualTo(A_ROOM_ID)
|
||||||
Truth.assertThat(withInviteState.inviteList[0].isNew).isFalse()
|
assertThat(withInviteState.inviteList[0].isNew).isFalse()
|
||||||
Truth.assertThat(withInviteState.inviteList[1].roomId).isEqualTo(A_ROOM_ID_2)
|
assertThat(withInviteState.inviteList[1].roomId).isEqualTo(A_ROOM_ID_2)
|
||||||
Truth.assertThat(withInviteState.inviteList[1].isNew).isTrue()
|
assertThat(withInviteState.inviteList[1].isNew).isTrue()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ package io.element.android.features.location.impl.send
|
||||||
import app.cash.molecule.RecompositionMode
|
import app.cash.molecule.RecompositionMode
|
||||||
import app.cash.molecule.moleculeFlow
|
import app.cash.molecule.moleculeFlow
|
||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import im.vector.app.features.analytics.plan.Composer
|
import im.vector.app.features.analytics.plan.Composer
|
||||||
import io.element.android.features.location.api.Location
|
import io.element.android.features.location.api.Location
|
||||||
import io.element.android.features.location.impl.aPermissionsState
|
import io.element.android.features.location.impl.aPermissionsState
|
||||||
|
|
@ -77,16 +77,16 @@ class SendLocationPresenterTest {
|
||||||
}.test {
|
}.test {
|
||||||
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.permissionDialog).isEqualTo(SendLocationState.Dialog.None)
|
assertThat(initialState.permissionDialog).isEqualTo(SendLocationState.Dialog.None)
|
||||||
Truth.assertThat(initialState.mode).isEqualTo(SendLocationState.Mode.SenderLocation)
|
assertThat(initialState.mode).isEqualTo(SendLocationState.Mode.SenderLocation)
|
||||||
Truth.assertThat(initialState.hasLocationPermission).isEqualTo(true)
|
assertThat(initialState.hasLocationPermission).isEqualTo(true)
|
||||||
|
|
||||||
// Swipe the map to switch mode
|
// Swipe the map to switch mode
|
||||||
initialState.eventSink(SendLocationEvents.SwitchToPinLocationMode)
|
initialState.eventSink(SendLocationEvents.SwitchToPinLocationMode)
|
||||||
val myLocationState = awaitItem()
|
val myLocationState = awaitItem()
|
||||||
Truth.assertThat(myLocationState.permissionDialog).isEqualTo(SendLocationState.Dialog.None)
|
assertThat(myLocationState.permissionDialog).isEqualTo(SendLocationState.Dialog.None)
|
||||||
Truth.assertThat(myLocationState.mode).isEqualTo(SendLocationState.Mode.PinLocation)
|
assertThat(myLocationState.mode).isEqualTo(SendLocationState.Mode.PinLocation)
|
||||||
Truth.assertThat(myLocationState.hasLocationPermission).isEqualTo(true)
|
assertThat(myLocationState.hasLocationPermission).isEqualTo(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -104,16 +104,16 @@ class SendLocationPresenterTest {
|
||||||
}.test {
|
}.test {
|
||||||
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.permissionDialog).isEqualTo(SendLocationState.Dialog.None)
|
assertThat(initialState.permissionDialog).isEqualTo(SendLocationState.Dialog.None)
|
||||||
Truth.assertThat(initialState.mode).isEqualTo(SendLocationState.Mode.SenderLocation)
|
assertThat(initialState.mode).isEqualTo(SendLocationState.Mode.SenderLocation)
|
||||||
Truth.assertThat(initialState.hasLocationPermission).isEqualTo(true)
|
assertThat(initialState.hasLocationPermission).isEqualTo(true)
|
||||||
|
|
||||||
// Swipe the map to switch mode
|
// Swipe the map to switch mode
|
||||||
initialState.eventSink(SendLocationEvents.SwitchToPinLocationMode)
|
initialState.eventSink(SendLocationEvents.SwitchToPinLocationMode)
|
||||||
val myLocationState = awaitItem()
|
val myLocationState = awaitItem()
|
||||||
Truth.assertThat(myLocationState.permissionDialog).isEqualTo(SendLocationState.Dialog.None)
|
assertThat(myLocationState.permissionDialog).isEqualTo(SendLocationState.Dialog.None)
|
||||||
Truth.assertThat(myLocationState.mode).isEqualTo(SendLocationState.Mode.PinLocation)
|
assertThat(myLocationState.mode).isEqualTo(SendLocationState.Mode.PinLocation)
|
||||||
Truth.assertThat(myLocationState.hasLocationPermission).isEqualTo(true)
|
assertThat(myLocationState.hasLocationPermission).isEqualTo(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -130,16 +130,16 @@ class SendLocationPresenterTest {
|
||||||
sendLocationPresenter.present()
|
sendLocationPresenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.permissionDialog).isEqualTo(SendLocationState.Dialog.None)
|
assertThat(initialState.permissionDialog).isEqualTo(SendLocationState.Dialog.None)
|
||||||
Truth.assertThat(initialState.mode).isEqualTo(SendLocationState.Mode.PinLocation)
|
assertThat(initialState.mode).isEqualTo(SendLocationState.Mode.PinLocation)
|
||||||
Truth.assertThat(initialState.hasLocationPermission).isEqualTo(false)
|
assertThat(initialState.hasLocationPermission).isEqualTo(false)
|
||||||
|
|
||||||
// Click on the button to switch mode
|
// Click on the button to switch mode
|
||||||
initialState.eventSink(SendLocationEvents.SwitchToMyLocationMode)
|
initialState.eventSink(SendLocationEvents.SwitchToMyLocationMode)
|
||||||
val myLocationState = awaitItem()
|
val myLocationState = awaitItem()
|
||||||
Truth.assertThat(myLocationState.permissionDialog).isEqualTo(SendLocationState.Dialog.PermissionDenied)
|
assertThat(myLocationState.permissionDialog).isEqualTo(SendLocationState.Dialog.PermissionDenied)
|
||||||
Truth.assertThat(myLocationState.mode).isEqualTo(SendLocationState.Mode.PinLocation)
|
assertThat(myLocationState.mode).isEqualTo(SendLocationState.Mode.PinLocation)
|
||||||
Truth.assertThat(myLocationState.hasLocationPermission).isEqualTo(false)
|
assertThat(myLocationState.hasLocationPermission).isEqualTo(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -156,16 +156,16 @@ class SendLocationPresenterTest {
|
||||||
sendLocationPresenter.present()
|
sendLocationPresenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.permissionDialog).isEqualTo(SendLocationState.Dialog.None)
|
assertThat(initialState.permissionDialog).isEqualTo(SendLocationState.Dialog.None)
|
||||||
Truth.assertThat(initialState.mode).isEqualTo(SendLocationState.Mode.PinLocation)
|
assertThat(initialState.mode).isEqualTo(SendLocationState.Mode.PinLocation)
|
||||||
Truth.assertThat(initialState.hasLocationPermission).isEqualTo(false)
|
assertThat(initialState.hasLocationPermission).isEqualTo(false)
|
||||||
|
|
||||||
// Click on the button to switch mode
|
// Click on the button to switch mode
|
||||||
initialState.eventSink(SendLocationEvents.SwitchToMyLocationMode)
|
initialState.eventSink(SendLocationEvents.SwitchToMyLocationMode)
|
||||||
val myLocationState = awaitItem()
|
val myLocationState = awaitItem()
|
||||||
Truth.assertThat(myLocationState.permissionDialog).isEqualTo(SendLocationState.Dialog.PermissionRationale)
|
assertThat(myLocationState.permissionDialog).isEqualTo(SendLocationState.Dialog.PermissionRationale)
|
||||||
Truth.assertThat(myLocationState.mode).isEqualTo(SendLocationState.Mode.PinLocation)
|
assertThat(myLocationState.mode).isEqualTo(SendLocationState.Mode.PinLocation)
|
||||||
Truth.assertThat(myLocationState.hasLocationPermission).isEqualTo(false)
|
assertThat(myLocationState.hasLocationPermission).isEqualTo(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -187,16 +187,16 @@ class SendLocationPresenterTest {
|
||||||
// Click on the button to switch mode
|
// Click on the button to switch mode
|
||||||
initialState.eventSink(SendLocationEvents.SwitchToMyLocationMode)
|
initialState.eventSink(SendLocationEvents.SwitchToMyLocationMode)
|
||||||
val myLocationState = awaitItem()
|
val myLocationState = awaitItem()
|
||||||
Truth.assertThat(myLocationState.permissionDialog).isEqualTo(SendLocationState.Dialog.PermissionRationale)
|
assertThat(myLocationState.permissionDialog).isEqualTo(SendLocationState.Dialog.PermissionRationale)
|
||||||
Truth.assertThat(myLocationState.mode).isEqualTo(SendLocationState.Mode.PinLocation)
|
assertThat(myLocationState.mode).isEqualTo(SendLocationState.Mode.PinLocation)
|
||||||
Truth.assertThat(myLocationState.hasLocationPermission).isEqualTo(false)
|
assertThat(myLocationState.hasLocationPermission).isEqualTo(false)
|
||||||
|
|
||||||
// Dismiss the dialog
|
// Dismiss the dialog
|
||||||
myLocationState.eventSink(SendLocationEvents.DismissDialog)
|
myLocationState.eventSink(SendLocationEvents.DismissDialog)
|
||||||
val dialogDismissedState = awaitItem()
|
val dialogDismissedState = awaitItem()
|
||||||
Truth.assertThat(dialogDismissedState.permissionDialog).isEqualTo(SendLocationState.Dialog.None)
|
assertThat(dialogDismissedState.permissionDialog).isEqualTo(SendLocationState.Dialog.None)
|
||||||
Truth.assertThat(dialogDismissedState.mode).isEqualTo(SendLocationState.Mode.PinLocation)
|
assertThat(dialogDismissedState.mode).isEqualTo(SendLocationState.Mode.PinLocation)
|
||||||
Truth.assertThat(dialogDismissedState.hasLocationPermission).isEqualTo(false)
|
assertThat(dialogDismissedState.hasLocationPermission).isEqualTo(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -218,13 +218,13 @@ class SendLocationPresenterTest {
|
||||||
// Click on the button to switch mode
|
// Click on the button to switch mode
|
||||||
initialState.eventSink(SendLocationEvents.SwitchToMyLocationMode)
|
initialState.eventSink(SendLocationEvents.SwitchToMyLocationMode)
|
||||||
val myLocationState = awaitItem()
|
val myLocationState = awaitItem()
|
||||||
Truth.assertThat(myLocationState.permissionDialog).isEqualTo(SendLocationState.Dialog.PermissionRationale)
|
assertThat(myLocationState.permissionDialog).isEqualTo(SendLocationState.Dialog.PermissionRationale)
|
||||||
Truth.assertThat(myLocationState.mode).isEqualTo(SendLocationState.Mode.PinLocation)
|
assertThat(myLocationState.mode).isEqualTo(SendLocationState.Mode.PinLocation)
|
||||||
Truth.assertThat(myLocationState.hasLocationPermission).isEqualTo(false)
|
assertThat(myLocationState.hasLocationPermission).isEqualTo(false)
|
||||||
|
|
||||||
// Continue the dialog sends permission request to the permissions presenter
|
// Continue the dialog sends permission request to the permissions presenter
|
||||||
myLocationState.eventSink(SendLocationEvents.RequestPermissions)
|
myLocationState.eventSink(SendLocationEvents.RequestPermissions)
|
||||||
Truth.assertThat(permissionsPresenterFake.events.last()).isEqualTo(PermissionsEvents.RequestPermissions)
|
assertThat(permissionsPresenterFake.events.last()).isEqualTo(PermissionsEvents.RequestPermissions)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -246,16 +246,16 @@ class SendLocationPresenterTest {
|
||||||
// Click on the button to switch mode
|
// Click on the button to switch mode
|
||||||
initialState.eventSink(SendLocationEvents.SwitchToMyLocationMode)
|
initialState.eventSink(SendLocationEvents.SwitchToMyLocationMode)
|
||||||
val myLocationState = awaitItem()
|
val myLocationState = awaitItem()
|
||||||
Truth.assertThat(myLocationState.permissionDialog).isEqualTo(SendLocationState.Dialog.PermissionDenied)
|
assertThat(myLocationState.permissionDialog).isEqualTo(SendLocationState.Dialog.PermissionDenied)
|
||||||
Truth.assertThat(myLocationState.mode).isEqualTo(SendLocationState.Mode.PinLocation)
|
assertThat(myLocationState.mode).isEqualTo(SendLocationState.Mode.PinLocation)
|
||||||
Truth.assertThat(myLocationState.hasLocationPermission).isEqualTo(false)
|
assertThat(myLocationState.hasLocationPermission).isEqualTo(false)
|
||||||
|
|
||||||
// Dismiss the dialog
|
// Dismiss the dialog
|
||||||
myLocationState.eventSink(SendLocationEvents.DismissDialog)
|
myLocationState.eventSink(SendLocationEvents.DismissDialog)
|
||||||
val dialogDismissedState = awaitItem()
|
val dialogDismissedState = awaitItem()
|
||||||
Truth.assertThat(dialogDismissedState.permissionDialog).isEqualTo(SendLocationState.Dialog.None)
|
assertThat(dialogDismissedState.permissionDialog).isEqualTo(SendLocationState.Dialog.None)
|
||||||
Truth.assertThat(dialogDismissedState.mode).isEqualTo(SendLocationState.Mode.PinLocation)
|
assertThat(dialogDismissedState.mode).isEqualTo(SendLocationState.Mode.PinLocation)
|
||||||
Truth.assertThat(dialogDismissedState.hasLocationPermission).isEqualTo(false)
|
assertThat(dialogDismissedState.hasLocationPermission).isEqualTo(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -292,8 +292,8 @@ class SendLocationPresenterTest {
|
||||||
|
|
||||||
delay(1) // Wait for the coroutine to finish
|
delay(1) // Wait for the coroutine to finish
|
||||||
|
|
||||||
Truth.assertThat(fakeMatrixRoom.sentLocations.size).isEqualTo(1)
|
assertThat(fakeMatrixRoom.sentLocations.size).isEqualTo(1)
|
||||||
Truth.assertThat(fakeMatrixRoom.sentLocations.last()).isEqualTo(
|
assertThat(fakeMatrixRoom.sentLocations.last()).isEqualTo(
|
||||||
SendLocationInvocation(
|
SendLocationInvocation(
|
||||||
body = "Location was shared at geo:3.0,4.0;u=5.0",
|
body = "Location was shared at geo:3.0,4.0;u=5.0",
|
||||||
geoUri = "geo:3.0,4.0;u=5.0",
|
geoUri = "geo:3.0,4.0;u=5.0",
|
||||||
|
|
@ -303,8 +303,8 @@ class SendLocationPresenterTest {
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
Truth.assertThat(fakeAnalyticsService.capturedEvents.size).isEqualTo(1)
|
assertThat(fakeAnalyticsService.capturedEvents.size).isEqualTo(1)
|
||||||
Truth.assertThat(fakeAnalyticsService.capturedEvents.last()).isEqualTo(
|
assertThat(fakeAnalyticsService.capturedEvents.last()).isEqualTo(
|
||||||
Composer(
|
Composer(
|
||||||
inThread = false,
|
inThread = false,
|
||||||
isEditing = false,
|
isEditing = false,
|
||||||
|
|
@ -348,8 +348,8 @@ class SendLocationPresenterTest {
|
||||||
|
|
||||||
delay(1) // Wait for the coroutine to finish
|
delay(1) // Wait for the coroutine to finish
|
||||||
|
|
||||||
Truth.assertThat(fakeMatrixRoom.sentLocations.size).isEqualTo(1)
|
assertThat(fakeMatrixRoom.sentLocations.size).isEqualTo(1)
|
||||||
Truth.assertThat(fakeMatrixRoom.sentLocations.last()).isEqualTo(
|
assertThat(fakeMatrixRoom.sentLocations.last()).isEqualTo(
|
||||||
SendLocationInvocation(
|
SendLocationInvocation(
|
||||||
body = "Location was shared at geo:0.0,1.0",
|
body = "Location was shared at geo:0.0,1.0",
|
||||||
geoUri = "geo:0.0,1.0",
|
geoUri = "geo:0.0,1.0",
|
||||||
|
|
@ -359,8 +359,8 @@ class SendLocationPresenterTest {
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
Truth.assertThat(fakeAnalyticsService.capturedEvents.size).isEqualTo(1)
|
assertThat(fakeAnalyticsService.capturedEvents.size).isEqualTo(1)
|
||||||
Truth.assertThat(fakeAnalyticsService.capturedEvents.last()).isEqualTo(
|
assertThat(fakeAnalyticsService.capturedEvents.last()).isEqualTo(
|
||||||
Composer(
|
Composer(
|
||||||
inThread = false,
|
inThread = false,
|
||||||
isEditing = false,
|
isEditing = false,
|
||||||
|
|
@ -405,8 +405,8 @@ class SendLocationPresenterTest {
|
||||||
|
|
||||||
delay(1) // Wait for the coroutine to finish
|
delay(1) // Wait for the coroutine to finish
|
||||||
|
|
||||||
Truth.assertThat(fakeAnalyticsService.capturedEvents.size).isEqualTo(1)
|
assertThat(fakeAnalyticsService.capturedEvents.size).isEqualTo(1)
|
||||||
Truth.assertThat(fakeAnalyticsService.capturedEvents.last()).isEqualTo(
|
assertThat(fakeAnalyticsService.capturedEvents.last()).isEqualTo(
|
||||||
Composer(
|
Composer(
|
||||||
inThread = false,
|
inThread = false,
|
||||||
isEditing = true,
|
isEditing = true,
|
||||||
|
|
@ -444,8 +444,8 @@ class SendLocationPresenterTest {
|
||||||
dialogShownState.eventSink(SendLocationEvents.OpenAppSettings)
|
dialogShownState.eventSink(SendLocationEvents.OpenAppSettings)
|
||||||
val settingsOpenedState = awaitItem()
|
val settingsOpenedState = awaitItem()
|
||||||
|
|
||||||
Truth.assertThat(settingsOpenedState.permissionDialog).isEqualTo(SendLocationState.Dialog.None)
|
assertThat(settingsOpenedState.permissionDialog).isEqualTo(SendLocationState.Dialog.None)
|
||||||
Truth.assertThat(fakeLocationActions.openSettingsInvocationsCount).isEqualTo(1)
|
assertThat(fakeLocationActions.openSettingsInvocationsCount).isEqualTo(1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -455,7 +455,7 @@ class SendLocationPresenterTest {
|
||||||
sendLocationPresenter.present()
|
sendLocationPresenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.appName).isEqualTo("app name")
|
assertThat(initialState.appName).isEqualTo("app name")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ package io.element.android.features.location.impl.show
|
||||||
import app.cash.molecule.RecompositionMode
|
import app.cash.molecule.RecompositionMode
|
||||||
import app.cash.molecule.moleculeFlow
|
import app.cash.molecule.moleculeFlow
|
||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.location.api.Location
|
import io.element.android.features.location.api.Location
|
||||||
import io.element.android.features.location.impl.aPermissionsState
|
import io.element.android.features.location.impl.aPermissionsState
|
||||||
import io.element.android.features.location.impl.common.actions.FakeLocationActions
|
import io.element.android.features.location.impl.common.actions.FakeLocationActions
|
||||||
|
|
@ -66,10 +66,10 @@ class ShowLocationPresenterTest {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.location).isEqualTo(location)
|
assertThat(initialState.location).isEqualTo(location)
|
||||||
Truth.assertThat(initialState.description).isEqualTo(A_DESCRIPTION)
|
assertThat(initialState.description).isEqualTo(A_DESCRIPTION)
|
||||||
Truth.assertThat(initialState.hasLocationPermission).isEqualTo(false)
|
assertThat(initialState.hasLocationPermission).isEqualTo(false)
|
||||||
Truth.assertThat(initialState.isTrackMyLocation).isEqualTo(false)
|
assertThat(initialState.isTrackMyLocation).isEqualTo(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -86,10 +86,10 @@ class ShowLocationPresenterTest {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.location).isEqualTo(location)
|
assertThat(initialState.location).isEqualTo(location)
|
||||||
Truth.assertThat(initialState.description).isEqualTo(A_DESCRIPTION)
|
assertThat(initialState.description).isEqualTo(A_DESCRIPTION)
|
||||||
Truth.assertThat(initialState.hasLocationPermission).isEqualTo(false)
|
assertThat(initialState.hasLocationPermission).isEqualTo(false)
|
||||||
Truth.assertThat(initialState.isTrackMyLocation).isEqualTo(false)
|
assertThat(initialState.isTrackMyLocation).isEqualTo(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -101,10 +101,10 @@ class ShowLocationPresenterTest {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.location).isEqualTo(location)
|
assertThat(initialState.location).isEqualTo(location)
|
||||||
Truth.assertThat(initialState.description).isEqualTo(A_DESCRIPTION)
|
assertThat(initialState.description).isEqualTo(A_DESCRIPTION)
|
||||||
Truth.assertThat(initialState.hasLocationPermission).isEqualTo(true)
|
assertThat(initialState.hasLocationPermission).isEqualTo(true)
|
||||||
Truth.assertThat(initialState.isTrackMyLocation).isEqualTo(false)
|
assertThat(initialState.isTrackMyLocation).isEqualTo(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -116,10 +116,10 @@ class ShowLocationPresenterTest {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.location).isEqualTo(location)
|
assertThat(initialState.location).isEqualTo(location)
|
||||||
Truth.assertThat(initialState.description).isEqualTo(A_DESCRIPTION)
|
assertThat(initialState.description).isEqualTo(A_DESCRIPTION)
|
||||||
Truth.assertThat(initialState.hasLocationPermission).isEqualTo(true)
|
assertThat(initialState.hasLocationPermission).isEqualTo(true)
|
||||||
Truth.assertThat(initialState.isTrackMyLocation).isEqualTo(false)
|
assertThat(initialState.isTrackMyLocation).isEqualTo(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -131,8 +131,8 @@ class ShowLocationPresenterTest {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink(ShowLocationEvents.Share)
|
initialState.eventSink(ShowLocationEvents.Share)
|
||||||
|
|
||||||
Truth.assertThat(fakeLocationActions.sharedLocation).isEqualTo(location)
|
assertThat(fakeLocationActions.sharedLocation).isEqualTo(location)
|
||||||
Truth.assertThat(fakeLocationActions.sharedLabel).isEqualTo(A_DESCRIPTION)
|
assertThat(fakeLocationActions.sharedLabel).isEqualTo(A_DESCRIPTION)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -144,23 +144,23 @@ class ShowLocationPresenterTest {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.hasLocationPermission).isEqualTo(true)
|
assertThat(initialState.hasLocationPermission).isEqualTo(true)
|
||||||
Truth.assertThat(initialState.isTrackMyLocation).isEqualTo(false)
|
assertThat(initialState.isTrackMyLocation).isEqualTo(false)
|
||||||
|
|
||||||
initialState.eventSink(ShowLocationEvents.TrackMyLocation(true))
|
initialState.eventSink(ShowLocationEvents.TrackMyLocation(true))
|
||||||
val trackMyLocationState = awaitItem()
|
val trackMyLocationState = awaitItem()
|
||||||
|
|
||||||
delay(1)
|
delay(1)
|
||||||
|
|
||||||
Truth.assertThat(trackMyLocationState.hasLocationPermission).isEqualTo(true)
|
assertThat(trackMyLocationState.hasLocationPermission).isEqualTo(true)
|
||||||
Truth.assertThat(trackMyLocationState.isTrackMyLocation).isEqualTo(true)
|
assertThat(trackMyLocationState.isTrackMyLocation).isEqualTo(true)
|
||||||
|
|
||||||
// Swipe the map to switch mode
|
// Swipe the map to switch mode
|
||||||
initialState.eventSink(ShowLocationEvents.TrackMyLocation(false))
|
initialState.eventSink(ShowLocationEvents.TrackMyLocation(false))
|
||||||
val trackLocationDisabledState = awaitItem()
|
val trackLocationDisabledState = awaitItem()
|
||||||
Truth.assertThat(trackLocationDisabledState.permissionDialog).isEqualTo(ShowLocationState.Dialog.None)
|
assertThat(trackLocationDisabledState.permissionDialog).isEqualTo(ShowLocationState.Dialog.None)
|
||||||
Truth.assertThat(trackLocationDisabledState.isTrackMyLocation).isEqualTo(false)
|
assertThat(trackLocationDisabledState.isTrackMyLocation).isEqualTo(false)
|
||||||
Truth.assertThat(trackLocationDisabledState.hasLocationPermission).isEqualTo(true)
|
assertThat(trackLocationDisabledState.hasLocationPermission).isEqualTo(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -182,16 +182,16 @@ class ShowLocationPresenterTest {
|
||||||
// Click on the button to switch mode
|
// Click on the button to switch mode
|
||||||
initialState.eventSink(ShowLocationEvents.TrackMyLocation(true))
|
initialState.eventSink(ShowLocationEvents.TrackMyLocation(true))
|
||||||
val trackLocationState = awaitItem()
|
val trackLocationState = awaitItem()
|
||||||
Truth.assertThat(trackLocationState.permissionDialog).isEqualTo(ShowLocationState.Dialog.PermissionRationale)
|
assertThat(trackLocationState.permissionDialog).isEqualTo(ShowLocationState.Dialog.PermissionRationale)
|
||||||
Truth.assertThat(trackLocationState.isTrackMyLocation).isEqualTo(false)
|
assertThat(trackLocationState.isTrackMyLocation).isEqualTo(false)
|
||||||
Truth.assertThat(trackLocationState.hasLocationPermission).isEqualTo(false)
|
assertThat(trackLocationState.hasLocationPermission).isEqualTo(false)
|
||||||
|
|
||||||
// Dismiss the dialog
|
// Dismiss the dialog
|
||||||
initialState.eventSink(ShowLocationEvents.DismissDialog)
|
initialState.eventSink(ShowLocationEvents.DismissDialog)
|
||||||
val dialogDismissedState = awaitItem()
|
val dialogDismissedState = awaitItem()
|
||||||
Truth.assertThat(dialogDismissedState.permissionDialog).isEqualTo(ShowLocationState.Dialog.None)
|
assertThat(dialogDismissedState.permissionDialog).isEqualTo(ShowLocationState.Dialog.None)
|
||||||
Truth.assertThat(dialogDismissedState.isTrackMyLocation).isEqualTo(false)
|
assertThat(dialogDismissedState.isTrackMyLocation).isEqualTo(false)
|
||||||
Truth.assertThat(dialogDismissedState.hasLocationPermission).isEqualTo(false)
|
assertThat(dialogDismissedState.hasLocationPermission).isEqualTo(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -213,13 +213,13 @@ class ShowLocationPresenterTest {
|
||||||
// Click on the button to switch mode
|
// Click on the button to switch mode
|
||||||
initialState.eventSink(ShowLocationEvents.TrackMyLocation(true))
|
initialState.eventSink(ShowLocationEvents.TrackMyLocation(true))
|
||||||
val trackLocationState = awaitItem()
|
val trackLocationState = awaitItem()
|
||||||
Truth.assertThat(trackLocationState.permissionDialog).isEqualTo(ShowLocationState.Dialog.PermissionRationale)
|
assertThat(trackLocationState.permissionDialog).isEqualTo(ShowLocationState.Dialog.PermissionRationale)
|
||||||
Truth.assertThat(trackLocationState.isTrackMyLocation).isEqualTo(false)
|
assertThat(trackLocationState.isTrackMyLocation).isEqualTo(false)
|
||||||
Truth.assertThat(trackLocationState.hasLocationPermission).isEqualTo(false)
|
assertThat(trackLocationState.hasLocationPermission).isEqualTo(false)
|
||||||
|
|
||||||
// Continue the dialog sends permission request to the permissions presenter
|
// Continue the dialog sends permission request to the permissions presenter
|
||||||
trackLocationState.eventSink(ShowLocationEvents.RequestPermissions)
|
trackLocationState.eventSink(ShowLocationEvents.RequestPermissions)
|
||||||
Truth.assertThat(permissionsPresenterFake.events.last()).isEqualTo(PermissionsEvents.RequestPermissions)
|
assertThat(permissionsPresenterFake.events.last()).isEqualTo(PermissionsEvents.RequestPermissions)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -241,16 +241,16 @@ class ShowLocationPresenterTest {
|
||||||
// Click on the button to switch mode
|
// Click on the button to switch mode
|
||||||
initialState.eventSink(ShowLocationEvents.TrackMyLocation(true))
|
initialState.eventSink(ShowLocationEvents.TrackMyLocation(true))
|
||||||
val trackLocationState = awaitItem()
|
val trackLocationState = awaitItem()
|
||||||
Truth.assertThat(trackLocationState.permissionDialog).isEqualTo(ShowLocationState.Dialog.PermissionDenied)
|
assertThat(trackLocationState.permissionDialog).isEqualTo(ShowLocationState.Dialog.PermissionDenied)
|
||||||
Truth.assertThat(trackLocationState.isTrackMyLocation).isEqualTo(false)
|
assertThat(trackLocationState.isTrackMyLocation).isEqualTo(false)
|
||||||
Truth.assertThat(trackLocationState.hasLocationPermission).isEqualTo(false)
|
assertThat(trackLocationState.hasLocationPermission).isEqualTo(false)
|
||||||
|
|
||||||
// Dismiss the dialog
|
// Dismiss the dialog
|
||||||
initialState.eventSink(ShowLocationEvents.DismissDialog)
|
initialState.eventSink(ShowLocationEvents.DismissDialog)
|
||||||
val dialogDismissedState = awaitItem()
|
val dialogDismissedState = awaitItem()
|
||||||
Truth.assertThat(dialogDismissedState.permissionDialog).isEqualTo(ShowLocationState.Dialog.None)
|
assertThat(dialogDismissedState.permissionDialog).isEqualTo(ShowLocationState.Dialog.None)
|
||||||
Truth.assertThat(dialogDismissedState.isTrackMyLocation).isEqualTo(false)
|
assertThat(dialogDismissedState.isTrackMyLocation).isEqualTo(false)
|
||||||
Truth.assertThat(dialogDismissedState.hasLocationPermission).isEqualTo(false)
|
assertThat(dialogDismissedState.hasLocationPermission).isEqualTo(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -276,8 +276,8 @@ class ShowLocationPresenterTest {
|
||||||
dialogShownState.eventSink(ShowLocationEvents.OpenAppSettings)
|
dialogShownState.eventSink(ShowLocationEvents.OpenAppSettings)
|
||||||
val settingsOpenedState = awaitItem()
|
val settingsOpenedState = awaitItem()
|
||||||
|
|
||||||
Truth.assertThat(settingsOpenedState.permissionDialog).isEqualTo(ShowLocationState.Dialog.None)
|
assertThat(settingsOpenedState.permissionDialog).isEqualTo(ShowLocationState.Dialog.None)
|
||||||
Truth.assertThat(fakeLocationActions.openSettingsInvocationsCount).isEqualTo(1)
|
assertThat(fakeLocationActions.openSettingsInvocationsCount).isEqualTo(1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -287,7 +287,7 @@ class ShowLocationPresenterTest {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.appName).isEqualTo("app name")
|
assertThat(initialState.appName).isEqualTo("app name")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package io.element.android.features.messages.impl.timeline.factories.event
|
package io.element.android.features.messages.impl.timeline.factories.event
|
||||||
|
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemPollContent
|
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemPollContent
|
||||||
import io.element.android.features.poll.api.PollAnswerItem
|
import io.element.android.features.poll.api.PollAnswerItem
|
||||||
import io.element.android.libraries.featureflag.api.FeatureFlags
|
import io.element.android.libraries.featureflag.api.FeatureFlags
|
||||||
|
|
@ -55,13 +55,13 @@ internal class TimelineItemContentPollFactoryTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `Disclosed poll - not ended, no votes`() = runTest {
|
fun `Disclosed poll - not ended, no votes`() = runTest {
|
||||||
Truth.assertThat(factory.create(aPollContent(), eventId = null)).isEqualTo(aTimelineItemPollContent())
|
assertThat(factory.create(aPollContent(), eventId = null)).isEqualTo(aTimelineItemPollContent())
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `Disclosed poll - not ended, some votes, including one from current user`() = runTest {
|
fun `Disclosed poll - not ended, some votes, including one from current user`() = runTest {
|
||||||
val votes = MY_USER_WINNING_VOTES.mapKeys { it.key.id }.toImmutableMap()
|
val votes = MY_USER_WINNING_VOTES.mapKeys { it.key.id }.toImmutableMap()
|
||||||
Truth.assertThat(
|
assertThat(
|
||||||
factory.create(aPollContent(votes = votes), eventId = null)
|
factory.create(aPollContent(votes = votes), eventId = null)
|
||||||
)
|
)
|
||||||
.isEqualTo(
|
.isEqualTo(
|
||||||
|
|
@ -78,7 +78,7 @@ internal class TimelineItemContentPollFactoryTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `Disclosed poll - ended, no votes, no winner`() = runTest {
|
fun `Disclosed poll - ended, no votes, no winner`() = runTest {
|
||||||
Truth.assertThat(
|
assertThat(
|
||||||
factory.create(aPollContent(endTime = 1UL), eventId = null)
|
factory.create(aPollContent(endTime = 1UL), eventId = null)
|
||||||
).isEqualTo(
|
).isEqualTo(
|
||||||
aTimelineItemPollContent().let {
|
aTimelineItemPollContent().let {
|
||||||
|
|
@ -93,7 +93,7 @@ internal class TimelineItemContentPollFactoryTest {
|
||||||
@Test
|
@Test
|
||||||
fun `Disclosed poll - ended, some votes, including one from current user (winner)`() = runTest {
|
fun `Disclosed poll - ended, some votes, including one from current user (winner)`() = runTest {
|
||||||
val votes = MY_USER_WINNING_VOTES.mapKeys { it.key.id }.toImmutableMap()
|
val votes = MY_USER_WINNING_VOTES.mapKeys { it.key.id }.toImmutableMap()
|
||||||
Truth.assertThat(
|
assertThat(
|
||||||
factory.create(aPollContent(votes = votes, endTime = 1UL), eventId = null)
|
factory.create(aPollContent(votes = votes, endTime = 1UL), eventId = null)
|
||||||
)
|
)
|
||||||
.isEqualTo(
|
.isEqualTo(
|
||||||
|
|
@ -112,7 +112,7 @@ internal class TimelineItemContentPollFactoryTest {
|
||||||
@Test
|
@Test
|
||||||
fun `Disclosed poll - ended, some votes, including one from current user (not winner) and two winning votes`() = runTest {
|
fun `Disclosed poll - ended, some votes, including one from current user (not winner) and two winning votes`() = runTest {
|
||||||
val votes = OTHER_WINNING_VOTES.mapKeys { it.key.id }.toImmutableMap()
|
val votes = OTHER_WINNING_VOTES.mapKeys { it.key.id }.toImmutableMap()
|
||||||
Truth.assertThat(
|
assertThat(
|
||||||
factory.create(aPollContent(votes = votes, endTime = 1UL), eventId = null)
|
factory.create(aPollContent(votes = votes, endTime = 1UL), eventId = null)
|
||||||
)
|
)
|
||||||
.isEqualTo(
|
.isEqualTo(
|
||||||
|
|
@ -130,7 +130,7 @@ internal class TimelineItemContentPollFactoryTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `Undisclosed poll - not ended, no votes`() = runTest {
|
fun `Undisclosed poll - not ended, no votes`() = runTest {
|
||||||
Truth.assertThat(
|
assertThat(
|
||||||
factory.create(aPollContent(PollKind.Undisclosed).copy(), eventId = null)
|
factory.create(aPollContent(PollKind.Undisclosed).copy(), eventId = null)
|
||||||
).isEqualTo(
|
).isEqualTo(
|
||||||
aTimelineItemPollContent(pollKind = PollKind.Undisclosed).let {
|
aTimelineItemPollContent(pollKind = PollKind.Undisclosed).let {
|
||||||
|
|
@ -142,7 +142,7 @@ internal class TimelineItemContentPollFactoryTest {
|
||||||
@Test
|
@Test
|
||||||
fun `Undisclosed poll - not ended, some votes, including one from current user`() = runTest {
|
fun `Undisclosed poll - not ended, some votes, including one from current user`() = runTest {
|
||||||
val votes = MY_USER_WINNING_VOTES.mapKeys { it.key.id }.toImmutableMap()
|
val votes = MY_USER_WINNING_VOTES.mapKeys { it.key.id }.toImmutableMap()
|
||||||
Truth.assertThat(
|
assertThat(
|
||||||
factory.create(aPollContent(pollKind = PollKind.Undisclosed, votes = votes), eventId = null)
|
factory.create(aPollContent(pollKind = PollKind.Undisclosed, votes = votes), eventId = null)
|
||||||
)
|
)
|
||||||
.isEqualTo(
|
.isEqualTo(
|
||||||
|
|
@ -160,7 +160,7 @@ internal class TimelineItemContentPollFactoryTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `Undisclosed poll - ended, no votes, no winner`() = runTest {
|
fun `Undisclosed poll - ended, no votes, no winner`() = runTest {
|
||||||
Truth.assertThat(
|
assertThat(
|
||||||
factory.create(aPollContent(pollKind = PollKind.Undisclosed, endTime = 1UL), eventId = null)
|
factory.create(aPollContent(pollKind = PollKind.Undisclosed, endTime = 1UL), eventId = null)
|
||||||
).isEqualTo(
|
).isEqualTo(
|
||||||
aTimelineItemPollContent().let {
|
aTimelineItemPollContent().let {
|
||||||
|
|
@ -178,7 +178,7 @@ internal class TimelineItemContentPollFactoryTest {
|
||||||
@Test
|
@Test
|
||||||
fun `Undisclosed poll - ended, some votes, including one from current user (winner)`() = runTest {
|
fun `Undisclosed poll - ended, some votes, including one from current user (winner)`() = runTest {
|
||||||
val votes = MY_USER_WINNING_VOTES.mapKeys { it.key.id }.toImmutableMap()
|
val votes = MY_USER_WINNING_VOTES.mapKeys { it.key.id }.toImmutableMap()
|
||||||
Truth.assertThat(
|
assertThat(
|
||||||
factory.create(aPollContent(pollKind = PollKind.Undisclosed, votes = votes, endTime = 1UL), eventId = null)
|
factory.create(aPollContent(pollKind = PollKind.Undisclosed, votes = votes, endTime = 1UL), eventId = null)
|
||||||
)
|
)
|
||||||
.isEqualTo(
|
.isEqualTo(
|
||||||
|
|
@ -198,7 +198,7 @@ internal class TimelineItemContentPollFactoryTest {
|
||||||
@Test
|
@Test
|
||||||
fun `Undisclosed poll - ended, some votes, including one from current user (not winner) and two winning votes`() = runTest {
|
fun `Undisclosed poll - ended, some votes, including one from current user (not winner) and two winning votes`() = runTest {
|
||||||
val votes = OTHER_WINNING_VOTES.mapKeys { it.key.id }.toImmutableMap()
|
val votes = OTHER_WINNING_VOTES.mapKeys { it.key.id }.toImmutableMap()
|
||||||
Truth.assertThat(
|
assertThat(
|
||||||
factory.create(aPollContent(PollKind.Undisclosed).copy(votes = votes, endTime = 1UL), eventId = null)
|
factory.create(aPollContent(PollKind.Undisclosed).copy(votes = votes, endTime = 1UL), eventId = null)
|
||||||
)
|
)
|
||||||
.isEqualTo(
|
.isEqualTo(
|
||||||
|
|
@ -217,10 +217,10 @@ internal class TimelineItemContentPollFactoryTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `eventId is populated`() = runTest {
|
fun `eventId is populated`() = runTest {
|
||||||
Truth.assertThat(factory.create(aPollContent(), eventId = null))
|
assertThat(factory.create(aPollContent(), eventId = null))
|
||||||
.isEqualTo(aTimelineItemPollContent(eventId = null))
|
.isEqualTo(aTimelineItemPollContent(eventId = null))
|
||||||
|
|
||||||
Truth.assertThat(factory.create(aPollContent(), eventId = AN_EVENT_ID))
|
assertThat(factory.create(aPollContent(), eventId = AN_EVENT_ID))
|
||||||
.isEqualTo(aTimelineItemPollContent(eventId = AN_EVENT_ID))
|
.isEqualTo(aTimelineItemPollContent(eventId = AN_EVENT_ID))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
import app.cash.molecule.RecompositionMode
|
import app.cash.molecule.RecompositionMode
|
||||||
import app.cash.molecule.moleculeFlow
|
import app.cash.molecule.moleculeFlow
|
||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.matrix.api.core.EventId
|
import io.element.android.libraries.matrix.api.core.EventId
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
import io.element.android.libraries.matrix.api.media.AudioInfo
|
import io.element.android.libraries.matrix.api.media.AudioInfo
|
||||||
|
|
@ -59,7 +59,7 @@ class InReplyToMetadataKtTest {
|
||||||
anInReplyToDetails(eventContent = aMessageContent()).metadata()
|
anInReplyToDetails(eventContent = aMessageContent()).metadata()
|
||||||
}.test {
|
}.test {
|
||||||
awaitItem().let {
|
awaitItem().let {
|
||||||
Truth.assertThat(it).isEqualTo(InReplyToMetadata.Text("textContent"))
|
assertThat(it).isEqualTo(InReplyToMetadata.Text("textContent"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -78,7 +78,7 @@ class InReplyToMetadataKtTest {
|
||||||
).metadata()
|
).metadata()
|
||||||
}.test {
|
}.test {
|
||||||
awaitItem().let {
|
awaitItem().let {
|
||||||
Truth.assertThat(it).isEqualTo(
|
assertThat(it).isEqualTo(
|
||||||
InReplyToMetadata.Thumbnail(
|
InReplyToMetadata.Thumbnail(
|
||||||
attachmentThumbnailInfo = AttachmentThumbnailInfo(
|
attachmentThumbnailInfo = AttachmentThumbnailInfo(
|
||||||
thumbnailSource = aMediaSource(),
|
thumbnailSource = aMediaSource(),
|
||||||
|
|
@ -115,7 +115,7 @@ class InReplyToMetadataKtTest {
|
||||||
).metadata()
|
).metadata()
|
||||||
}.test {
|
}.test {
|
||||||
awaitItem().let {
|
awaitItem().let {
|
||||||
Truth.assertThat(it).isEqualTo(
|
assertThat(it).isEqualTo(
|
||||||
InReplyToMetadata.Thumbnail(
|
InReplyToMetadata.Thumbnail(
|
||||||
attachmentThumbnailInfo = AttachmentThumbnailInfo(
|
attachmentThumbnailInfo = AttachmentThumbnailInfo(
|
||||||
thumbnailSource = aMediaSource(),
|
thumbnailSource = aMediaSource(),
|
||||||
|
|
@ -148,7 +148,7 @@ class InReplyToMetadataKtTest {
|
||||||
).metadata()
|
).metadata()
|
||||||
}.test {
|
}.test {
|
||||||
awaitItem().let {
|
awaitItem().let {
|
||||||
Truth.assertThat(it).isEqualTo(
|
assertThat(it).isEqualTo(
|
||||||
InReplyToMetadata.Thumbnail(
|
InReplyToMetadata.Thumbnail(
|
||||||
attachmentThumbnailInfo = AttachmentThumbnailInfo(
|
attachmentThumbnailInfo = AttachmentThumbnailInfo(
|
||||||
thumbnailSource = aMediaSource(),
|
thumbnailSource = aMediaSource(),
|
||||||
|
|
@ -180,7 +180,7 @@ class InReplyToMetadataKtTest {
|
||||||
).metadata()
|
).metadata()
|
||||||
}.test {
|
}.test {
|
||||||
awaitItem().let {
|
awaitItem().let {
|
||||||
Truth.assertThat(it).isEqualTo(
|
assertThat(it).isEqualTo(
|
||||||
InReplyToMetadata.Thumbnail(
|
InReplyToMetadata.Thumbnail(
|
||||||
attachmentThumbnailInfo = AttachmentThumbnailInfo(
|
attachmentThumbnailInfo = AttachmentThumbnailInfo(
|
||||||
textContent = "body",
|
textContent = "body",
|
||||||
|
|
@ -209,7 +209,7 @@ class InReplyToMetadataKtTest {
|
||||||
}
|
}
|
||||||
}.test {
|
}.test {
|
||||||
awaitItem().let {
|
awaitItem().let {
|
||||||
Truth.assertThat(it).isEqualTo(
|
assertThat(it).isEqualTo(
|
||||||
InReplyToMetadata.Thumbnail(
|
InReplyToMetadata.Thumbnail(
|
||||||
attachmentThumbnailInfo = AttachmentThumbnailInfo(
|
attachmentThumbnailInfo = AttachmentThumbnailInfo(
|
||||||
thumbnailSource = null,
|
thumbnailSource = null,
|
||||||
|
|
@ -240,7 +240,7 @@ class InReplyToMetadataKtTest {
|
||||||
}
|
}
|
||||||
}.test {
|
}.test {
|
||||||
awaitItem().let {
|
awaitItem().let {
|
||||||
Truth.assertThat(it).isEqualTo(
|
assertThat(it).isEqualTo(
|
||||||
InReplyToMetadata.Thumbnail(
|
InReplyToMetadata.Thumbnail(
|
||||||
attachmentThumbnailInfo = AttachmentThumbnailInfo(
|
attachmentThumbnailInfo = AttachmentThumbnailInfo(
|
||||||
thumbnailSource = null,
|
thumbnailSource = null,
|
||||||
|
|
@ -262,7 +262,7 @@ class InReplyToMetadataKtTest {
|
||||||
).metadata()
|
).metadata()
|
||||||
}.test {
|
}.test {
|
||||||
awaitItem().let {
|
awaitItem().let {
|
||||||
Truth.assertThat(it).isEqualTo(
|
assertThat(it).isEqualTo(
|
||||||
InReplyToMetadata.Thumbnail(
|
InReplyToMetadata.Thumbnail(
|
||||||
attachmentThumbnailInfo = AttachmentThumbnailInfo(
|
attachmentThumbnailInfo = AttachmentThumbnailInfo(
|
||||||
thumbnailSource = null,
|
thumbnailSource = null,
|
||||||
|
|
@ -284,7 +284,7 @@ class InReplyToMetadataKtTest {
|
||||||
).metadata()
|
).metadata()
|
||||||
}.test {
|
}.test {
|
||||||
awaitItem().let {
|
awaitItem().let {
|
||||||
Truth.assertThat(it).isEqualTo(null)
|
assertThat(it).isEqualTo(null)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package io.element.android.features.messages.impl.voicemessages.timeline
|
package io.element.android.features.messages.impl.voicemessages.timeline
|
||||||
|
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.core.mimetype.MimeTypes
|
import io.element.android.libraries.core.mimetype.MimeTypes
|
||||||
import io.element.android.libraries.matrix.api.media.MatrixMediaLoader
|
import io.element.android.libraries.matrix.api.media.MatrixMediaLoader
|
||||||
import io.element.android.libraries.matrix.api.media.MediaSource
|
import io.element.android.libraries.matrix.api.media.MediaSource
|
||||||
|
|
@ -43,10 +43,10 @@ class DefaultVoiceMessageMediaRepoTest {
|
||||||
)
|
)
|
||||||
|
|
||||||
repo.getMediaFile().let { result ->
|
repo.getMediaFile().let { result ->
|
||||||
Truth.assertThat(result.isSuccess).isTrue()
|
assertThat(result.isSuccess).isTrue()
|
||||||
result.getOrThrow().let { file ->
|
result.getOrThrow().let { file ->
|
||||||
Truth.assertThat(file.path).isEqualTo(temporaryFolder.cachedFilePath)
|
assertThat(file.path).isEqualTo(temporaryFolder.cachedFilePath)
|
||||||
Truth.assertThat(file.exists()).isTrue()
|
assertThat(file.exists()).isTrue()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -62,9 +62,9 @@ class DefaultVoiceMessageMediaRepoTest {
|
||||||
)
|
)
|
||||||
|
|
||||||
repo.getMediaFile().let { result ->
|
repo.getMediaFile().let { result ->
|
||||||
Truth.assertThat(result.isFailure).isTrue()
|
assertThat(result.isFailure).isTrue()
|
||||||
result.exceptionOrNull()!!.let { exception ->
|
result.exceptionOrNull()!!.let { exception ->
|
||||||
Truth.assertThat(exception).isInstanceOf(RuntimeException::class.java)
|
assertThat(exception).isInstanceOf(RuntimeException::class.java)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -87,9 +87,9 @@ class DefaultVoiceMessageMediaRepoTest {
|
||||||
)
|
)
|
||||||
|
|
||||||
repo.getMediaFile().let { result ->
|
repo.getMediaFile().let { result ->
|
||||||
Truth.assertThat(result.isFailure).isTrue()
|
assertThat(result.isFailure).isTrue()
|
||||||
result.exceptionOrNull()?.let { exception ->
|
result.exceptionOrNull()?.let { exception ->
|
||||||
Truth.assertThat(exception).apply {
|
assertThat(exception).apply {
|
||||||
isInstanceOf(IllegalStateException::class.java)
|
isInstanceOf(IllegalStateException::class.java)
|
||||||
hasMessageThat().isEqualTo("Failed to move file to cache.")
|
hasMessageThat().isEqualTo("Failed to move file to cache.")
|
||||||
}
|
}
|
||||||
|
|
@ -109,10 +109,10 @@ class DefaultVoiceMessageMediaRepoTest {
|
||||||
)
|
)
|
||||||
|
|
||||||
repo.getMediaFile().let { result ->
|
repo.getMediaFile().let { result ->
|
||||||
Truth.assertThat(result.isSuccess).isTrue()
|
assertThat(result.isSuccess).isTrue()
|
||||||
result.getOrThrow().let { file ->
|
result.getOrThrow().let { file ->
|
||||||
Truth.assertThat(file.path).isEqualTo(temporaryFolder.cachedFilePath)
|
assertThat(file.path).isEqualTo(temporaryFolder.cachedFilePath)
|
||||||
Truth.assertThat(file.exists()).isTrue()
|
assertThat(file.exists()).isTrue()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -124,10 +124,10 @@ class DefaultVoiceMessageMediaRepoTest {
|
||||||
mxcUri = INVALID_MXC_URI,
|
mxcUri = INVALID_MXC_URI,
|
||||||
)
|
)
|
||||||
repo.getMediaFile().let { result ->
|
repo.getMediaFile().let { result ->
|
||||||
Truth.assertThat(result.isFailure).isTrue()
|
assertThat(result.isFailure).isTrue()
|
||||||
result.exceptionOrNull()!!.let { exception ->
|
result.exceptionOrNull()!!.let { exception ->
|
||||||
Truth.assertThat(exception).isInstanceOf(RuntimeException::class.java)
|
assertThat(exception).isInstanceOf(RuntimeException::class.java)
|
||||||
Truth.assertThat(exception).hasMessageThat().isEqualTo("Invalid mxcUri.")
|
assertThat(exception).hasMessageThat().isEqualTo("Invalid mxcUri.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ package io.element.android.features.messages.impl.voicemessages.timeline
|
||||||
|
|
||||||
import app.cash.turbine.TurbineTestContext
|
import app.cash.turbine.TurbineTestContext
|
||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.core.mimetype.MimeTypes
|
import io.element.android.libraries.core.mimetype.MimeTypes
|
||||||
import io.element.android.libraries.matrix.api.core.EventId
|
import io.element.android.libraries.matrix.api.core.EventId
|
||||||
import io.element.android.libraries.matrix.api.media.MediaSource
|
import io.element.android.libraries.matrix.api.media.MediaSource
|
||||||
|
|
@ -42,7 +42,7 @@ class DefaultVoiceMessagePlayerTest {
|
||||||
val player = createDefaultVoiceMessagePlayer()
|
val player = createDefaultVoiceMessagePlayer()
|
||||||
player.state.test {
|
player.state.test {
|
||||||
matchInitialState()
|
matchInitialState()
|
||||||
Truth.assertThat(player.prepare().isSuccess).isTrue()
|
assertThat(player.prepare().isSuccess).isTrue()
|
||||||
matchReadyState()
|
matchReadyState()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -56,7 +56,7 @@ class DefaultVoiceMessagePlayerTest {
|
||||||
)
|
)
|
||||||
player.state.test {
|
player.state.test {
|
||||||
matchInitialState()
|
matchInitialState()
|
||||||
Truth.assertThat(player.prepare().isFailure).isTrue()
|
assertThat(player.prepare().isFailure).isTrue()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -67,7 +67,7 @@ class DefaultVoiceMessagePlayerTest {
|
||||||
)
|
)
|
||||||
player.state.test {
|
player.state.test {
|
||||||
matchInitialState()
|
matchInitialState()
|
||||||
Truth.assertThat(player.prepare().isFailure).isTrue()
|
assertThat(player.prepare().isFailure).isTrue()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -76,12 +76,12 @@ class DefaultVoiceMessagePlayerTest {
|
||||||
val player = createDefaultVoiceMessagePlayer()
|
val player = createDefaultVoiceMessagePlayer()
|
||||||
player.state.test {
|
player.state.test {
|
||||||
matchInitialState()
|
matchInitialState()
|
||||||
Truth.assertThat(player.prepare().isSuccess).isTrue()
|
assertThat(player.prepare().isSuccess).isTrue()
|
||||||
matchReadyState()
|
matchReadyState()
|
||||||
player.play()
|
player.play()
|
||||||
awaitItem().let {
|
awaitItem().let {
|
||||||
Truth.assertThat(it.isPlaying).isEqualTo(true)
|
assertThat(it.isPlaying).isEqualTo(true)
|
||||||
Truth.assertThat(it.currentPosition).isEqualTo(1000)
|
assertThat(it.currentPosition).isEqualTo(1000)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -96,15 +96,15 @@ class DefaultVoiceMessagePlayerTest {
|
||||||
)
|
)
|
||||||
player.state.test {
|
player.state.test {
|
||||||
matchInitialState()
|
matchInitialState()
|
||||||
Truth.assertThat(player.prepare().isSuccess).isTrue()
|
assertThat(player.prepare().isSuccess).isTrue()
|
||||||
matchReadyState(fakeTotalDurationMs = 1000)
|
matchReadyState(fakeTotalDurationMs = 1000)
|
||||||
player.play()
|
player.play()
|
||||||
awaitItem().let {
|
awaitItem().let {
|
||||||
Truth.assertThat(it.isReady).isEqualTo(false)
|
assertThat(it.isReady).isEqualTo(false)
|
||||||
Truth.assertThat(it.isPlaying).isEqualTo(false)
|
assertThat(it.isPlaying).isEqualTo(false)
|
||||||
Truth.assertThat(it.isEnded).isEqualTo(true)
|
assertThat(it.isEnded).isEqualTo(true)
|
||||||
Truth.assertThat(it.currentPosition).isEqualTo(1000)
|
assertThat(it.currentPosition).isEqualTo(1000)
|
||||||
Truth.assertThat(it.duration).isEqualTo(1000)
|
assertThat(it.duration).isEqualTo(1000)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -121,72 +121,72 @@ class DefaultVoiceMessagePlayerTest {
|
||||||
// Play player1 until the end.
|
// Play player1 until the end.
|
||||||
player1.state.test {
|
player1.state.test {
|
||||||
matchInitialState()
|
matchInitialState()
|
||||||
Truth.assertThat(player1.prepare().isSuccess).isTrue()
|
assertThat(player1.prepare().isSuccess).isTrue()
|
||||||
matchReadyState(1_000L)
|
matchReadyState(1_000L)
|
||||||
player1.play()
|
player1.play()
|
||||||
awaitItem().let { // it plays until the end.
|
awaitItem().let { // it plays until the end.
|
||||||
Truth.assertThat(it.isReady).isEqualTo(false)
|
assertThat(it.isReady).isEqualTo(false)
|
||||||
Truth.assertThat(it.isPlaying).isEqualTo(false)
|
assertThat(it.isPlaying).isEqualTo(false)
|
||||||
Truth.assertThat(it.isEnded).isEqualTo(true)
|
assertThat(it.isEnded).isEqualTo(true)
|
||||||
Truth.assertThat(it.currentPosition).isEqualTo(1000)
|
assertThat(it.currentPosition).isEqualTo(1000)
|
||||||
Truth.assertThat(it.duration).isEqualTo(1000)
|
assertThat(it.duration).isEqualTo(1000)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Play player2 until the end.
|
// Play player2 until the end.
|
||||||
player2.state.test {
|
player2.state.test {
|
||||||
matchInitialState()
|
matchInitialState()
|
||||||
Truth.assertThat(player2.prepare().isSuccess).isTrue()
|
assertThat(player2.prepare().isSuccess).isTrue()
|
||||||
awaitItem().let { // Additional spurious state due to MediaPlayer owner change.
|
awaitItem().let { // Additional spurious state due to MediaPlayer owner change.
|
||||||
Truth.assertThat(it.isReady).isEqualTo(false)
|
assertThat(it.isReady).isEqualTo(false)
|
||||||
Truth.assertThat(it.isPlaying).isEqualTo(false)
|
assertThat(it.isPlaying).isEqualTo(false)
|
||||||
Truth.assertThat(it.isEnded).isEqualTo(true)
|
assertThat(it.isEnded).isEqualTo(true)
|
||||||
Truth.assertThat(it.currentPosition).isEqualTo(1000)
|
assertThat(it.currentPosition).isEqualTo(1000)
|
||||||
Truth.assertThat(it.duration).isEqualTo(1000)
|
assertThat(it.duration).isEqualTo(1000)
|
||||||
}
|
}
|
||||||
awaitItem().let {// Additional spurious state due to MediaPlayer owner change.
|
awaitItem().let {// Additional spurious state due to MediaPlayer owner change.
|
||||||
Truth.assertThat(it.isReady).isEqualTo(false)
|
assertThat(it.isReady).isEqualTo(false)
|
||||||
Truth.assertThat(it.isPlaying).isEqualTo(false)
|
assertThat(it.isPlaying).isEqualTo(false)
|
||||||
Truth.assertThat(it.isEnded).isEqualTo(false)
|
assertThat(it.isEnded).isEqualTo(false)
|
||||||
Truth.assertThat(it.currentPosition).isEqualTo(0)
|
assertThat(it.currentPosition).isEqualTo(0)
|
||||||
Truth.assertThat(it.duration).isEqualTo(null)
|
assertThat(it.duration).isEqualTo(null)
|
||||||
}
|
}
|
||||||
matchReadyState(1_000L)
|
matchReadyState(1_000L)
|
||||||
player2.play()
|
player2.play()
|
||||||
awaitItem().let { // it plays until the end.
|
awaitItem().let { // it plays until the end.
|
||||||
Truth.assertThat(it.isReady).isEqualTo(false)
|
assertThat(it.isReady).isEqualTo(false)
|
||||||
Truth.assertThat(it.isPlaying).isEqualTo(false)
|
assertThat(it.isPlaying).isEqualTo(false)
|
||||||
Truth.assertThat(it.isEnded).isEqualTo(true)
|
assertThat(it.isEnded).isEqualTo(true)
|
||||||
Truth.assertThat(it.currentPosition).isEqualTo(1000)
|
assertThat(it.currentPosition).isEqualTo(1000)
|
||||||
Truth.assertThat(it.duration).isEqualTo(1000)
|
assertThat(it.duration).isEqualTo(1000)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Play player1 again.
|
// Play player1 again.
|
||||||
player1.state.test {
|
player1.state.test {
|
||||||
awaitItem().let {// Last previous state/
|
awaitItem().let {// Last previous state/
|
||||||
Truth.assertThat(it.isReady).isEqualTo(false)
|
assertThat(it.isReady).isEqualTo(false)
|
||||||
Truth.assertThat(it.isPlaying).isEqualTo(false)
|
assertThat(it.isPlaying).isEqualTo(false)
|
||||||
Truth.assertThat(it.isEnded).isEqualTo(true)
|
assertThat(it.isEnded).isEqualTo(true)
|
||||||
Truth.assertThat(it.currentPosition).isEqualTo(1000)
|
assertThat(it.currentPosition).isEqualTo(1000)
|
||||||
Truth.assertThat(it.duration).isEqualTo(1000)
|
assertThat(it.duration).isEqualTo(1000)
|
||||||
}
|
}
|
||||||
Truth.assertThat(player1.prepare().isSuccess).isTrue()
|
assertThat(player1.prepare().isSuccess).isTrue()
|
||||||
awaitItem().let {// Additional spurious state due to MediaPlayer owner change.
|
awaitItem().let {// Additional spurious state due to MediaPlayer owner change.
|
||||||
Truth.assertThat(it.isReady).isEqualTo(false)
|
assertThat(it.isReady).isEqualTo(false)
|
||||||
Truth.assertThat(it.isPlaying).isEqualTo(false)
|
assertThat(it.isPlaying).isEqualTo(false)
|
||||||
Truth.assertThat(it.isEnded).isEqualTo(false)
|
assertThat(it.isEnded).isEqualTo(false)
|
||||||
Truth.assertThat(it.currentPosition).isEqualTo(0)
|
assertThat(it.currentPosition).isEqualTo(0)
|
||||||
Truth.assertThat(it.duration).isEqualTo(null)
|
assertThat(it.duration).isEqualTo(null)
|
||||||
}
|
}
|
||||||
matchReadyState(1_000L)
|
matchReadyState(1_000L)
|
||||||
player1.play()
|
player1.play()
|
||||||
awaitItem().let { // it played again until the end.
|
awaitItem().let { // it played again until the end.
|
||||||
Truth.assertThat(it.isReady).isEqualTo(false)
|
assertThat(it.isReady).isEqualTo(false)
|
||||||
Truth.assertThat(it.isPlaying).isEqualTo(false)
|
assertThat(it.isPlaying).isEqualTo(false)
|
||||||
Truth.assertThat(it.isEnded).isEqualTo(true)
|
assertThat(it.isEnded).isEqualTo(true)
|
||||||
Truth.assertThat(it.currentPosition).isEqualTo(1000)
|
assertThat(it.currentPosition).isEqualTo(1000)
|
||||||
Truth.assertThat(it.duration).isEqualTo(1000)
|
assertThat(it.duration).isEqualTo(1000)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -196,14 +196,14 @@ class DefaultVoiceMessagePlayerTest {
|
||||||
val player = createDefaultVoiceMessagePlayer()
|
val player = createDefaultVoiceMessagePlayer()
|
||||||
player.state.test {
|
player.state.test {
|
||||||
matchInitialState()
|
matchInitialState()
|
||||||
Truth.assertThat(player.prepare().isSuccess).isTrue()
|
assertThat(player.prepare().isSuccess).isTrue()
|
||||||
matchReadyState()
|
matchReadyState()
|
||||||
player.play()
|
player.play()
|
||||||
skipItems(1) // skip play state
|
skipItems(1) // skip play state
|
||||||
player.pause()
|
player.pause()
|
||||||
awaitItem().let {
|
awaitItem().let {
|
||||||
Truth.assertThat(it.isPlaying).isEqualTo(false)
|
assertThat(it.isPlaying).isEqualTo(false)
|
||||||
Truth.assertThat(it.currentPosition).isEqualTo(1000)
|
assertThat(it.currentPosition).isEqualTo(1000)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -213,7 +213,7 @@ class DefaultVoiceMessagePlayerTest {
|
||||||
val player = createDefaultVoiceMessagePlayer()
|
val player = createDefaultVoiceMessagePlayer()
|
||||||
player.state.test {
|
player.state.test {
|
||||||
matchInitialState()
|
matchInitialState()
|
||||||
Truth.assertThat(player.prepare().isSuccess).isTrue()
|
assertThat(player.prepare().isSuccess).isTrue()
|
||||||
matchReadyState()
|
matchReadyState()
|
||||||
player.play()
|
player.play()
|
||||||
skipItems(1) // skip play state
|
skipItems(1) // skip play state
|
||||||
|
|
@ -221,8 +221,8 @@ class DefaultVoiceMessagePlayerTest {
|
||||||
skipItems(1) // skip pause state
|
skipItems(1) // skip pause state
|
||||||
player.play()
|
player.play()
|
||||||
awaitItem().let {
|
awaitItem().let {
|
||||||
Truth.assertThat(it.isPlaying).isEqualTo(true)
|
assertThat(it.isPlaying).isEqualTo(true)
|
||||||
Truth.assertThat(it.currentPosition).isEqualTo(2000)
|
assertThat(it.currentPosition).isEqualTo(2000)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -234,19 +234,19 @@ class DefaultVoiceMessagePlayerTest {
|
||||||
matchInitialState()
|
matchInitialState()
|
||||||
player.seekTo(2000)
|
player.seekTo(2000)
|
||||||
awaitItem().let {
|
awaitItem().let {
|
||||||
Truth.assertThat(it.isReady).isEqualTo(false)
|
assertThat(it.isReady).isEqualTo(false)
|
||||||
Truth.assertThat(it.isPlaying).isEqualTo(false)
|
assertThat(it.isPlaying).isEqualTo(false)
|
||||||
Truth.assertThat(it.isEnded).isEqualTo(false)
|
assertThat(it.isEnded).isEqualTo(false)
|
||||||
Truth.assertThat(it.currentPosition).isEqualTo(2000)
|
assertThat(it.currentPosition).isEqualTo(2000)
|
||||||
Truth.assertThat(it.duration).isEqualTo(null)
|
assertThat(it.duration).isEqualTo(null)
|
||||||
}
|
}
|
||||||
Truth.assertThat(player.prepare().isSuccess).isTrue()
|
assertThat(player.prepare().isSuccess).isTrue()
|
||||||
awaitItem().let {
|
awaitItem().let {
|
||||||
Truth.assertThat(it.isReady).isEqualTo(true)
|
assertThat(it.isReady).isEqualTo(true)
|
||||||
Truth.assertThat(it.isPlaying).isEqualTo(false)
|
assertThat(it.isPlaying).isEqualTo(false)
|
||||||
Truth.assertThat(it.isEnded).isEqualTo(false)
|
assertThat(it.isEnded).isEqualTo(false)
|
||||||
Truth.assertThat(it.currentPosition).isEqualTo(2000)
|
assertThat(it.currentPosition).isEqualTo(2000)
|
||||||
Truth.assertThat(it.duration).isEqualTo(FAKE_TOTAL_DURATION_MS)
|
assertThat(it.duration).isEqualTo(FAKE_TOTAL_DURATION_MS)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -256,15 +256,15 @@ class DefaultVoiceMessagePlayerTest {
|
||||||
val player = createDefaultVoiceMessagePlayer()
|
val player = createDefaultVoiceMessagePlayer()
|
||||||
player.state.test {
|
player.state.test {
|
||||||
matchInitialState()
|
matchInitialState()
|
||||||
Truth.assertThat(player.prepare().isSuccess).isTrue()
|
assertThat(player.prepare().isSuccess).isTrue()
|
||||||
matchReadyState()
|
matchReadyState()
|
||||||
player.seekTo(2000)
|
player.seekTo(2000)
|
||||||
awaitItem().let {
|
awaitItem().let {
|
||||||
Truth.assertThat(it.isReady).isEqualTo(true)
|
assertThat(it.isReady).isEqualTo(true)
|
||||||
Truth.assertThat(it.isPlaying).isEqualTo(false)
|
assertThat(it.isPlaying).isEqualTo(false)
|
||||||
Truth.assertThat(it.isEnded).isEqualTo(false)
|
assertThat(it.isEnded).isEqualTo(false)
|
||||||
Truth.assertThat(it.currentPosition).isEqualTo(2000)
|
assertThat(it.currentPosition).isEqualTo(2000)
|
||||||
Truth.assertThat(it.duration).isEqualTo(FAKE_TOTAL_DURATION_MS)
|
assertThat(it.duration).isEqualTo(FAKE_TOTAL_DURATION_MS)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -296,11 +296,11 @@ private const val MXC_URI = "mxc://matrix.org/1234567890abcdefg"
|
||||||
|
|
||||||
private suspend fun TurbineTestContext<VoiceMessagePlayer.State>.matchInitialState() {
|
private suspend fun TurbineTestContext<VoiceMessagePlayer.State>.matchInitialState() {
|
||||||
awaitItem().let {
|
awaitItem().let {
|
||||||
Truth.assertThat(it.isReady).isEqualTo(false)
|
assertThat(it.isReady).isEqualTo(false)
|
||||||
Truth.assertThat(it.isPlaying).isEqualTo(false)
|
assertThat(it.isPlaying).isEqualTo(false)
|
||||||
Truth.assertThat(it.isEnded).isEqualTo(false)
|
assertThat(it.isEnded).isEqualTo(false)
|
||||||
Truth.assertThat(it.currentPosition).isEqualTo(0)
|
assertThat(it.currentPosition).isEqualTo(0)
|
||||||
Truth.assertThat(it.duration).isEqualTo(null)
|
assertThat(it.duration).isEqualTo(null)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -308,10 +308,10 @@ private suspend fun TurbineTestContext<VoiceMessagePlayer.State>.matchReadyState
|
||||||
fakeTotalDurationMs: Long = FAKE_TOTAL_DURATION_MS,
|
fakeTotalDurationMs: Long = FAKE_TOTAL_DURATION_MS,
|
||||||
) {
|
) {
|
||||||
awaitItem().let {
|
awaitItem().let {
|
||||||
Truth.assertThat(it.isReady).isEqualTo(true)
|
assertThat(it.isReady).isEqualTo(true)
|
||||||
Truth.assertThat(it.isPlaying).isEqualTo(false)
|
assertThat(it.isPlaying).isEqualTo(false)
|
||||||
Truth.assertThat(it.isEnded).isEqualTo(false)
|
assertThat(it.isEnded).isEqualTo(false)
|
||||||
Truth.assertThat(it.currentPosition).isEqualTo(0)
|
assertThat(it.currentPosition).isEqualTo(0)
|
||||||
Truth.assertThat(it.duration).isEqualTo(fakeTotalDurationMs)
|
assertThat(it.duration).isEqualTo(fakeTotalDurationMs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package io.element.android.features.messages.impl.voicemessages.timeline
|
package io.element.android.features.messages.impl.voicemessages.timeline
|
||||||
|
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.core.mimetype.MimeTypes
|
import io.element.android.libraries.core.mimetype.MimeTypes
|
||||||
import io.element.android.libraries.matrix.api.core.EventId
|
import io.element.android.libraries.matrix.api.core.EventId
|
||||||
import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem
|
import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem
|
||||||
|
|
@ -44,13 +44,13 @@ class RedactedVoiceMessageManagerTest {
|
||||||
}
|
}
|
||||||
val manager = aDefaultRedactedVoiceMessageManager(mediaPlayer = mediaPlayer)
|
val manager = aDefaultRedactedVoiceMessageManager(mediaPlayer = mediaPlayer)
|
||||||
|
|
||||||
Truth.assertThat(mediaPlayer.state.value.mediaId).isEqualTo(AN_EVENT_ID.value)
|
assertThat(mediaPlayer.state.value.mediaId).isEqualTo(AN_EVENT_ID.value)
|
||||||
Truth.assertThat(mediaPlayer.state.value.isPlaying).isTrue()
|
assertThat(mediaPlayer.state.value.isPlaying).isTrue()
|
||||||
|
|
||||||
manager.onEachMatrixTimelineItem(aRedactedMatrixTimeline(AN_EVENT_ID_2))
|
manager.onEachMatrixTimelineItem(aRedactedMatrixTimeline(AN_EVENT_ID_2))
|
||||||
|
|
||||||
Truth.assertThat(mediaPlayer.state.value.mediaId).isEqualTo(AN_EVENT_ID.value)
|
assertThat(mediaPlayer.state.value.mediaId).isEqualTo(AN_EVENT_ID.value)
|
||||||
Truth.assertThat(mediaPlayer.state.value.isPlaying).isTrue()
|
assertThat(mediaPlayer.state.value.isPlaying).isTrue()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -61,13 +61,13 @@ class RedactedVoiceMessageManagerTest {
|
||||||
}
|
}
|
||||||
val manager = aDefaultRedactedVoiceMessageManager(mediaPlayer = mediaPlayer)
|
val manager = aDefaultRedactedVoiceMessageManager(mediaPlayer = mediaPlayer)
|
||||||
|
|
||||||
Truth.assertThat(mediaPlayer.state.value.mediaId).isEqualTo(AN_EVENT_ID.value)
|
assertThat(mediaPlayer.state.value.mediaId).isEqualTo(AN_EVENT_ID.value)
|
||||||
Truth.assertThat(mediaPlayer.state.value.isPlaying).isTrue()
|
assertThat(mediaPlayer.state.value.isPlaying).isTrue()
|
||||||
|
|
||||||
manager.onEachMatrixTimelineItem(aRedactedMatrixTimeline(AN_EVENT_ID))
|
manager.onEachMatrixTimelineItem(aRedactedMatrixTimeline(AN_EVENT_ID))
|
||||||
|
|
||||||
Truth.assertThat(mediaPlayer.state.value.mediaId).isEqualTo(AN_EVENT_ID.value)
|
assertThat(mediaPlayer.state.value.mediaId).isEqualTo(AN_EVENT_ID.value)
|
||||||
Truth.assertThat(mediaPlayer.state.value.isPlaying).isFalse()
|
assertThat(mediaPlayer.state.value.isPlaying).isFalse()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ package io.element.android.features.messages.impl.voicemessages.timeline
|
||||||
import app.cash.molecule.RecompositionMode
|
import app.cash.molecule.RecompositionMode
|
||||||
import app.cash.molecule.moleculeFlow
|
import app.cash.molecule.moleculeFlow
|
||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemVoiceContent
|
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemVoiceContent
|
||||||
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemVoiceContent
|
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemVoiceContent
|
||||||
import io.element.android.features.messages.impl.voicemessages.VoiceMessageException
|
import io.element.android.features.messages.impl.voicemessages.VoiceMessageException
|
||||||
|
|
@ -39,9 +39,9 @@ class VoiceMessagePresenterTest {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
awaitItem().let {
|
awaitItem().let {
|
||||||
Truth.assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
||||||
Truth.assertThat(it.progress).isEqualTo(0f)
|
assertThat(it.progress).isEqualTo(0f)
|
||||||
Truth.assertThat(it.time).isEqualTo("1:01")
|
assertThat(it.time).isEqualTo("1:01")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -56,27 +56,27 @@ class VoiceMessagePresenterTest {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem().also {
|
val initialState = awaitItem().also {
|
||||||
Truth.assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
||||||
Truth.assertThat(it.progress).isEqualTo(0f)
|
assertThat(it.progress).isEqualTo(0f)
|
||||||
Truth.assertThat(it.time).isEqualTo("0:02")
|
assertThat(it.time).isEqualTo("0:02")
|
||||||
}
|
}
|
||||||
|
|
||||||
initialState.eventSink(VoiceMessageEvents.PlayPause)
|
initialState.eventSink(VoiceMessageEvents.PlayPause)
|
||||||
|
|
||||||
awaitItem().also {
|
awaitItem().also {
|
||||||
Truth.assertThat(it.button).isEqualTo(VoiceMessageState.Button.Downloading)
|
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Downloading)
|
||||||
Truth.assertThat(it.progress).isEqualTo(0f)
|
assertThat(it.progress).isEqualTo(0f)
|
||||||
Truth.assertThat(it.time).isEqualTo("0:02")
|
assertThat(it.time).isEqualTo("0:02")
|
||||||
}
|
}
|
||||||
awaitItem().also {
|
awaitItem().also {
|
||||||
Truth.assertThat(it.button).isEqualTo(VoiceMessageState.Button.Downloading)
|
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Downloading)
|
||||||
Truth.assertThat(it.progress).isEqualTo(0f)
|
assertThat(it.progress).isEqualTo(0f)
|
||||||
Truth.assertThat(it.time).isEqualTo("0:00")
|
assertThat(it.time).isEqualTo("0:00")
|
||||||
}
|
}
|
||||||
awaitItem().also {
|
awaitItem().also {
|
||||||
Truth.assertThat(it.button).isEqualTo(VoiceMessageState.Button.Pause)
|
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Pause)
|
||||||
Truth.assertThat(it.progress).isEqualTo(0.5f)
|
assertThat(it.progress).isEqualTo(0.5f)
|
||||||
Truth.assertThat(it.time).isEqualTo("0:01")
|
assertThat(it.time).isEqualTo("0:01")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -94,25 +94,25 @@ class VoiceMessagePresenterTest {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem().also {
|
val initialState = awaitItem().also {
|
||||||
Truth.assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
||||||
Truth.assertThat(it.progress).isEqualTo(0f)
|
assertThat(it.progress).isEqualTo(0f)
|
||||||
Truth.assertThat(it.time).isEqualTo("0:02")
|
assertThat(it.time).isEqualTo("0:02")
|
||||||
}
|
}
|
||||||
|
|
||||||
initialState.eventSink(VoiceMessageEvents.PlayPause)
|
initialState.eventSink(VoiceMessageEvents.PlayPause)
|
||||||
|
|
||||||
awaitItem().also {
|
awaitItem().also {
|
||||||
Truth.assertThat(it.button).isEqualTo(VoiceMessageState.Button.Downloading)
|
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Downloading)
|
||||||
Truth.assertThat(it.progress).isEqualTo(0f)
|
assertThat(it.progress).isEqualTo(0f)
|
||||||
Truth.assertThat(it.time).isEqualTo("0:02")
|
assertThat(it.time).isEqualTo("0:02")
|
||||||
}
|
}
|
||||||
awaitItem().also {
|
awaitItem().also {
|
||||||
Truth.assertThat(it.button).isEqualTo(VoiceMessageState.Button.Retry)
|
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Retry)
|
||||||
Truth.assertThat(it.progress).isEqualTo(0f)
|
assertThat(it.progress).isEqualTo(0f)
|
||||||
Truth.assertThat(it.time).isEqualTo("0:02")
|
assertThat(it.time).isEqualTo("0:02")
|
||||||
}
|
}
|
||||||
analyticsService.trackedErrors.first().also {
|
analyticsService.trackedErrors.first().also {
|
||||||
Truth.assertThat(it).apply {
|
assertThat(it).apply {
|
||||||
isInstanceOf(VoiceMessageException.PlayMessageError::class.java)
|
isInstanceOf(VoiceMessageException.PlayMessageError::class.java)
|
||||||
hasMessageThat().isEqualTo("Error while trying to play voice message")
|
hasMessageThat().isEqualTo("Error while trying to play voice message")
|
||||||
}
|
}
|
||||||
|
|
@ -130,25 +130,25 @@ class VoiceMessagePresenterTest {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem().also {
|
val initialState = awaitItem().also {
|
||||||
Truth.assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
||||||
Truth.assertThat(it.progress).isEqualTo(0f)
|
assertThat(it.progress).isEqualTo(0f)
|
||||||
Truth.assertThat(it.time).isEqualTo("0:02")
|
assertThat(it.time).isEqualTo("0:02")
|
||||||
}
|
}
|
||||||
|
|
||||||
initialState.eventSink(VoiceMessageEvents.PlayPause)
|
initialState.eventSink(VoiceMessageEvents.PlayPause)
|
||||||
skipItems(2) // skip downloading states
|
skipItems(2) // skip downloading states
|
||||||
|
|
||||||
val playingState = awaitItem().also {
|
val playingState = awaitItem().also {
|
||||||
Truth.assertThat(it.button).isEqualTo(VoiceMessageState.Button.Pause)
|
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Pause)
|
||||||
Truth.assertThat(it.progress).isEqualTo(0.5f)
|
assertThat(it.progress).isEqualTo(0.5f)
|
||||||
Truth.assertThat(it.time).isEqualTo("0:01")
|
assertThat(it.time).isEqualTo("0:01")
|
||||||
}
|
}
|
||||||
|
|
||||||
playingState.eventSink(VoiceMessageEvents.PlayPause)
|
playingState.eventSink(VoiceMessageEvents.PlayPause)
|
||||||
awaitItem().also {
|
awaitItem().also {
|
||||||
Truth.assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
||||||
Truth.assertThat(it.progress).isEqualTo(0.5f)
|
assertThat(it.progress).isEqualTo(0.5f)
|
||||||
Truth.assertThat(it.time).isEqualTo("0:01")
|
assertThat(it.time).isEqualTo("0:01")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -162,9 +162,9 @@ class VoiceMessagePresenterTest {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
awaitItem().also {
|
awaitItem().also {
|
||||||
Truth.assertThat(it.button).isEqualTo(VoiceMessageState.Button.Disabled)
|
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Disabled)
|
||||||
Truth.assertThat(it.progress).isEqualTo(0f)
|
assertThat(it.progress).isEqualTo(0f)
|
||||||
Truth.assertThat(it.time).isEqualTo("1:01")
|
assertThat(it.time).isEqualTo("1:01")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -179,17 +179,17 @@ class VoiceMessagePresenterTest {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem().also {
|
val initialState = awaitItem().also {
|
||||||
Truth.assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
||||||
Truth.assertThat(it.progress).isEqualTo(0f)
|
assertThat(it.progress).isEqualTo(0f)
|
||||||
Truth.assertThat(it.time).isEqualTo("0:10")
|
assertThat(it.time).isEqualTo("0:10")
|
||||||
}
|
}
|
||||||
|
|
||||||
initialState.eventSink(VoiceMessageEvents.Seek(0.5f))
|
initialState.eventSink(VoiceMessageEvents.Seek(0.5f))
|
||||||
|
|
||||||
awaitItem().also {
|
awaitItem().also {
|
||||||
Truth.assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
||||||
Truth.assertThat(it.progress).isEqualTo(0.5f)
|
assertThat(it.progress).isEqualTo(0.5f)
|
||||||
Truth.assertThat(it.time).isEqualTo("0:05")
|
assertThat(it.time).isEqualTo("0:05")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -203,9 +203,9 @@ class VoiceMessagePresenterTest {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem().also {
|
val initialState = awaitItem().also {
|
||||||
Truth.assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
||||||
Truth.assertThat(it.progress).isEqualTo(0f)
|
assertThat(it.progress).isEqualTo(0f)
|
||||||
Truth.assertThat(it.time).isEqualTo("0:10")
|
assertThat(it.time).isEqualTo("0:10")
|
||||||
}
|
}
|
||||||
|
|
||||||
initialState.eventSink(VoiceMessageEvents.PlayPause)
|
initialState.eventSink(VoiceMessageEvents.PlayPause)
|
||||||
|
|
@ -213,17 +213,17 @@ class VoiceMessagePresenterTest {
|
||||||
skipItems(2) // skip downloading states
|
skipItems(2) // skip downloading states
|
||||||
|
|
||||||
awaitItem().also {
|
awaitItem().also {
|
||||||
Truth.assertThat(it.button).isEqualTo(VoiceMessageState.Button.Pause)
|
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Pause)
|
||||||
Truth.assertThat(it.progress).isEqualTo(0.1f)
|
assertThat(it.progress).isEqualTo(0.1f)
|
||||||
Truth.assertThat(it.time).isEqualTo("0:01")
|
assertThat(it.time).isEqualTo("0:01")
|
||||||
}
|
}
|
||||||
|
|
||||||
initialState.eventSink(VoiceMessageEvents.Seek(0.5f))
|
initialState.eventSink(VoiceMessageEvents.Seek(0.5f))
|
||||||
|
|
||||||
awaitItem().also {
|
awaitItem().also {
|
||||||
Truth.assertThat(it.button).isEqualTo(VoiceMessageState.Button.Pause)
|
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Pause)
|
||||||
Truth.assertThat(it.progress).isEqualTo(0.5f)
|
assertThat(it.progress).isEqualTo(0.5f)
|
||||||
Truth.assertThat(it.time).isEqualTo("0:05")
|
assertThat(it.time).isEqualTo("0:05")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import app.cash.molecule.RecompositionMode
|
||||||
import app.cash.molecule.moleculeFlow
|
import app.cash.molecule.moleculeFlow
|
||||||
import app.cash.turbine.TurbineTestContext
|
import app.cash.turbine.TurbineTestContext
|
||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import im.vector.app.features.analytics.plan.Composer
|
import im.vector.app.features.analytics.plan.Composer
|
||||||
import im.vector.app.features.analytics.plan.PollCreation
|
import im.vector.app.features.analytics.plan.PollCreation
|
||||||
import io.element.android.features.messages.test.FakeMessageComposerContext
|
import io.element.android.features.messages.test.FakeMessageComposerContext
|
||||||
|
|
@ -86,8 +86,8 @@ class CreatePollPresenterTest {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
awaitDefaultItem()
|
awaitDefaultItem()
|
||||||
Truth.assertThat(fakeAnalyticsService.trackedErrors.filterIsInstance<CreatePollException.GetPollFailed>()).isNotEmpty()
|
assertThat(fakeAnalyticsService.trackedErrors.filterIsInstance<CreatePollException.GetPollFailed>()).isNotEmpty()
|
||||||
Truth.assertThat(navUpInvocationsCount).isEqualTo(1)
|
assertThat(navUpInvocationsCount).isEqualTo(1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -98,19 +98,19 @@ class CreatePollPresenterTest {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initial = awaitItem()
|
val initial = awaitItem()
|
||||||
Truth.assertThat(initial.canSave).isFalse()
|
assertThat(initial.canSave).isFalse()
|
||||||
|
|
||||||
initial.eventSink(CreatePollEvents.SetQuestion("A question?"))
|
initial.eventSink(CreatePollEvents.SetQuestion("A question?"))
|
||||||
val questionSet = awaitItem()
|
val questionSet = awaitItem()
|
||||||
Truth.assertThat(questionSet.canSave).isFalse()
|
assertThat(questionSet.canSave).isFalse()
|
||||||
|
|
||||||
questionSet.eventSink(CreatePollEvents.SetAnswer(0, "Answer 1"))
|
questionSet.eventSink(CreatePollEvents.SetAnswer(0, "Answer 1"))
|
||||||
val answer1Set = awaitItem()
|
val answer1Set = awaitItem()
|
||||||
Truth.assertThat(answer1Set.canSave).isFalse()
|
assertThat(answer1Set.canSave).isFalse()
|
||||||
|
|
||||||
answer1Set.eventSink(CreatePollEvents.SetAnswer(1, "Answer 2"))
|
answer1Set.eventSink(CreatePollEvents.SetAnswer(1, "Answer 2"))
|
||||||
val answer2Set = awaitItem()
|
val answer2Set = awaitItem()
|
||||||
Truth.assertThat(answer2Set.canSave).isTrue()
|
assertThat(answer2Set.canSave).isTrue()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -127,8 +127,8 @@ class CreatePollPresenterTest {
|
||||||
skipItems(3)
|
skipItems(3)
|
||||||
initial.eventSink(CreatePollEvents.Save)
|
initial.eventSink(CreatePollEvents.Save)
|
||||||
delay(1) // Wait for the coroutine to finish
|
delay(1) // Wait for the coroutine to finish
|
||||||
Truth.assertThat(fakeMatrixRoom.createPollInvocations.size).isEqualTo(1)
|
assertThat(fakeMatrixRoom.createPollInvocations.size).isEqualTo(1)
|
||||||
Truth.assertThat(fakeMatrixRoom.createPollInvocations.last()).isEqualTo(
|
assertThat(fakeMatrixRoom.createPollInvocations.last()).isEqualTo(
|
||||||
SavePollInvocation(
|
SavePollInvocation(
|
||||||
question = "A question?",
|
question = "A question?",
|
||||||
answers = listOf("Answer 1", "Answer 2"),
|
answers = listOf("Answer 1", "Answer 2"),
|
||||||
|
|
@ -136,8 +136,8 @@ class CreatePollPresenterTest {
|
||||||
pollKind = PollKind.Disclosed
|
pollKind = PollKind.Disclosed
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
Truth.assertThat(fakeAnalyticsService.capturedEvents.size).isEqualTo(2)
|
assertThat(fakeAnalyticsService.capturedEvents.size).isEqualTo(2)
|
||||||
Truth.assertThat(fakeAnalyticsService.capturedEvents[0]).isEqualTo(
|
assertThat(fakeAnalyticsService.capturedEvents[0]).isEqualTo(
|
||||||
Composer(
|
Composer(
|
||||||
inThread = false,
|
inThread = false,
|
||||||
isEditing = false,
|
isEditing = false,
|
||||||
|
|
@ -145,7 +145,7 @@ class CreatePollPresenterTest {
|
||||||
messageType = Composer.MessageType.Poll,
|
messageType = Composer.MessageType.Poll,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
Truth.assertThat(fakeAnalyticsService.capturedEvents[1]).isEqualTo(
|
assertThat(fakeAnalyticsService.capturedEvents[1]).isEqualTo(
|
||||||
PollCreation(
|
PollCreation(
|
||||||
action = PollCreation.Action.Create,
|
action = PollCreation.Action.Create,
|
||||||
isUndisclosed = false,
|
isUndisclosed = false,
|
||||||
|
|
@ -168,10 +168,10 @@ class CreatePollPresenterTest {
|
||||||
awaitItem().eventSink(CreatePollEvents.SetAnswer(1, "Answer 2"))
|
awaitItem().eventSink(CreatePollEvents.SetAnswer(1, "Answer 2"))
|
||||||
awaitItem().eventSink(CreatePollEvents.Save)
|
awaitItem().eventSink(CreatePollEvents.Save)
|
||||||
delay(1) // Wait for the coroutine to finish
|
delay(1) // Wait for the coroutine to finish
|
||||||
Truth.assertThat(fakeMatrixRoom.createPollInvocations).hasSize(1)
|
assertThat(fakeMatrixRoom.createPollInvocations).hasSize(1)
|
||||||
Truth.assertThat(fakeAnalyticsService.capturedEvents).isEmpty()
|
assertThat(fakeAnalyticsService.capturedEvents).isEmpty()
|
||||||
Truth.assertThat(fakeAnalyticsService.trackedErrors).hasSize(1)
|
assertThat(fakeAnalyticsService.trackedErrors).hasSize(1)
|
||||||
Truth.assertThat(fakeAnalyticsService.trackedErrors).containsExactly(
|
assertThat(fakeAnalyticsService.trackedErrors).containsExactly(
|
||||||
CreatePollException.SavePollFailed("Failed to create poll", error)
|
CreatePollException.SavePollFailed("Failed to create poll", error)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
@ -201,8 +201,8 @@ class CreatePollPresenterTest {
|
||||||
eventSink(CreatePollEvents.Save)
|
eventSink(CreatePollEvents.Save)
|
||||||
}
|
}
|
||||||
delay(1) // Wait for the coroutine to finish
|
delay(1) // Wait for the coroutine to finish
|
||||||
Truth.assertThat(fakeMatrixRoom.editPollInvocations.size).isEqualTo(1)
|
assertThat(fakeMatrixRoom.editPollInvocations.size).isEqualTo(1)
|
||||||
Truth.assertThat(fakeMatrixRoom.editPollInvocations.last()).isEqualTo(
|
assertThat(fakeMatrixRoom.editPollInvocations.last()).isEqualTo(
|
||||||
SavePollInvocation(
|
SavePollInvocation(
|
||||||
question = "Changed question",
|
question = "Changed question",
|
||||||
answers = listOf("Changed answer 1", "Changed answer 2", "Maybe"),
|
answers = listOf("Changed answer 1", "Changed answer 2", "Maybe"),
|
||||||
|
|
@ -210,8 +210,8 @@ class CreatePollPresenterTest {
|
||||||
pollKind = PollKind.Disclosed
|
pollKind = PollKind.Disclosed
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
Truth.assertThat(fakeAnalyticsService.capturedEvents.size).isEqualTo(2)
|
assertThat(fakeAnalyticsService.capturedEvents.size).isEqualTo(2)
|
||||||
Truth.assertThat(fakeAnalyticsService.capturedEvents[0]).isEqualTo(
|
assertThat(fakeAnalyticsService.capturedEvents[0]).isEqualTo(
|
||||||
Composer(
|
Composer(
|
||||||
inThread = false,
|
inThread = false,
|
||||||
isEditing = true,
|
isEditing = true,
|
||||||
|
|
@ -219,7 +219,7 @@ class CreatePollPresenterTest {
|
||||||
messageType = Composer.MessageType.Poll,
|
messageType = Composer.MessageType.Poll,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
Truth.assertThat(fakeAnalyticsService.capturedEvents[1]).isEqualTo(
|
assertThat(fakeAnalyticsService.capturedEvents[1]).isEqualTo(
|
||||||
PollCreation(
|
PollCreation(
|
||||||
action = PollCreation.Action.Edit,
|
action = PollCreation.Action.Edit,
|
||||||
isUndisclosed = false,
|
isUndisclosed = false,
|
||||||
|
|
@ -241,10 +241,10 @@ class CreatePollPresenterTest {
|
||||||
awaitPollLoaded().eventSink(CreatePollEvents.SetAnswer(0, "A"))
|
awaitPollLoaded().eventSink(CreatePollEvents.SetAnswer(0, "A"))
|
||||||
awaitPollLoaded(newAnswer1 = "A").eventSink(CreatePollEvents.Save)
|
awaitPollLoaded(newAnswer1 = "A").eventSink(CreatePollEvents.Save)
|
||||||
delay(1) // Wait for the coroutine to finish
|
delay(1) // Wait for the coroutine to finish
|
||||||
Truth.assertThat(fakeMatrixRoom.editPollInvocations).hasSize(1)
|
assertThat(fakeMatrixRoom.editPollInvocations).hasSize(1)
|
||||||
Truth.assertThat(fakeAnalyticsService.capturedEvents).isEmpty()
|
assertThat(fakeAnalyticsService.capturedEvents).isEmpty()
|
||||||
Truth.assertThat(fakeAnalyticsService.trackedErrors).hasSize(1)
|
assertThat(fakeAnalyticsService.trackedErrors).hasSize(1)
|
||||||
Truth.assertThat(fakeAnalyticsService.trackedErrors).containsExactly(
|
assertThat(fakeAnalyticsService.trackedErrors).containsExactly(
|
||||||
CreatePollException.SavePollFailed("Failed to edit poll", error)
|
CreatePollException.SavePollFailed("Failed to edit poll", error)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
@ -257,16 +257,16 @@ class CreatePollPresenterTest {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initial = awaitItem()
|
val initial = awaitItem()
|
||||||
Truth.assertThat(initial.answers.size).isEqualTo(2)
|
assertThat(initial.answers.size).isEqualTo(2)
|
||||||
|
|
||||||
initial.eventSink(CreatePollEvents.AddAnswer)
|
initial.eventSink(CreatePollEvents.AddAnswer)
|
||||||
val answerAdded = awaitItem()
|
val answerAdded = awaitItem()
|
||||||
Truth.assertThat(answerAdded.answers.size).isEqualTo(3)
|
assertThat(answerAdded.answers.size).isEqualTo(3)
|
||||||
Truth.assertThat(answerAdded.answers[2].text).isEmpty()
|
assertThat(answerAdded.answers[2].text).isEmpty()
|
||||||
|
|
||||||
initial.eventSink(CreatePollEvents.RemoveAnswer(2))
|
initial.eventSink(CreatePollEvents.RemoveAnswer(2))
|
||||||
val answerRemoved = awaitItem()
|
val answerRemoved = awaitItem()
|
||||||
Truth.assertThat(answerRemoved.answers.size).isEqualTo(2)
|
assertThat(answerRemoved.answers.size).isEqualTo(2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -279,7 +279,7 @@ class CreatePollPresenterTest {
|
||||||
val initial = awaitItem()
|
val initial = awaitItem()
|
||||||
initial.eventSink(CreatePollEvents.SetQuestion("A question?"))
|
initial.eventSink(CreatePollEvents.SetQuestion("A question?"))
|
||||||
val questionSet = awaitItem()
|
val questionSet = awaitItem()
|
||||||
Truth.assertThat(questionSet.question).isEqualTo("A question?")
|
assertThat(questionSet.question).isEqualTo("A question?")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -292,7 +292,7 @@ class CreatePollPresenterTest {
|
||||||
val initial = awaitItem()
|
val initial = awaitItem()
|
||||||
initial.eventSink(CreatePollEvents.SetAnswer(0, "This is answer 1"))
|
initial.eventSink(CreatePollEvents.SetAnswer(0, "This is answer 1"))
|
||||||
val answerSet = awaitItem()
|
val answerSet = awaitItem()
|
||||||
Truth.assertThat(answerSet.answers.first().text).isEqualTo("This is answer 1")
|
assertThat(answerSet.answers.first().text).isEqualTo("This is answer 1")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -305,7 +305,7 @@ class CreatePollPresenterTest {
|
||||||
val initial = awaitItem()
|
val initial = awaitItem()
|
||||||
initial.eventSink(CreatePollEvents.SetPollKind(PollKind.Undisclosed))
|
initial.eventSink(CreatePollEvents.SetPollKind(PollKind.Undisclosed))
|
||||||
val kindSet = awaitItem()
|
val kindSet = awaitItem()
|
||||||
Truth.assertThat(kindSet.pollKind).isEqualTo(PollKind.Undisclosed)
|
assertThat(kindSet.pollKind).isEqualTo(PollKind.Undisclosed)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -316,13 +316,13 @@ class CreatePollPresenterTest {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initial = awaitItem()
|
val initial = awaitItem()
|
||||||
Truth.assertThat(initial.canAddAnswer).isTrue()
|
assertThat(initial.canAddAnswer).isTrue()
|
||||||
repeat(17) {
|
repeat(17) {
|
||||||
initial.eventSink(CreatePollEvents.AddAnswer)
|
initial.eventSink(CreatePollEvents.AddAnswer)
|
||||||
Truth.assertThat(awaitItem().canAddAnswer).isTrue()
|
assertThat(awaitItem().canAddAnswer).isTrue()
|
||||||
}
|
}
|
||||||
initial.eventSink(CreatePollEvents.AddAnswer)
|
initial.eventSink(CreatePollEvents.AddAnswer)
|
||||||
Truth.assertThat(awaitItem().canAddAnswer).isFalse()
|
assertThat(awaitItem().canAddAnswer).isFalse()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -333,9 +333,9 @@ class CreatePollPresenterTest {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initial = awaitItem()
|
val initial = awaitItem()
|
||||||
Truth.assertThat(initial.answers.all { it.canDelete }).isFalse()
|
assertThat(initial.answers.all { it.canDelete }).isFalse()
|
||||||
initial.eventSink(CreatePollEvents.AddAnswer)
|
initial.eventSink(CreatePollEvents.AddAnswer)
|
||||||
Truth.assertThat(awaitItem().answers.all { it.canDelete }).isTrue()
|
assertThat(awaitItem().answers.all { it.canDelete }).isTrue()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -347,7 +347,7 @@ class CreatePollPresenterTest {
|
||||||
}.test {
|
}.test {
|
||||||
val initial = awaitItem()
|
val initial = awaitItem()
|
||||||
initial.eventSink(CreatePollEvents.SetAnswer(0, "A".repeat(241)))
|
initial.eventSink(CreatePollEvents.SetAnswer(0, "A".repeat(241)))
|
||||||
Truth.assertThat(awaitItem().answers.first().text.length).isEqualTo(240)
|
assertThat(awaitItem().answers.first().text.length).isEqualTo(240)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -358,9 +358,9 @@ class CreatePollPresenterTest {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initial = awaitItem()
|
val initial = awaitItem()
|
||||||
Truth.assertThat(navUpInvocationsCount).isEqualTo(0)
|
assertThat(navUpInvocationsCount).isEqualTo(0)
|
||||||
initial.eventSink(CreatePollEvents.NavBack)
|
initial.eventSink(CreatePollEvents.NavBack)
|
||||||
Truth.assertThat(navUpInvocationsCount).isEqualTo(1)
|
assertThat(navUpInvocationsCount).isEqualTo(1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -371,10 +371,10 @@ class CreatePollPresenterTest {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initial = awaitItem()
|
val initial = awaitItem()
|
||||||
Truth.assertThat(navUpInvocationsCount).isEqualTo(0)
|
assertThat(navUpInvocationsCount).isEqualTo(0)
|
||||||
Truth.assertThat(initial.showBackConfirmation).isFalse()
|
assertThat(initial.showBackConfirmation).isFalse()
|
||||||
initial.eventSink(CreatePollEvents.ConfirmNavBack)
|
initial.eventSink(CreatePollEvents.ConfirmNavBack)
|
||||||
Truth.assertThat(navUpInvocationsCount).isEqualTo(1)
|
assertThat(navUpInvocationsCount).isEqualTo(1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -386,12 +386,12 @@ class CreatePollPresenterTest {
|
||||||
}.test {
|
}.test {
|
||||||
val initial = awaitItem()
|
val initial = awaitItem()
|
||||||
initial.eventSink(CreatePollEvents.SetQuestion("Non blank"))
|
initial.eventSink(CreatePollEvents.SetQuestion("Non blank"))
|
||||||
Truth.assertThat(awaitItem().showBackConfirmation).isFalse()
|
assertThat(awaitItem().showBackConfirmation).isFalse()
|
||||||
initial.eventSink(CreatePollEvents.ConfirmNavBack)
|
initial.eventSink(CreatePollEvents.ConfirmNavBack)
|
||||||
Truth.assertThat(awaitItem().showBackConfirmation).isTrue()
|
assertThat(awaitItem().showBackConfirmation).isTrue()
|
||||||
initial.eventSink(CreatePollEvents.HideConfirmation)
|
initial.eventSink(CreatePollEvents.HideConfirmation)
|
||||||
Truth.assertThat(awaitItem().showBackConfirmation).isFalse()
|
assertThat(awaitItem().showBackConfirmation).isFalse()
|
||||||
Truth.assertThat(navUpInvocationsCount).isEqualTo(0)
|
assertThat(navUpInvocationsCount).isEqualTo(0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -403,10 +403,10 @@ class CreatePollPresenterTest {
|
||||||
}.test {
|
}.test {
|
||||||
awaitDefaultItem()
|
awaitDefaultItem()
|
||||||
val loaded = awaitPollLoaded()
|
val loaded = awaitPollLoaded()
|
||||||
Truth.assertThat(navUpInvocationsCount).isEqualTo(0)
|
assertThat(navUpInvocationsCount).isEqualTo(0)
|
||||||
Truth.assertThat(loaded.showBackConfirmation).isFalse()
|
assertThat(loaded.showBackConfirmation).isFalse()
|
||||||
loaded.eventSink(CreatePollEvents.ConfirmNavBack)
|
loaded.eventSink(CreatePollEvents.ConfirmNavBack)
|
||||||
Truth.assertThat(navUpInvocationsCount).isEqualTo(1)
|
assertThat(navUpInvocationsCount).isEqualTo(1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -419,12 +419,12 @@ class CreatePollPresenterTest {
|
||||||
awaitDefaultItem()
|
awaitDefaultItem()
|
||||||
val loaded = awaitPollLoaded()
|
val loaded = awaitPollLoaded()
|
||||||
loaded.eventSink(CreatePollEvents.SetQuestion("CHANGED"))
|
loaded.eventSink(CreatePollEvents.SetQuestion("CHANGED"))
|
||||||
Truth.assertThat(awaitItem().showBackConfirmation).isFalse()
|
assertThat(awaitItem().showBackConfirmation).isFalse()
|
||||||
loaded.eventSink(CreatePollEvents.ConfirmNavBack)
|
loaded.eventSink(CreatePollEvents.ConfirmNavBack)
|
||||||
Truth.assertThat(awaitItem().showBackConfirmation).isTrue()
|
assertThat(awaitItem().showBackConfirmation).isTrue()
|
||||||
loaded.eventSink(CreatePollEvents.HideConfirmation)
|
loaded.eventSink(CreatePollEvents.HideConfirmation)
|
||||||
Truth.assertThat(awaitItem().showBackConfirmation).isFalse()
|
assertThat(awaitItem().showBackConfirmation).isFalse()
|
||||||
Truth.assertThat(navUpInvocationsCount).isEqualTo(0)
|
assertThat(navUpInvocationsCount).isEqualTo(0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -437,7 +437,7 @@ class CreatePollPresenterTest {
|
||||||
awaitDefaultItem()
|
awaitDefaultItem()
|
||||||
awaitPollLoaded().eventSink(CreatePollEvents.Delete(confirmed = false))
|
awaitPollLoaded().eventSink(CreatePollEvents.Delete(confirmed = false))
|
||||||
awaitDeleteConfirmation()
|
awaitDeleteConfirmation()
|
||||||
Truth.assertThat(fakeMatrixRoom.redactEventEventIdParam).isNull()
|
assertThat(fakeMatrixRoom.redactEventEventIdParam).isNull()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -449,12 +449,12 @@ class CreatePollPresenterTest {
|
||||||
}.test {
|
}.test {
|
||||||
awaitDefaultItem()
|
awaitDefaultItem()
|
||||||
awaitPollLoaded().eventSink(CreatePollEvents.Delete(confirmed = false))
|
awaitPollLoaded().eventSink(CreatePollEvents.Delete(confirmed = false))
|
||||||
Truth.assertThat(fakeMatrixRoom.redactEventEventIdParam).isNull()
|
assertThat(fakeMatrixRoom.redactEventEventIdParam).isNull()
|
||||||
awaitDeleteConfirmation().eventSink(CreatePollEvents.HideConfirmation)
|
awaitDeleteConfirmation().eventSink(CreatePollEvents.HideConfirmation)
|
||||||
awaitPollLoaded().apply {
|
awaitPollLoaded().apply {
|
||||||
Truth.assertThat(showDeleteConfirmation).isFalse()
|
assertThat(showDeleteConfirmation).isFalse()
|
||||||
}
|
}
|
||||||
Truth.assertThat(fakeMatrixRoom.redactEventEventIdParam).isNull()
|
assertThat(fakeMatrixRoom.redactEventEventIdParam).isNull()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -466,30 +466,30 @@ class CreatePollPresenterTest {
|
||||||
}.test {
|
}.test {
|
||||||
awaitDefaultItem()
|
awaitDefaultItem()
|
||||||
awaitPollLoaded().eventSink(CreatePollEvents.Delete(confirmed = false))
|
awaitPollLoaded().eventSink(CreatePollEvents.Delete(confirmed = false))
|
||||||
Truth.assertThat(fakeMatrixRoom.redactEventEventIdParam).isNull()
|
assertThat(fakeMatrixRoom.redactEventEventIdParam).isNull()
|
||||||
awaitDeleteConfirmation().eventSink(CreatePollEvents.Delete(confirmed = true))
|
awaitDeleteConfirmation().eventSink(CreatePollEvents.Delete(confirmed = true))
|
||||||
awaitPollLoaded().apply {
|
awaitPollLoaded().apply {
|
||||||
Truth.assertThat(showDeleteConfirmation).isFalse()
|
assertThat(showDeleteConfirmation).isFalse()
|
||||||
}
|
}
|
||||||
Truth.assertThat(fakeMatrixRoom.redactEventEventIdParam).isEqualTo(pollEventId)
|
assertThat(fakeMatrixRoom.redactEventEventIdParam).isEqualTo(pollEventId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private suspend fun TurbineTestContext<CreatePollState>.awaitDefaultItem() =
|
private suspend fun TurbineTestContext<CreatePollState>.awaitDefaultItem() =
|
||||||
awaitItem().apply {
|
awaitItem().apply {
|
||||||
Truth.assertThat(canSave).isFalse()
|
assertThat(canSave).isFalse()
|
||||||
Truth.assertThat(canAddAnswer).isTrue()
|
assertThat(canAddAnswer).isTrue()
|
||||||
Truth.assertThat(question).isEmpty()
|
assertThat(question).isEmpty()
|
||||||
Truth.assertThat(answers).isEqualTo(listOf(Answer("", false), Answer("", false)))
|
assertThat(answers).isEqualTo(listOf(Answer("", false), Answer("", false)))
|
||||||
Truth.assertThat(pollKind).isEqualTo(PollKind.Disclosed)
|
assertThat(pollKind).isEqualTo(PollKind.Disclosed)
|
||||||
Truth.assertThat(showBackConfirmation).isFalse()
|
assertThat(showBackConfirmation).isFalse()
|
||||||
Truth.assertThat(showDeleteConfirmation).isFalse()
|
assertThat(showDeleteConfirmation).isFalse()
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun TurbineTestContext<CreatePollState>.awaitDeleteConfirmation() =
|
private suspend fun TurbineTestContext<CreatePollState>.awaitDeleteConfirmation() =
|
||||||
awaitItem().apply {
|
awaitItem().apply {
|
||||||
Truth.assertThat(showDeleteConfirmation).isTrue()
|
assertThat(showDeleteConfirmation).isTrue()
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun TurbineTestContext<CreatePollState>.awaitPollLoaded(
|
private suspend fun TurbineTestContext<CreatePollState>.awaitPollLoaded(
|
||||||
|
|
@ -498,14 +498,14 @@ class CreatePollPresenterTest {
|
||||||
newAnswer2: String? = null,
|
newAnswer2: String? = null,
|
||||||
) =
|
) =
|
||||||
awaitItem().apply {
|
awaitItem().apply {
|
||||||
Truth.assertThat(canSave).isTrue()
|
assertThat(canSave).isTrue()
|
||||||
Truth.assertThat(canAddAnswer).isTrue()
|
assertThat(canAddAnswer).isTrue()
|
||||||
Truth.assertThat(question).isEqualTo(newQuestion ?: existingPoll.question)
|
assertThat(question).isEqualTo(newQuestion ?: existingPoll.question)
|
||||||
Truth.assertThat(answers).isEqualTo(existingPoll.expectedAnswersState().toMutableList().apply {
|
assertThat(answers).isEqualTo(existingPoll.expectedAnswersState().toMutableList().apply {
|
||||||
newAnswer1?.let { this[0] = Answer(it, true) }
|
newAnswer1?.let { this[0] = Answer(it, true) }
|
||||||
newAnswer2?.let { this[1] = Answer(it, true) }
|
newAnswer2?.let { this[1] = Answer(it, true) }
|
||||||
})
|
})
|
||||||
Truth.assertThat(pollKind).isEqualTo(existingPoll.kind)
|
assertThat(pollKind).isEqualTo(existingPoll.kind)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun createCreatePollPresenter(
|
private fun createCreatePollPresenter(
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ package io.element.android.features.preferences.impl.notifications
|
||||||
import app.cash.molecule.RecompositionMode
|
import app.cash.molecule.RecompositionMode
|
||||||
import app.cash.molecule.moleculeFlow
|
import app.cash.molecule.moleculeFlow
|
||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.preferences.impl.notifications.edit.EditDefaultNotificationSettingPresenter
|
import io.element.android.features.preferences.impl.notifications.edit.EditDefaultNotificationSettingPresenter
|
||||||
import io.element.android.features.preferences.impl.notifications.edit.EditDefaultNotificationSettingStateEvents
|
import io.element.android.features.preferences.impl.notifications.edit.EditDefaultNotificationSettingStateEvents
|
||||||
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
|
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
|
||||||
|
|
@ -44,13 +44,13 @@ class EditDefaultNotificationSettingsPresenterTests {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.mode).isNull()
|
assertThat(initialState.mode).isNull()
|
||||||
Truth.assertThat(initialState.isOneToOne).isFalse()
|
assertThat(initialState.isOneToOne).isFalse()
|
||||||
|
|
||||||
val loadedState = consumeItemsUntilPredicate {
|
val loadedState = consumeItemsUntilPredicate {
|
||||||
it.mode == RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY
|
it.mode == RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY
|
||||||
}.last()
|
}.last()
|
||||||
Truth.assertThat(loadedState.mode).isEqualTo(RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY)
|
assertThat(loadedState.mode).isEqualTo(RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -73,7 +73,7 @@ class EditDefaultNotificationSettingsPresenterTests {
|
||||||
val loadedState = consumeItemsUntilPredicate { state ->
|
val loadedState = consumeItemsUntilPredicate { state ->
|
||||||
state.roomsWithUserDefinedMode.any { it.details.notificationMode == RoomNotificationMode.ALL_MESSAGES }
|
state.roomsWithUserDefinedMode.any { it.details.notificationMode == RoomNotificationMode.ALL_MESSAGES }
|
||||||
}.last()
|
}.last()
|
||||||
Truth.assertThat(loadedState.roomsWithUserDefinedMode.any { it.details.notificationMode == RoomNotificationMode.ALL_MESSAGES }).isTrue()
|
assertThat(loadedState.roomsWithUserDefinedMode.any { it.details.notificationMode == RoomNotificationMode.ALL_MESSAGES }).isTrue()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -87,7 +87,7 @@ class EditDefaultNotificationSettingsPresenterTests {
|
||||||
val loadedState = consumeItemsUntilPredicate {
|
val loadedState = consumeItemsUntilPredicate {
|
||||||
it.mode == RoomNotificationMode.ALL_MESSAGES
|
it.mode == RoomNotificationMode.ALL_MESSAGES
|
||||||
}.last()
|
}.last()
|
||||||
Truth.assertThat(loadedState.mode).isEqualTo(RoomNotificationMode.ALL_MESSAGES)
|
assertThat(loadedState.mode).isEqualTo(RoomNotificationMode.ALL_MESSAGES)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -103,12 +103,12 @@ class EditDefaultNotificationSettingsPresenterTests {
|
||||||
val errorState = consumeItemsUntilPredicate {
|
val errorState = consumeItemsUntilPredicate {
|
||||||
it.changeNotificationSettingAction.isFailure()
|
it.changeNotificationSettingAction.isFailure()
|
||||||
}.last()
|
}.last()
|
||||||
Truth.assertThat(errorState.changeNotificationSettingAction.isFailure()).isTrue()
|
assertThat(errorState.changeNotificationSettingAction.isFailure()).isTrue()
|
||||||
errorState.eventSink(EditDefaultNotificationSettingStateEvents.ClearError)
|
errorState.eventSink(EditDefaultNotificationSettingStateEvents.ClearError)
|
||||||
val clearErrorState = consumeItemsUntilPredicate {
|
val clearErrorState = consumeItemsUntilPredicate {
|
||||||
it.changeNotificationSettingAction.isUninitialized()
|
it.changeNotificationSettingAction.isUninitialized()
|
||||||
}.last()
|
}.last()
|
||||||
Truth.assertThat(clearErrorState.changeNotificationSettingAction.isUninitialized()).isTrue()
|
assertThat(clearErrorState.changeNotificationSettingAction.isUninitialized()).isTrue()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import app.cash.molecule.RecompositionMode
|
||||||
import app.cash.molecule.moleculeFlow
|
import app.cash.molecule.moleculeFlow
|
||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.element.android.libraries.pushstore.test.userpushstore.FakeUserPushStoreFactory
|
import com.element.android.libraries.pushstore.test.userpushstore.FakeUserPushStoreFactory
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
|
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
|
||||||
import io.element.android.libraries.matrix.test.A_THROWABLE
|
import io.element.android.libraries.matrix.test.A_THROWABLE
|
||||||
import io.element.android.libraries.matrix.test.FakeMatrixClient
|
import io.element.android.libraries.matrix.test.FakeMatrixClient
|
||||||
|
|
@ -38,20 +38,20 @@ class NotificationSettingsPresenterTests {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.appSettings.appNotificationsEnabled).isFalse()
|
assertThat(initialState.appSettings.appNotificationsEnabled).isFalse()
|
||||||
Truth.assertThat(initialState.appSettings.systemNotificationsEnabled).isTrue()
|
assertThat(initialState.appSettings.systemNotificationsEnabled).isTrue()
|
||||||
Truth.assertThat(initialState.matrixSettings).isEqualTo(NotificationSettingsState.MatrixSettings.Uninitialized)
|
assertThat(initialState.matrixSettings).isEqualTo(NotificationSettingsState.MatrixSettings.Uninitialized)
|
||||||
|
|
||||||
val loadedState = consumeItemsUntilPredicate {
|
val loadedState = consumeItemsUntilPredicate {
|
||||||
it.matrixSettings is NotificationSettingsState.MatrixSettings.Valid
|
it.matrixSettings is NotificationSettingsState.MatrixSettings.Valid
|
||||||
}.last()
|
}.last()
|
||||||
Truth.assertThat(loadedState.appSettings.appNotificationsEnabled).isTrue()
|
assertThat(loadedState.appSettings.appNotificationsEnabled).isTrue()
|
||||||
Truth.assertThat(loadedState.appSettings.systemNotificationsEnabled).isTrue()
|
assertThat(loadedState.appSettings.systemNotificationsEnabled).isTrue()
|
||||||
val valid = loadedState.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid
|
val valid = loadedState.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid
|
||||||
Truth.assertThat(valid?.atRoomNotificationsEnabled).isFalse()
|
assertThat(valid?.atRoomNotificationsEnabled).isFalse()
|
||||||
Truth.assertThat(valid?.callNotificationsEnabled).isFalse()
|
assertThat(valid?.callNotificationsEnabled).isFalse()
|
||||||
Truth.assertThat(valid?.defaultGroupNotificationMode).isEqualTo(RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY)
|
assertThat(valid?.defaultGroupNotificationMode).isEqualTo(RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY)
|
||||||
Truth.assertThat(valid?.defaultOneToOneNotificationMode).isEqualTo(RoomNotificationMode.ALL_MESSAGES)
|
assertThat(valid?.defaultOneToOneNotificationMode).isEqualTo(RoomNotificationMode.ALL_MESSAGES)
|
||||||
cancelAndIgnoreRemainingEvents()
|
cancelAndIgnoreRemainingEvents()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -71,7 +71,7 @@ class NotificationSettingsPresenterTests {
|
||||||
?.defaultGroupNotificationMode == RoomNotificationMode.ALL_MESSAGES
|
?.defaultGroupNotificationMode == RoomNotificationMode.ALL_MESSAGES
|
||||||
}.last()
|
}.last()
|
||||||
val valid = updatedState.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid
|
val valid = updatedState.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid
|
||||||
Truth.assertThat(valid?.defaultGroupNotificationMode).isEqualTo(RoomNotificationMode.ALL_MESSAGES)
|
assertThat(valid?.defaultGroupNotificationMode).isEqualTo(RoomNotificationMode.ALL_MESSAGES)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -96,7 +96,7 @@ class NotificationSettingsPresenterTests {
|
||||||
val updatedState = consumeItemsUntilPredicate {
|
val updatedState = consumeItemsUntilPredicate {
|
||||||
it.matrixSettings is NotificationSettingsState.MatrixSettings.Invalid
|
it.matrixSettings is NotificationSettingsState.MatrixSettings.Invalid
|
||||||
}.last()
|
}.last()
|
||||||
Truth.assertThat(updatedState.matrixSettings).isEqualTo(NotificationSettingsState.MatrixSettings.Invalid(fixFailed = false))
|
assertThat(updatedState.matrixSettings).isEqualTo(NotificationSettingsState.MatrixSettings.Invalid(fixFailed = false))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -120,7 +120,7 @@ class NotificationSettingsPresenterTests {
|
||||||
}.last()
|
}.last()
|
||||||
|
|
||||||
val fixedMatrixState = fixedState.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid
|
val fixedMatrixState = fixedState.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid
|
||||||
Truth.assertThat(fixedMatrixState?.defaultGroupNotificationMode).isEqualTo(RoomNotificationMode.ALL_MESSAGES)
|
assertThat(fixedMatrixState?.defaultGroupNotificationMode).isEqualTo(RoomNotificationMode.ALL_MESSAGES)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -133,13 +133,13 @@ class NotificationSettingsPresenterTests {
|
||||||
val loadedState = consumeItemsUntilPredicate {
|
val loadedState = consumeItemsUntilPredicate {
|
||||||
it.matrixSettings is NotificationSettingsState.MatrixSettings.Valid
|
it.matrixSettings is NotificationSettingsState.MatrixSettings.Valid
|
||||||
}.last()
|
}.last()
|
||||||
Truth.assertThat(loadedState.appSettings.appNotificationsEnabled).isTrue()
|
assertThat(loadedState.appSettings.appNotificationsEnabled).isTrue()
|
||||||
|
|
||||||
loadedState.eventSink(NotificationSettingsEvents.SetNotificationsEnabled(false))
|
loadedState.eventSink(NotificationSettingsEvents.SetNotificationsEnabled(false))
|
||||||
val updatedState = consumeItemsUntilPredicate {
|
val updatedState = consumeItemsUntilPredicate {
|
||||||
!it.appSettings.appNotificationsEnabled
|
!it.appSettings.appNotificationsEnabled
|
||||||
}.last()
|
}.last()
|
||||||
Truth.assertThat(updatedState.appSettings.appNotificationsEnabled).isFalse()
|
assertThat(updatedState.appSettings.appNotificationsEnabled).isFalse()
|
||||||
cancelAndIgnoreRemainingEvents()
|
cancelAndIgnoreRemainingEvents()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -154,14 +154,14 @@ class NotificationSettingsPresenterTests {
|
||||||
(it.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid)?.callNotificationsEnabled == false
|
(it.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid)?.callNotificationsEnabled == false
|
||||||
}.last()
|
}.last()
|
||||||
val validMatrixState = loadedState.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid
|
val validMatrixState = loadedState.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid
|
||||||
Truth.assertThat(validMatrixState?.callNotificationsEnabled).isFalse()
|
assertThat(validMatrixState?.callNotificationsEnabled).isFalse()
|
||||||
|
|
||||||
loadedState.eventSink(NotificationSettingsEvents.SetCallNotificationsEnabled(true))
|
loadedState.eventSink(NotificationSettingsEvents.SetCallNotificationsEnabled(true))
|
||||||
val updatedState = consumeItemsUntilPredicate {
|
val updatedState = consumeItemsUntilPredicate {
|
||||||
(it.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid)?.callNotificationsEnabled == true
|
(it.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid)?.callNotificationsEnabled == true
|
||||||
}.last()
|
}.last()
|
||||||
val updatedMatrixState = updatedState.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid
|
val updatedMatrixState = updatedState.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid
|
||||||
Truth.assertThat(updatedMatrixState?.callNotificationsEnabled).isTrue()
|
assertThat(updatedMatrixState?.callNotificationsEnabled).isTrue()
|
||||||
cancelAndIgnoreRemainingEvents()
|
cancelAndIgnoreRemainingEvents()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -176,14 +176,14 @@ class NotificationSettingsPresenterTests {
|
||||||
(it.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid)?.atRoomNotificationsEnabled == false
|
(it.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid)?.atRoomNotificationsEnabled == false
|
||||||
}.last()
|
}.last()
|
||||||
val validMatrixState = loadedState.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid
|
val validMatrixState = loadedState.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid
|
||||||
Truth.assertThat(validMatrixState?.atRoomNotificationsEnabled).isFalse()
|
assertThat(validMatrixState?.atRoomNotificationsEnabled).isFalse()
|
||||||
|
|
||||||
loadedState.eventSink(NotificationSettingsEvents.SetAtRoomNotificationsEnabled(true))
|
loadedState.eventSink(NotificationSettingsEvents.SetAtRoomNotificationsEnabled(true))
|
||||||
val updatedState = consumeItemsUntilPredicate {
|
val updatedState = consumeItemsUntilPredicate {
|
||||||
(it.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid)?.atRoomNotificationsEnabled == true
|
(it.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid)?.atRoomNotificationsEnabled == true
|
||||||
}.last()
|
}.last()
|
||||||
val updatedMatrixState = updatedState.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid
|
val updatedMatrixState = updatedState.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid
|
||||||
Truth.assertThat(updatedMatrixState?.atRoomNotificationsEnabled).isTrue()
|
assertThat(updatedMatrixState?.atRoomNotificationsEnabled).isTrue()
|
||||||
cancelAndIgnoreRemainingEvents()
|
cancelAndIgnoreRemainingEvents()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -200,19 +200,19 @@ class NotificationSettingsPresenterTests {
|
||||||
(it.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid)?.atRoomNotificationsEnabled == false
|
(it.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid)?.atRoomNotificationsEnabled == false
|
||||||
}.last()
|
}.last()
|
||||||
val validMatrixState = loadedState.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid
|
val validMatrixState = loadedState.matrixSettings as? NotificationSettingsState.MatrixSettings.Valid
|
||||||
Truth.assertThat(validMatrixState?.atRoomNotificationsEnabled).isFalse()
|
assertThat(validMatrixState?.atRoomNotificationsEnabled).isFalse()
|
||||||
|
|
||||||
loadedState.eventSink(NotificationSettingsEvents.SetAtRoomNotificationsEnabled(true))
|
loadedState.eventSink(NotificationSettingsEvents.SetAtRoomNotificationsEnabled(true))
|
||||||
val errorState = consumeItemsUntilPredicate {
|
val errorState = consumeItemsUntilPredicate {
|
||||||
it.changeNotificationSettingAction.isFailure()
|
it.changeNotificationSettingAction.isFailure()
|
||||||
}.last()
|
}.last()
|
||||||
Truth.assertThat(errorState.changeNotificationSettingAction.isFailure()).isTrue()
|
assertThat(errorState.changeNotificationSettingAction.isFailure()).isTrue()
|
||||||
errorState.eventSink(NotificationSettingsEvents.ClearNotificationChangeError)
|
errorState.eventSink(NotificationSettingsEvents.ClearNotificationChangeError)
|
||||||
|
|
||||||
val clearErrorState = consumeItemsUntilPredicate {
|
val clearErrorState = consumeItemsUntilPredicate {
|
||||||
it.changeNotificationSettingAction.isUninitialized()
|
it.changeNotificationSettingAction.isUninitialized()
|
||||||
}.last()
|
}.last()
|
||||||
Truth.assertThat(clearErrorState.changeNotificationSettingAction.isUninitialized()).isTrue()
|
assertThat(clearErrorState.changeNotificationSettingAction.isUninitialized()).isTrue()
|
||||||
cancelAndIgnoreRemainingEvents()
|
cancelAndIgnoreRemainingEvents()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ package io.element.android.features.roomdetails.members
|
||||||
import app.cash.molecule.RecompositionMode
|
import app.cash.molecule.RecompositionMode
|
||||||
import app.cash.molecule.moleculeFlow
|
import app.cash.molecule.moleculeFlow
|
||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.roomdetails.impl.members.RoomMemberListDataSource
|
import io.element.android.features.roomdetails.impl.members.RoomMemberListDataSource
|
||||||
import io.element.android.features.roomdetails.impl.members.RoomMemberListEvents
|
import io.element.android.features.roomdetails.impl.members.RoomMemberListEvents
|
||||||
import io.element.android.features.roomdetails.impl.members.RoomMemberListPresenter
|
import io.element.android.features.roomdetails.impl.members.RoomMemberListPresenter
|
||||||
|
|
@ -53,14 +53,14 @@ class RoomMemberListPresenterTests {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.roomMembers).isInstanceOf(Async.Loading::class.java)
|
assertThat(initialState.roomMembers).isInstanceOf(Async.Loading::class.java)
|
||||||
Truth.assertThat(initialState.searchQuery).isEmpty()
|
assertThat(initialState.searchQuery).isEmpty()
|
||||||
Truth.assertThat(initialState.searchResults).isInstanceOf(SearchBarResultState.NotSearching::class.java)
|
assertThat(initialState.searchResults).isInstanceOf(SearchBarResultState.NotSearching::class.java)
|
||||||
Truth.assertThat(initialState.isSearchActive).isFalse()
|
assertThat(initialState.isSearchActive).isFalse()
|
||||||
val loadedState = awaitItem()
|
val loadedState = awaitItem()
|
||||||
Truth.assertThat(loadedState.roomMembers).isInstanceOf(Async.Success::class.java)
|
assertThat(loadedState.roomMembers).isInstanceOf(Async.Success::class.java)
|
||||||
Truth.assertThat((loadedState.roomMembers as Async.Success).data.invited).isEqualTo(listOf(aVictor(), aWalter()))
|
assertThat((loadedState.roomMembers as Async.Success).data.invited).isEqualTo(listOf(aVictor(), aWalter()))
|
||||||
Truth.assertThat((loadedState.roomMembers as Async.Success).data.joined).isNotEmpty()
|
assertThat((loadedState.roomMembers as Async.Success).data.joined).isNotEmpty()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -74,7 +74,7 @@ class RoomMemberListPresenterTests {
|
||||||
val loadedState = awaitItem()
|
val loadedState = awaitItem()
|
||||||
loadedState.eventSink(RoomMemberListEvents.OnSearchActiveChanged(true))
|
loadedState.eventSink(RoomMemberListEvents.OnSearchActiveChanged(true))
|
||||||
val searchActiveState = awaitItem()
|
val searchActiveState = awaitItem()
|
||||||
Truth.assertThat(searchActiveState.isSearchActive).isTrue()
|
assertThat(searchActiveState.isSearchActive).isTrue()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -90,9 +90,9 @@ class RoomMemberListPresenterTests {
|
||||||
val searchActiveState = awaitItem()
|
val searchActiveState = awaitItem()
|
||||||
searchActiveState.eventSink(RoomMemberListEvents.UpdateSearchQuery("something"))
|
searchActiveState.eventSink(RoomMemberListEvents.UpdateSearchQuery("something"))
|
||||||
val searchQueryUpdatedState = awaitItem()
|
val searchQueryUpdatedState = awaitItem()
|
||||||
Truth.assertThat(searchQueryUpdatedState.searchQuery).isEqualTo("something")
|
assertThat(searchQueryUpdatedState.searchQuery).isEqualTo("something")
|
||||||
val searchSearchResultDelivered = awaitItem()
|
val searchSearchResultDelivered = awaitItem()
|
||||||
Truth.assertThat(searchSearchResultDelivered.searchResults).isInstanceOf(SearchBarResultState.NoResults::class.java)
|
assertThat(searchSearchResultDelivered.searchResults).isInstanceOf(SearchBarResultState.NoResults::class.java)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -108,10 +108,10 @@ class RoomMemberListPresenterTests {
|
||||||
val searchActiveState = awaitItem()
|
val searchActiveState = awaitItem()
|
||||||
searchActiveState.eventSink(RoomMemberListEvents.UpdateSearchQuery("Alice"))
|
searchActiveState.eventSink(RoomMemberListEvents.UpdateSearchQuery("Alice"))
|
||||||
val searchQueryUpdatedState = awaitItem()
|
val searchQueryUpdatedState = awaitItem()
|
||||||
Truth.assertThat(searchQueryUpdatedState.searchQuery).isEqualTo("Alice")
|
assertThat(searchQueryUpdatedState.searchQuery).isEqualTo("Alice")
|
||||||
val searchSearchResultDelivered = awaitItem()
|
val searchSearchResultDelivered = awaitItem()
|
||||||
Truth.assertThat(searchSearchResultDelivered.searchResults).isInstanceOf(SearchBarResultState.Results::class.java)
|
assertThat(searchSearchResultDelivered.searchResults).isInstanceOf(SearchBarResultState.Results::class.java)
|
||||||
Truth.assertThat((searchSearchResultDelivered.searchResults as SearchBarResultState.Results).results.joined.first().displayName)
|
assertThat((searchSearchResultDelivered.searchResults as SearchBarResultState.Results).results.joined.first().displayName)
|
||||||
.isEqualTo("Alice")
|
.isEqualTo("Alice")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -128,7 +128,7 @@ class RoomMemberListPresenterTests {
|
||||||
}.test {
|
}.test {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val loadedState = awaitItem()
|
val loadedState = awaitItem()
|
||||||
Truth.assertThat(loadedState.canInvite).isTrue()
|
assertThat(loadedState.canInvite).isTrue()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -144,7 +144,7 @@ class RoomMemberListPresenterTests {
|
||||||
}.test {
|
}.test {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val loadedState = awaitItem()
|
val loadedState = awaitItem()
|
||||||
Truth.assertThat(loadedState.canInvite).isFalse()
|
assertThat(loadedState.canInvite).isFalse()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -160,7 +160,7 @@ class RoomMemberListPresenterTests {
|
||||||
}.test {
|
}.test {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val loadedState = awaitItem()
|
val loadedState = awaitItem()
|
||||||
Truth.assertThat(loadedState.canInvite).isFalse()
|
assertThat(loadedState.canInvite).isFalse()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ package io.element.android.features.roomdetails.members.details
|
||||||
import app.cash.molecule.RecompositionMode
|
import app.cash.molecule.RecompositionMode
|
||||||
import app.cash.molecule.moleculeFlow
|
import app.cash.molecule.moleculeFlow
|
||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.createroom.api.StartDMAction
|
import io.element.android.features.createroom.api.StartDMAction
|
||||||
import io.element.android.features.createroom.test.FakeStartDMAction
|
import io.element.android.features.createroom.test.FakeStartDMAction
|
||||||
import io.element.android.features.roomdetails.aMatrixRoom
|
import io.element.android.features.roomdetails.aMatrixRoom
|
||||||
|
|
@ -65,14 +65,14 @@ class RoomMemberDetailsPresenterTests {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.userId).isEqualTo(roomMember.userId.value)
|
assertThat(initialState.userId).isEqualTo(roomMember.userId.value)
|
||||||
Truth.assertThat(initialState.userName).isEqualTo(roomMember.displayName)
|
assertThat(initialState.userName).isEqualTo(roomMember.displayName)
|
||||||
Truth.assertThat(initialState.avatarUrl).isEqualTo(roomMember.avatarUrl)
|
assertThat(initialState.avatarUrl).isEqualTo(roomMember.avatarUrl)
|
||||||
Truth.assertThat(initialState.isBlocked).isEqualTo(Async.Success(roomMember.isIgnored))
|
assertThat(initialState.isBlocked).isEqualTo(Async.Success(roomMember.isIgnored))
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val loadedState = awaitItem()
|
val loadedState = awaitItem()
|
||||||
Truth.assertThat(loadedState.userName).isEqualTo("A custom name")
|
assertThat(loadedState.userName).isEqualTo("A custom name")
|
||||||
Truth.assertThat(loadedState.avatarUrl).isEqualTo("A custom avatar")
|
assertThat(loadedState.avatarUrl).isEqualTo("A custom avatar")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -92,8 +92,8 @@ class RoomMemberDetailsPresenterTests {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.userName).isEqualTo(roomMember.displayName)
|
assertThat(initialState.userName).isEqualTo(roomMember.displayName)
|
||||||
Truth.assertThat(initialState.avatarUrl).isEqualTo(roomMember.avatarUrl)
|
assertThat(initialState.avatarUrl).isEqualTo(roomMember.avatarUrl)
|
||||||
|
|
||||||
ensureAllEventsConsumed()
|
ensureAllEventsConsumed()
|
||||||
}
|
}
|
||||||
|
|
@ -115,8 +115,8 @@ class RoomMemberDetailsPresenterTests {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.userName).isEqualTo(roomMember.displayName)
|
assertThat(initialState.userName).isEqualTo(roomMember.displayName)
|
||||||
Truth.assertThat(initialState.avatarUrl).isEqualTo(roomMember.avatarUrl)
|
assertThat(initialState.avatarUrl).isEqualTo(roomMember.avatarUrl)
|
||||||
|
|
||||||
ensureAllEventsConsumed()
|
ensureAllEventsConsumed()
|
||||||
}
|
}
|
||||||
|
|
@ -132,10 +132,10 @@ class RoomMemberDetailsPresenterTests {
|
||||||
initialState.eventSink(RoomMemberDetailsEvents.BlockUser(needsConfirmation = true))
|
initialState.eventSink(RoomMemberDetailsEvents.BlockUser(needsConfirmation = true))
|
||||||
|
|
||||||
val dialogState = awaitItem()
|
val dialogState = awaitItem()
|
||||||
Truth.assertThat(dialogState.displayConfirmationDialog).isEqualTo(RoomMemberDetailsState.ConfirmationDialog.Block)
|
assertThat(dialogState.displayConfirmationDialog).isEqualTo(RoomMemberDetailsState.ConfirmationDialog.Block)
|
||||||
|
|
||||||
dialogState.eventSink(RoomMemberDetailsEvents.ClearConfirmationDialog)
|
dialogState.eventSink(RoomMemberDetailsEvents.ClearConfirmationDialog)
|
||||||
Truth.assertThat(awaitItem().displayConfirmationDialog).isNull()
|
assertThat(awaitItem().displayConfirmationDialog).isNull()
|
||||||
|
|
||||||
ensureAllEventsConsumed()
|
ensureAllEventsConsumed()
|
||||||
}
|
}
|
||||||
|
|
@ -149,12 +149,12 @@ class RoomMemberDetailsPresenterTests {
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink(RoomMemberDetailsEvents.BlockUser(needsConfirmation = false))
|
initialState.eventSink(RoomMemberDetailsEvents.BlockUser(needsConfirmation = false))
|
||||||
Truth.assertThat(awaitItem().isBlocked.isLoading()).isTrue()
|
assertThat(awaitItem().isBlocked.isLoading()).isTrue()
|
||||||
Truth.assertThat(awaitItem().isBlocked.dataOrNull()).isTrue()
|
assertThat(awaitItem().isBlocked.dataOrNull()).isTrue()
|
||||||
|
|
||||||
initialState.eventSink(RoomMemberDetailsEvents.UnblockUser(needsConfirmation = false))
|
initialState.eventSink(RoomMemberDetailsEvents.UnblockUser(needsConfirmation = false))
|
||||||
Truth.assertThat(awaitItem().isBlocked.isLoading()).isTrue()
|
assertThat(awaitItem().isBlocked.isLoading()).isTrue()
|
||||||
Truth.assertThat(awaitItem().isBlocked.dataOrNull()).isFalse()
|
assertThat(awaitItem().isBlocked.dataOrNull()).isFalse()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -168,12 +168,12 @@ class RoomMemberDetailsPresenterTests {
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink(RoomMemberDetailsEvents.BlockUser(needsConfirmation = false))
|
initialState.eventSink(RoomMemberDetailsEvents.BlockUser(needsConfirmation = false))
|
||||||
Truth.assertThat(awaitItem().isBlocked.isLoading()).isTrue()
|
assertThat(awaitItem().isBlocked.isLoading()).isTrue()
|
||||||
val errorState = awaitItem()
|
val errorState = awaitItem()
|
||||||
Truth.assertThat(errorState.isBlocked.errorOrNull()).isEqualTo(A_THROWABLE)
|
assertThat(errorState.isBlocked.errorOrNull()).isEqualTo(A_THROWABLE)
|
||||||
// Clear error
|
// Clear error
|
||||||
initialState.eventSink(RoomMemberDetailsEvents.ClearBlockUserError)
|
initialState.eventSink(RoomMemberDetailsEvents.ClearBlockUserError)
|
||||||
Truth.assertThat(awaitItem().isBlocked).isEqualTo(Async.Success(false))
|
assertThat(awaitItem().isBlocked).isEqualTo(Async.Success(false))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -187,10 +187,10 @@ class RoomMemberDetailsPresenterTests {
|
||||||
initialState.eventSink(RoomMemberDetailsEvents.UnblockUser(needsConfirmation = true))
|
initialState.eventSink(RoomMemberDetailsEvents.UnblockUser(needsConfirmation = true))
|
||||||
|
|
||||||
val dialogState = awaitItem()
|
val dialogState = awaitItem()
|
||||||
Truth.assertThat(dialogState.displayConfirmationDialog).isEqualTo(RoomMemberDetailsState.ConfirmationDialog.Unblock)
|
assertThat(dialogState.displayConfirmationDialog).isEqualTo(RoomMemberDetailsState.ConfirmationDialog.Unblock)
|
||||||
|
|
||||||
dialogState.eventSink(RoomMemberDetailsEvents.ClearConfirmationDialog)
|
dialogState.eventSink(RoomMemberDetailsEvents.ClearConfirmationDialog)
|
||||||
Truth.assertThat(awaitItem().displayConfirmationDialog).isNull()
|
assertThat(awaitItem().displayConfirmationDialog).isNull()
|
||||||
|
|
||||||
ensureAllEventsConsumed()
|
ensureAllEventsConsumed()
|
||||||
}
|
}
|
||||||
|
|
@ -204,28 +204,28 @@ class RoomMemberDetailsPresenterTests {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.startDmActionState).isInstanceOf(Async.Uninitialized::class.java)
|
assertThat(initialState.startDmActionState).isInstanceOf(Async.Uninitialized::class.java)
|
||||||
val startDMSuccessResult = Async.Success(A_ROOM_ID)
|
val startDMSuccessResult = Async.Success(A_ROOM_ID)
|
||||||
val startDMFailureResult = Async.Failure<RoomId>(A_THROWABLE)
|
val startDMFailureResult = Async.Failure<RoomId>(A_THROWABLE)
|
||||||
|
|
||||||
// Failure
|
// Failure
|
||||||
startDMAction.givenExecuteResult(startDMFailureResult)
|
startDMAction.givenExecuteResult(startDMFailureResult)
|
||||||
initialState.eventSink(RoomMemberDetailsEvents.StartDM)
|
initialState.eventSink(RoomMemberDetailsEvents.StartDM)
|
||||||
Truth.assertThat(awaitItem().startDmActionState).isInstanceOf(Async.Loading::class.java)
|
assertThat(awaitItem().startDmActionState).isInstanceOf(Async.Loading::class.java)
|
||||||
awaitItem().also { state ->
|
awaitItem().also { state ->
|
||||||
Truth.assertThat(state.startDmActionState).isEqualTo(startDMFailureResult)
|
assertThat(state.startDmActionState).isEqualTo(startDMFailureResult)
|
||||||
state.eventSink(RoomMemberDetailsEvents.ClearStartDMState)
|
state.eventSink(RoomMemberDetailsEvents.ClearStartDMState)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Success
|
// Success
|
||||||
startDMAction.givenExecuteResult(startDMSuccessResult)
|
startDMAction.givenExecuteResult(startDMSuccessResult)
|
||||||
awaitItem().also { state ->
|
awaitItem().also { state ->
|
||||||
Truth.assertThat(state.startDmActionState).isEqualTo(Async.Uninitialized)
|
assertThat(state.startDmActionState).isEqualTo(Async.Uninitialized)
|
||||||
state.eventSink(RoomMemberDetailsEvents.StartDM)
|
state.eventSink(RoomMemberDetailsEvents.StartDM)
|
||||||
}
|
}
|
||||||
Truth.assertThat(awaitItem().startDmActionState).isInstanceOf(Async.Loading::class.java)
|
assertThat(awaitItem().startDmActionState).isInstanceOf(Async.Loading::class.java)
|
||||||
awaitItem().also { state ->
|
awaitItem().also { state ->
|
||||||
Truth.assertThat(state.startDmActionState).isEqualTo(startDMSuccessResult)
|
assertThat(state.startDmActionState).isEqualTo(startDMSuccessResult)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ package io.element.android.features.roomdetails.notificationsettings
|
||||||
import app.cash.molecule.RecompositionMode
|
import app.cash.molecule.RecompositionMode
|
||||||
import app.cash.molecule.moleculeFlow
|
import app.cash.molecule.moleculeFlow
|
||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.roomdetails.aMatrixRoom
|
import io.element.android.features.roomdetails.aMatrixRoom
|
||||||
import io.element.android.features.roomdetails.impl.notificationsettings.RoomNotificationSettingsEvents
|
import io.element.android.features.roomdetails.impl.notificationsettings.RoomNotificationSettingsEvents
|
||||||
import io.element.android.features.roomdetails.impl.notificationsettings.RoomNotificationSettingsPresenter
|
import io.element.android.features.roomdetails.impl.notificationsettings.RoomNotificationSettingsPresenter
|
||||||
|
|
@ -39,8 +39,8 @@ class RoomNotificationSettingsPresenterTests {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.roomNotificationSettings.dataOrNull()).isNull()
|
assertThat(initialState.roomNotificationSettings.dataOrNull()).isNull()
|
||||||
Truth.assertThat(initialState.defaultRoomNotificationMode).isNull()
|
assertThat(initialState.defaultRoomNotificationMode).isNull()
|
||||||
cancelAndIgnoreRemainingEvents()
|
cancelAndIgnoreRemainingEvents()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -55,7 +55,7 @@ class RoomNotificationSettingsPresenterTests {
|
||||||
val updatedState = consumeItemsUntilPredicate {
|
val updatedState = consumeItemsUntilPredicate {
|
||||||
it.roomNotificationSettings.dataOrNull()?.mode == RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY
|
it.roomNotificationSettings.dataOrNull()?.mode == RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY
|
||||||
}.last()
|
}.last()
|
||||||
Truth.assertThat(updatedState.roomNotificationSettings.dataOrNull()?.mode).isEqualTo(RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY)
|
assertThat(updatedState.roomNotificationSettings.dataOrNull()?.mode).isEqualTo(RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY)
|
||||||
cancelAndIgnoreRemainingEvents()
|
cancelAndIgnoreRemainingEvents()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -71,7 +71,7 @@ class RoomNotificationSettingsPresenterTests {
|
||||||
val updatedState = consumeItemsUntilPredicate {
|
val updatedState = consumeItemsUntilPredicate {
|
||||||
it.roomNotificationSettings.dataOrNull()?.mode == RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY
|
it.roomNotificationSettings.dataOrNull()?.mode == RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY
|
||||||
}.last()
|
}.last()
|
||||||
Truth.assertThat(updatedState.roomNotificationSettings.dataOrNull()?.mode).isEqualTo(RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY)
|
assertThat(updatedState.roomNotificationSettings.dataOrNull()?.mode).isEqualTo(RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -89,16 +89,16 @@ class RoomNotificationSettingsPresenterTests {
|
||||||
it.setNotificationSettingAction.isFailure()
|
it.setNotificationSettingAction.isFailure()
|
||||||
}.last()
|
}.last()
|
||||||
|
|
||||||
Truth.assertThat(failedState.roomNotificationSettings.dataOrNull()?.isDefault).isTrue()
|
assertThat(failedState.roomNotificationSettings.dataOrNull()?.isDefault).isTrue()
|
||||||
Truth.assertThat(failedState.pendingSetDefault).isNull()
|
assertThat(failedState.pendingSetDefault).isNull()
|
||||||
Truth.assertThat(failedState.setNotificationSettingAction.isFailure()).isTrue()
|
assertThat(failedState.setNotificationSettingAction.isFailure()).isTrue()
|
||||||
|
|
||||||
failedState.eventSink(RoomNotificationSettingsEvents.ClearSetNotificationError)
|
failedState.eventSink(RoomNotificationSettingsEvents.ClearSetNotificationError)
|
||||||
|
|
||||||
val errorClearedState = consumeItemsUntilPredicate {
|
val errorClearedState = consumeItemsUntilPredicate {
|
||||||
it.setNotificationSettingAction.isUninitialized()
|
it.setNotificationSettingAction.isUninitialized()
|
||||||
}.last()
|
}.last()
|
||||||
Truth.assertThat(errorClearedState.setNotificationSettingAction.isUninitialized()).isTrue()
|
assertThat(errorClearedState.setNotificationSettingAction.isUninitialized()).isTrue()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -114,7 +114,7 @@ class RoomNotificationSettingsPresenterTests {
|
||||||
val defaultState = consumeItemsUntilPredicate {
|
val defaultState = consumeItemsUntilPredicate {
|
||||||
it.roomNotificationSettings.dataOrNull()?.isDefault == false
|
it.roomNotificationSettings.dataOrNull()?.isDefault == false
|
||||||
}.last()
|
}.last()
|
||||||
Truth.assertThat(defaultState.roomNotificationSettings.dataOrNull()?.isDefault).isFalse()
|
assertThat(defaultState.roomNotificationSettings.dataOrNull()?.isDefault).isFalse()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -130,7 +130,7 @@ class RoomNotificationSettingsPresenterTests {
|
||||||
val defaultState = consumeItemsUntilPredicate {
|
val defaultState = consumeItemsUntilPredicate {
|
||||||
it.roomNotificationSettings.dataOrNull()?.mode == RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY
|
it.roomNotificationSettings.dataOrNull()?.mode == RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY
|
||||||
}.last()
|
}.last()
|
||||||
Truth.assertThat(defaultState.roomNotificationSettings.dataOrNull()?.mode).isEqualTo(RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY)
|
assertThat(defaultState.roomNotificationSettings.dataOrNull()?.mode).isEqualTo(RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY)
|
||||||
cancelAndIgnoreRemainingEvents()
|
cancelAndIgnoreRemainingEvents()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -149,13 +149,13 @@ class RoomNotificationSettingsPresenterTests {
|
||||||
val failedState = consumeItemsUntilPredicate {
|
val failedState = consumeItemsUntilPredicate {
|
||||||
it.restoreDefaultAction.isFailure()
|
it.restoreDefaultAction.isFailure()
|
||||||
}.last()
|
}.last()
|
||||||
Truth.assertThat(failedState.restoreDefaultAction.isFailure()).isTrue()
|
assertThat(failedState.restoreDefaultAction.isFailure()).isTrue()
|
||||||
failedState.eventSink(RoomNotificationSettingsEvents.ClearRestoreDefaultError)
|
failedState.eventSink(RoomNotificationSettingsEvents.ClearRestoreDefaultError)
|
||||||
|
|
||||||
val errorClearedState = consumeItemsUntilPredicate {
|
val errorClearedState = consumeItemsUntilPredicate {
|
||||||
it.restoreDefaultAction.isUninitialized()
|
it.restoreDefaultAction.isUninitialized()
|
||||||
}.last()
|
}.last()
|
||||||
Truth.assertThat(errorClearedState.restoreDefaultAction.isUninitialized()).isTrue()
|
assertThat(errorClearedState.restoreDefaultAction.isUninitialized()).isTrue()
|
||||||
cancelAndIgnoreRemainingEvents()
|
cancelAndIgnoreRemainingEvents()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ package io.element.android.features.roomlist.impl
|
||||||
import app.cash.molecule.RecompositionMode
|
import app.cash.molecule.RecompositionMode
|
||||||
import app.cash.molecule.moleculeFlow
|
import app.cash.molecule.moleculeFlow
|
||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.leaveroom.api.LeaveRoomEvent
|
import io.element.android.features.leaveroom.api.LeaveRoomEvent
|
||||||
import io.element.android.features.leaveroom.api.LeaveRoomPresenter
|
import io.element.android.features.leaveroom.api.LeaveRoomPresenter
|
||||||
import io.element.android.features.leaveroom.fake.FakeLeaveRoomPresenter
|
import io.element.android.features.leaveroom.fake.FakeLeaveRoomPresenter
|
||||||
|
|
@ -83,13 +83,13 @@ class RoomListPresenterTests {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.matrixUser).isNull()
|
assertThat(initialState.matrixUser).isNull()
|
||||||
val withUserState = awaitItem()
|
val withUserState = awaitItem()
|
||||||
Truth.assertThat(withUserState.matrixUser).isNotNull()
|
assertThat(withUserState.matrixUser).isNotNull()
|
||||||
Truth.assertThat(withUserState.matrixUser!!.userId).isEqualTo(A_USER_ID)
|
assertThat(withUserState.matrixUser!!.userId).isEqualTo(A_USER_ID)
|
||||||
Truth.assertThat(withUserState.matrixUser!!.displayName).isEqualTo(A_USER_NAME)
|
assertThat(withUserState.matrixUser!!.displayName).isEqualTo(A_USER_NAME)
|
||||||
Truth.assertThat(withUserState.matrixUser!!.avatarUrl).isEqualTo(AN_AVATAR_URL)
|
assertThat(withUserState.matrixUser!!.avatarUrl).isEqualTo(AN_AVATAR_URL)
|
||||||
Truth.assertThat(withUserState.showAvatarIndicator).isFalse()
|
assertThat(withUserState.showAvatarIndicator).isFalse()
|
||||||
scope.cancel()
|
scope.cancel()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -109,12 +109,12 @@ class RoomListPresenterTests {
|
||||||
}.test {
|
}.test {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.showAvatarIndicator).isFalse()
|
assertThat(initialState.showAvatarIndicator).isFalse()
|
||||||
sessionVerificationService.givenCanVerifySession(false)
|
sessionVerificationService.givenCanVerifySession(false)
|
||||||
Truth.assertThat(awaitItem().showAvatarIndicator).isFalse()
|
assertThat(awaitItem().showAvatarIndicator).isFalse()
|
||||||
encryptionService.emitBackupState(BackupState.UNKNOWN)
|
encryptionService.emitBackupState(BackupState.UNKNOWN)
|
||||||
val finalState = awaitItem()
|
val finalState = awaitItem()
|
||||||
Truth.assertThat(finalState.showAvatarIndicator).isTrue()
|
assertThat(finalState.showAvatarIndicator).isTrue()
|
||||||
scope.cancel()
|
scope.cancel()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -131,9 +131,9 @@ class RoomListPresenterTests {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
Truth.assertThat(initialState.matrixUser).isNull()
|
assertThat(initialState.matrixUser).isNull()
|
||||||
val withUserState = awaitItem()
|
val withUserState = awaitItem()
|
||||||
Truth.assertThat(withUserState.matrixUser).isNotNull()
|
assertThat(withUserState.matrixUser).isNotNull()
|
||||||
scope.cancel()
|
scope.cancel()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -147,10 +147,10 @@ class RoomListPresenterTests {
|
||||||
}.test {
|
}.test {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val withUserState = awaitItem()
|
val withUserState = awaitItem()
|
||||||
Truth.assertThat(withUserState.filter).isEqualTo("")
|
assertThat(withUserState.filter).isEqualTo("")
|
||||||
withUserState.eventSink.invoke(RoomListEvents.UpdateFilter("t"))
|
withUserState.eventSink.invoke(RoomListEvents.UpdateFilter("t"))
|
||||||
val withFilterState = awaitItem()
|
val withFilterState = awaitItem()
|
||||||
Truth.assertThat(withFilterState.filter).isEqualTo("t")
|
assertThat(withFilterState.filter).isEqualTo("t")
|
||||||
cancelAndIgnoreRemainingEvents()
|
cancelAndIgnoreRemainingEvents()
|
||||||
scope.cancel()
|
scope.cancel()
|
||||||
}
|
}
|
||||||
|
|
@ -169,12 +169,12 @@ class RoomListPresenterTests {
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = consumeItemsUntilPredicate { state -> state.roomList.size == 16 }.last()
|
val initialState = consumeItemsUntilPredicate { state -> state.roomList.size == 16 }.last()
|
||||||
// Room list is loaded with 16 placeholders
|
// Room list is loaded with 16 placeholders
|
||||||
Truth.assertThat(initialState.roomList.size).isEqualTo(16)
|
assertThat(initialState.roomList.size).isEqualTo(16)
|
||||||
Truth.assertThat(initialState.roomList.all { it.isPlaceholder }).isTrue()
|
assertThat(initialState.roomList.all { it.isPlaceholder }).isTrue()
|
||||||
roomListService.postAllRooms(listOf(aRoomSummaryFilled()))
|
roomListService.postAllRooms(listOf(aRoomSummaryFilled()))
|
||||||
val withRoomState = consumeItemsUntilPredicate { state -> state.roomList.size == 1 }.last()
|
val withRoomState = consumeItemsUntilPredicate { state -> state.roomList.size == 1 }.last()
|
||||||
Truth.assertThat(withRoomState.roomList.size).isEqualTo(1)
|
assertThat(withRoomState.roomList.size).isEqualTo(1)
|
||||||
Truth.assertThat(withRoomState.roomList.first())
|
assertThat(withRoomState.roomList.first())
|
||||||
.isEqualTo(aRoomListRoomSummary)
|
.isEqualTo(aRoomListRoomSummary)
|
||||||
scope.cancel()
|
scope.cancel()
|
||||||
}
|
}
|
||||||
|
|
@ -196,15 +196,15 @@ class RoomListPresenterTests {
|
||||||
// Test filtering with result
|
// Test filtering with result
|
||||||
loadedState.eventSink.invoke(RoomListEvents.UpdateFilter(A_ROOM_NAME.substring(0, 3)))
|
loadedState.eventSink.invoke(RoomListEvents.UpdateFilter(A_ROOM_NAME.substring(0, 3)))
|
||||||
val withFilteredRoomState = consumeItemsUntilPredicate { state -> state.filteredRoomList.size == 1 }.last()
|
val withFilteredRoomState = consumeItemsUntilPredicate { state -> state.filteredRoomList.size == 1 }.last()
|
||||||
Truth.assertThat(withFilteredRoomState.filter).isEqualTo(A_ROOM_NAME.substring(0, 3))
|
assertThat(withFilteredRoomState.filter).isEqualTo(A_ROOM_NAME.substring(0, 3))
|
||||||
Truth.assertThat(withFilteredRoomState.filteredRoomList.size).isEqualTo(1)
|
assertThat(withFilteredRoomState.filteredRoomList.size).isEqualTo(1)
|
||||||
Truth.assertThat(withFilteredRoomState.filteredRoomList.first())
|
assertThat(withFilteredRoomState.filteredRoomList.first())
|
||||||
.isEqualTo(aRoomListRoomSummary)
|
.isEqualTo(aRoomListRoomSummary)
|
||||||
// Test filtering without result
|
// Test filtering without result
|
||||||
withFilteredRoomState.eventSink.invoke(RoomListEvents.UpdateFilter("tada"))
|
withFilteredRoomState.eventSink.invoke(RoomListEvents.UpdateFilter("tada"))
|
||||||
val withNotFilteredRoomState = consumeItemsUntilPredicate { state -> state.filteredRoomList.size == 0 }.last()
|
val withNotFilteredRoomState = consumeItemsUntilPredicate { state -> state.filteredRoomList.size == 0 }.last()
|
||||||
Truth.assertThat(withNotFilteredRoomState.filter).isEqualTo("tada")
|
assertThat(withNotFilteredRoomState.filter).isEqualTo("tada")
|
||||||
Truth.assertThat(withNotFilteredRoomState.filteredRoomList).isEmpty()
|
assertThat(withNotFilteredRoomState.filteredRoomList).isEmpty()
|
||||||
scope.cancel()
|
scope.cancel()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -223,28 +223,28 @@ class RoomListPresenterTests {
|
||||||
roomListService.postAllRooms(listOf(aRoomSummaryFilled()))
|
roomListService.postAllRooms(listOf(aRoomSummaryFilled()))
|
||||||
val loadedState = awaitItem()
|
val loadedState = awaitItem()
|
||||||
// check initial value
|
// check initial value
|
||||||
Truth.assertThat(roomListService.latestSlidingSyncRange).isNull()
|
assertThat(roomListService.latestSlidingSyncRange).isNull()
|
||||||
// Test empty range
|
// Test empty range
|
||||||
loadedState.eventSink.invoke(RoomListEvents.UpdateVisibleRange(IntRange(1, 0)))
|
loadedState.eventSink.invoke(RoomListEvents.UpdateVisibleRange(IntRange(1, 0)))
|
||||||
Truth.assertThat(roomListService.latestSlidingSyncRange).isNull()
|
assertThat(roomListService.latestSlidingSyncRange).isNull()
|
||||||
// Update visible range and check that range is transmitted to the SDK after computation
|
// Update visible range and check that range is transmitted to the SDK after computation
|
||||||
loadedState.eventSink.invoke(RoomListEvents.UpdateVisibleRange(IntRange(0, 0)))
|
loadedState.eventSink.invoke(RoomListEvents.UpdateVisibleRange(IntRange(0, 0)))
|
||||||
Truth.assertThat(roomListService.latestSlidingSyncRange)
|
assertThat(roomListService.latestSlidingSyncRange)
|
||||||
.isEqualTo(IntRange(0, 20))
|
.isEqualTo(IntRange(0, 20))
|
||||||
loadedState.eventSink.invoke(RoomListEvents.UpdateVisibleRange(IntRange(0, 1)))
|
loadedState.eventSink.invoke(RoomListEvents.UpdateVisibleRange(IntRange(0, 1)))
|
||||||
Truth.assertThat(roomListService.latestSlidingSyncRange)
|
assertThat(roomListService.latestSlidingSyncRange)
|
||||||
.isEqualTo(IntRange(0, 21))
|
.isEqualTo(IntRange(0, 21))
|
||||||
loadedState.eventSink.invoke(RoomListEvents.UpdateVisibleRange(IntRange(19, 29)))
|
loadedState.eventSink.invoke(RoomListEvents.UpdateVisibleRange(IntRange(19, 29)))
|
||||||
Truth.assertThat(roomListService.latestSlidingSyncRange)
|
assertThat(roomListService.latestSlidingSyncRange)
|
||||||
.isEqualTo(IntRange(0, 49))
|
.isEqualTo(IntRange(0, 49))
|
||||||
loadedState.eventSink.invoke(RoomListEvents.UpdateVisibleRange(IntRange(49, 59)))
|
loadedState.eventSink.invoke(RoomListEvents.UpdateVisibleRange(IntRange(49, 59)))
|
||||||
Truth.assertThat(roomListService.latestSlidingSyncRange)
|
assertThat(roomListService.latestSlidingSyncRange)
|
||||||
.isEqualTo(IntRange(29, 79))
|
.isEqualTo(IntRange(29, 79))
|
||||||
loadedState.eventSink.invoke(RoomListEvents.UpdateVisibleRange(IntRange(149, 159)))
|
loadedState.eventSink.invoke(RoomListEvents.UpdateVisibleRange(IntRange(149, 159)))
|
||||||
Truth.assertThat(roomListService.latestSlidingSyncRange)
|
assertThat(roomListService.latestSlidingSyncRange)
|
||||||
.isEqualTo(IntRange(129, 179))
|
.isEqualTo(IntRange(129, 179))
|
||||||
loadedState.eventSink.invoke(RoomListEvents.UpdateVisibleRange(IntRange(149, 259)))
|
loadedState.eventSink.invoke(RoomListEvents.UpdateVisibleRange(IntRange(149, 259)))
|
||||||
Truth.assertThat(roomListService.latestSlidingSyncRange)
|
assertThat(roomListService.latestSlidingSyncRange)
|
||||||
.isEqualTo(IntRange(129, 279))
|
.isEqualTo(IntRange(129, 279))
|
||||||
cancelAndIgnoreRemainingEvents()
|
cancelAndIgnoreRemainingEvents()
|
||||||
scope.cancel()
|
scope.cancel()
|
||||||
|
|
@ -270,10 +270,10 @@ class RoomListPresenterTests {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val eventSink = awaitItem().eventSink
|
val eventSink = awaitItem().eventSink
|
||||||
Truth.assertThat(awaitItem().displayVerificationPrompt).isTrue()
|
assertThat(awaitItem().displayVerificationPrompt).isTrue()
|
||||||
|
|
||||||
eventSink(RoomListEvents.DismissRequestVerificationPrompt)
|
eventSink(RoomListEvents.DismissRequestVerificationPrompt)
|
||||||
Truth.assertThat(awaitItem().displayVerificationPrompt).isFalse()
|
assertThat(awaitItem().displayVerificationPrompt).isFalse()
|
||||||
scope.cancel()
|
scope.cancel()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -288,16 +288,16 @@ class RoomListPresenterTests {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
Truth.assertThat(awaitItem().invitesState).isEqualTo(InvitesState.NoInvites)
|
assertThat(awaitItem().invitesState).isEqualTo(InvitesState.NoInvites)
|
||||||
|
|
||||||
inviteStateFlow.value = InvitesState.SeenInvites
|
inviteStateFlow.value = InvitesState.SeenInvites
|
||||||
Truth.assertThat(awaitItem().invitesState).isEqualTo(InvitesState.SeenInvites)
|
assertThat(awaitItem().invitesState).isEqualTo(InvitesState.SeenInvites)
|
||||||
|
|
||||||
inviteStateFlow.value = InvitesState.NewInvites
|
inviteStateFlow.value = InvitesState.NewInvites
|
||||||
Truth.assertThat(awaitItem().invitesState).isEqualTo(InvitesState.NewInvites)
|
assertThat(awaitItem().invitesState).isEqualTo(InvitesState.NewInvites)
|
||||||
|
|
||||||
inviteStateFlow.value = InvitesState.NoInvites
|
inviteStateFlow.value = InvitesState.NoInvites
|
||||||
Truth.assertThat(awaitItem().invitesState).isEqualTo(InvitesState.NoInvites)
|
assertThat(awaitItem().invitesState).isEqualTo(InvitesState.NoInvites)
|
||||||
scope.cancel()
|
scope.cancel()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -316,7 +316,7 @@ class RoomListPresenterTests {
|
||||||
initialState.eventSink(RoomListEvents.ShowContextMenu(summary))
|
initialState.eventSink(RoomListEvents.ShowContextMenu(summary))
|
||||||
|
|
||||||
val shownState = awaitItem()
|
val shownState = awaitItem()
|
||||||
Truth.assertThat(shownState.contextMenu)
|
assertThat(shownState.contextMenu)
|
||||||
.isEqualTo(RoomListState.ContextMenu.Shown(summary.roomId, summary.name))
|
.isEqualTo(RoomListState.ContextMenu.Shown(summary.roomId, summary.name))
|
||||||
scope.cancel()
|
scope.cancel()
|
||||||
}
|
}
|
||||||
|
|
@ -336,12 +336,12 @@ class RoomListPresenterTests {
|
||||||
initialState.eventSink(RoomListEvents.ShowContextMenu(summary))
|
initialState.eventSink(RoomListEvents.ShowContextMenu(summary))
|
||||||
|
|
||||||
val shownState = awaitItem()
|
val shownState = awaitItem()
|
||||||
Truth.assertThat(shownState.contextMenu)
|
assertThat(shownState.contextMenu)
|
||||||
.isEqualTo(RoomListState.ContextMenu.Shown(summary.roomId, summary.name))
|
.isEqualTo(RoomListState.ContextMenu.Shown(summary.roomId, summary.name))
|
||||||
shownState.eventSink(RoomListEvents.HideContextMenu)
|
shownState.eventSink(RoomListEvents.HideContextMenu)
|
||||||
|
|
||||||
val hiddenState = awaitItem()
|
val hiddenState = awaitItem()
|
||||||
Truth.assertThat(hiddenState.contextMenu).isEqualTo(RoomListState.ContextMenu.Hidden)
|
assertThat(hiddenState.contextMenu).isEqualTo(RoomListState.ContextMenu.Hidden)
|
||||||
scope.cancel()
|
scope.cancel()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -356,7 +356,7 @@ class RoomListPresenterTests {
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink(RoomListEvents.LeaveRoom(A_ROOM_ID))
|
initialState.eventSink(RoomListEvents.LeaveRoom(A_ROOM_ID))
|
||||||
Truth.assertThat(leaveRoomPresenter.events).containsExactly(LeaveRoomEvent.ShowConfirmation(A_ROOM_ID))
|
assertThat(leaveRoomPresenter.events).containsExactly(LeaveRoomEvent.ShowConfirmation(A_ROOM_ID))
|
||||||
cancelAndIgnoreRemainingEvents()
|
cancelAndIgnoreRemainingEvents()
|
||||||
scope.cancel()
|
scope.cancel()
|
||||||
}
|
}
|
||||||
|
|
@ -384,7 +384,7 @@ class RoomListPresenterTests {
|
||||||
}.last()
|
}.last()
|
||||||
|
|
||||||
val room = updatedState.roomList.find { it.id == A_ROOM_ID.value }
|
val room = updatedState.roomList.find { it.id == A_ROOM_ID.value }
|
||||||
Truth.assertThat(room?.notificationMode).isEqualTo(userDefinedMode)
|
assertThat(room?.notificationMode).isEqualTo(userDefinedMode)
|
||||||
cancelAndIgnoreRemainingEvents()
|
cancelAndIgnoreRemainingEvents()
|
||||||
scope.cancel()
|
scope.cancel()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ package io.element.android.features.roomlist.impl.datasource
|
||||||
import app.cash.molecule.RecompositionMode
|
import app.cash.molecule.RecompositionMode
|
||||||
import app.cash.molecule.moleculeFlow
|
import app.cash.molecule.moleculeFlow
|
||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.invitelist.test.FakeSeenInvitesStore
|
import io.element.android.features.invitelist.test.FakeSeenInvitesStore
|
||||||
import io.element.android.features.roomlist.impl.InvitesState
|
import io.element.android.features.roomlist.impl.InvitesState
|
||||||
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
||||||
|
|
@ -43,7 +43,7 @@ internal class DefaultInviteStateDataSourceTest {
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
moleculeFlow(RecompositionMode.Immediate) {
|
||||||
dataSource.inviteState()
|
dataSource.inviteState()
|
||||||
}.test {
|
}.test {
|
||||||
Truth.assertThat(awaitItem()).isEqualTo(InvitesState.NoInvites)
|
assertThat(awaitItem()).isEqualTo(InvitesState.NoInvites)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -59,7 +59,7 @@ internal class DefaultInviteStateDataSourceTest {
|
||||||
dataSource.inviteState()
|
dataSource.inviteState()
|
||||||
}.test {
|
}.test {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
Truth.assertThat(awaitItem()).isEqualTo(InvitesState.NewInvites)
|
assertThat(awaitItem()).isEqualTo(InvitesState.NewInvites)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -76,7 +76,7 @@ internal class DefaultInviteStateDataSourceTest {
|
||||||
dataSource.inviteState()
|
dataSource.inviteState()
|
||||||
}.test {
|
}.test {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
Truth.assertThat(awaitItem()).isEqualTo(InvitesState.NewInvites)
|
assertThat(awaitItem()).isEqualTo(InvitesState.NewInvites)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -94,7 +94,7 @@ internal class DefaultInviteStateDataSourceTest {
|
||||||
}.test {
|
}.test {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
|
|
||||||
Truth.assertThat(awaitItem()).isEqualTo(InvitesState.SeenInvites)
|
assertThat(awaitItem()).isEqualTo(InvitesState.SeenInvites)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -109,27 +109,27 @@ internal class DefaultInviteStateDataSourceTest {
|
||||||
dataSource.inviteState()
|
dataSource.inviteState()
|
||||||
}.test {
|
}.test {
|
||||||
// Initially there are no invites
|
// Initially there are no invites
|
||||||
Truth.assertThat(awaitItem()).isEqualTo(InvitesState.NoInvites)
|
assertThat(awaitItem()).isEqualTo(InvitesState.NoInvites)
|
||||||
|
|
||||||
// When a single invite is received, state should be NewInvites
|
// When a single invite is received, state should be NewInvites
|
||||||
roomListService.postInviteRooms(listOf(aRoomSummaryFilled(roomId = A_ROOM_ID)))
|
roomListService.postInviteRooms(listOf(aRoomSummaryFilled(roomId = A_ROOM_ID)))
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
Truth.assertThat(awaitItem()).isEqualTo(InvitesState.NewInvites)
|
assertThat(awaitItem()).isEqualTo(InvitesState.NewInvites)
|
||||||
|
|
||||||
// If that invite is marked as seen, then the state becomes SeenInvites
|
// If that invite is marked as seen, then the state becomes SeenInvites
|
||||||
seenStore.publishRoomIds(setOf(A_ROOM_ID))
|
seenStore.publishRoomIds(setOf(A_ROOM_ID))
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
Truth.assertThat(awaitItem()).isEqualTo(InvitesState.SeenInvites)
|
assertThat(awaitItem()).isEqualTo(InvitesState.SeenInvites)
|
||||||
|
|
||||||
// Another new invite resets it to NewInvites
|
// Another new invite resets it to NewInvites
|
||||||
roomListService.postInviteRooms(listOf(aRoomSummaryFilled(roomId = A_ROOM_ID), aRoomSummaryFilled(roomId = A_ROOM_ID_2)))
|
roomListService.postInviteRooms(listOf(aRoomSummaryFilled(roomId = A_ROOM_ID), aRoomSummaryFilled(roomId = A_ROOM_ID_2)))
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
Truth.assertThat(awaitItem()).isEqualTo(InvitesState.NewInvites)
|
assertThat(awaitItem()).isEqualTo(InvitesState.NewInvites)
|
||||||
|
|
||||||
// All of the invites going away reverts to NoInvites
|
// All of the invites going away reverts to NoInvites
|
||||||
roomListService.postInviteRooms(emptyList())
|
roomListService.postInviteRooms(emptyList())
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
Truth.assertThat(awaitItem()).isEqualTo(InvitesState.NoInvites)
|
assertThat(awaitItem()).isEqualTo(InvitesState.NoInvites)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,8 @@ package io.element.android.libraries.eventformatter.impl
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import androidx.compose.ui.text.AnnotatedString
|
import androidx.compose.ui.text.AnnotatedString
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
|
import com.google.common.truth.Truth.assertWithMessage
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
import io.element.android.libraries.matrix.api.media.ImageInfo
|
import io.element.android.libraries.matrix.api.media.ImageInfo
|
||||||
import io.element.android.libraries.matrix.api.media.MediaSource
|
import io.element.android.libraries.matrix.api.media.MediaSource
|
||||||
|
|
@ -90,10 +91,10 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
val message = createRoomEvent(false, senderName, RedactedContent)
|
val message = createRoomEvent(false, senderName, RedactedContent)
|
||||||
val result = formatter.format(message, isDm)
|
val result = formatter.format(message, isDm)
|
||||||
if (isDm) {
|
if (isDm) {
|
||||||
Truth.assertThat(result).isEqualTo(expected)
|
assertThat(result).isEqualTo(expected)
|
||||||
} else {
|
} else {
|
||||||
Truth.assertThat(result).isInstanceOf(AnnotatedString::class.java)
|
assertThat(result).isInstanceOf(AnnotatedString::class.java)
|
||||||
Truth.assertThat(result.toString()).isEqualTo("$senderName: $expected")
|
assertThat(result.toString()).isEqualTo("$senderName: $expected")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -105,7 +106,7 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
val info = ImageInfo(null, null, null, null, null, null, null)
|
val info = ImageInfo(null, null, null, null, null, null, null)
|
||||||
val message = createRoomEvent(false, null, StickerContent(body, info, "url"))
|
val message = createRoomEvent(false, null, StickerContent(body, info, "url"))
|
||||||
val result = formatter.format(message, false)
|
val result = formatter.format(message, false)
|
||||||
Truth.assertThat(result).isEqualTo(body)
|
assertThat(result).isEqualTo(body)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -117,10 +118,10 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
val message = createRoomEvent(false, senderName, UnableToDecryptContent(UnableToDecryptContent.Data.Unknown))
|
val message = createRoomEvent(false, senderName, UnableToDecryptContent(UnableToDecryptContent.Data.Unknown))
|
||||||
val result = formatter.format(message, isDm)
|
val result = formatter.format(message, isDm)
|
||||||
if (isDm) {
|
if (isDm) {
|
||||||
Truth.assertThat(result).isEqualTo(expected)
|
assertThat(result).isEqualTo(expected)
|
||||||
} else {
|
} else {
|
||||||
Truth.assertThat(result).isInstanceOf(AnnotatedString::class.java)
|
assertThat(result).isInstanceOf(AnnotatedString::class.java)
|
||||||
Truth.assertThat(result.toString()).isEqualTo("$senderName: $expected")
|
assertThat(result.toString()).isEqualTo("$senderName: $expected")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -139,10 +140,10 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
val message = createRoomEvent(false, senderName, type)
|
val message = createRoomEvent(false, senderName, type)
|
||||||
val result = formatter.format(message, isDm)
|
val result = formatter.format(message, isDm)
|
||||||
if (isDm) {
|
if (isDm) {
|
||||||
Truth.assertWithMessage("$type was not properly handled").that(result).isEqualTo(expected)
|
assertWithMessage("$type was not properly handled").that(result).isEqualTo(expected)
|
||||||
} else {
|
} else {
|
||||||
Truth.assertWithMessage("$type does not create an AnnotatedString").that(result).isInstanceOf(AnnotatedString::class.java)
|
assertWithMessage("$type does not create an AnnotatedString").that(result).isInstanceOf(AnnotatedString::class.java)
|
||||||
Truth.assertWithMessage("$type was not properly handled").that(result.toString()).isEqualTo("$senderName: $expected")
|
assertWithMessage("$type was not properly handled").that(result.toString()).isEqualTo("$senderName: $expected")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -202,7 +203,7 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
is NoticeMessageType,
|
is NoticeMessageType,
|
||||||
is OtherMessageType -> body
|
is OtherMessageType -> body
|
||||||
}
|
}
|
||||||
Truth.assertWithMessage("$type was not properly handled for DM").that(result).isEqualTo(expectedResult)
|
assertWithMessage("$type was not properly handled for DM").that(result).isEqualTo(expectedResult)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verify results of Room mode
|
// Verify results of Room mode
|
||||||
|
|
@ -232,11 +233,11 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
is OtherMessageType -> true
|
is OtherMessageType -> true
|
||||||
}
|
}
|
||||||
if (shouldCreateAnnotatedString) {
|
if (shouldCreateAnnotatedString) {
|
||||||
Truth.assertWithMessage("$type doesn't produce an AnnotatedString")
|
assertWithMessage("$type doesn't produce an AnnotatedString")
|
||||||
.that(result)
|
.that(result)
|
||||||
.isInstanceOf(AnnotatedString::class.java)
|
.isInstanceOf(AnnotatedString::class.java)
|
||||||
}
|
}
|
||||||
Truth.assertWithMessage("$type was not properly handled for room").that(string).isEqualTo(expectedResult)
|
assertWithMessage("$type was not properly handled for room").that(string).isEqualTo(expectedResult)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -253,11 +254,11 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
|
|
||||||
val youJoinedRoomEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = youContent)
|
val youJoinedRoomEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = youContent)
|
||||||
val youJoinedRoom = formatter.format(youJoinedRoomEvent, false)
|
val youJoinedRoom = formatter.format(youJoinedRoomEvent, false)
|
||||||
Truth.assertThat(youJoinedRoom).isEqualTo("You joined the room")
|
assertThat(youJoinedRoom).isEqualTo("You joined the room")
|
||||||
|
|
||||||
val someoneJoinedRoomEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
val someoneJoinedRoomEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
||||||
val someoneJoinedRoom = formatter.format(someoneJoinedRoomEvent, false)
|
val someoneJoinedRoom = formatter.format(someoneJoinedRoomEvent, false)
|
||||||
Truth.assertThat(someoneJoinedRoom).isEqualTo("${someoneContent.userId} joined the room")
|
assertThat(someoneJoinedRoom).isEqualTo("${someoneContent.userId} joined the room")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -269,11 +270,11 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
|
|
||||||
val youLeftRoomEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = youContent)
|
val youLeftRoomEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = youContent)
|
||||||
val youLeftRoom = formatter.format(youLeftRoomEvent, false)
|
val youLeftRoom = formatter.format(youLeftRoomEvent, false)
|
||||||
Truth.assertThat(youLeftRoom).isEqualTo("You left the room")
|
assertThat(youLeftRoom).isEqualTo("You left the room")
|
||||||
|
|
||||||
val someoneLeftRoomEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
val someoneLeftRoomEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
||||||
val someoneLeftRoom = formatter.format(someoneLeftRoomEvent, false)
|
val someoneLeftRoom = formatter.format(someoneLeftRoomEvent, false)
|
||||||
Truth.assertThat(someoneLeftRoom).isEqualTo("${someoneContent.userId} left the room")
|
assertThat(someoneLeftRoom).isEqualTo("${someoneContent.userId} left the room")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -287,19 +288,19 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
|
|
||||||
val youBannedEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = youContent)
|
val youBannedEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = youContent)
|
||||||
val youBanned = formatter.format(youBannedEvent, false)
|
val youBanned = formatter.format(youBannedEvent, false)
|
||||||
Truth.assertThat(youBanned).isEqualTo("You banned ${youContent.userId}")
|
assertThat(youBanned).isEqualTo("You banned ${youContent.userId}")
|
||||||
|
|
||||||
val youKickBannedEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = youKickedContent)
|
val youKickBannedEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = youKickedContent)
|
||||||
val youKickedBanned = formatter.format(youKickBannedEvent, false)
|
val youKickedBanned = formatter.format(youKickBannedEvent, false)
|
||||||
Truth.assertThat(youKickedBanned).isEqualTo("You banned ${youContent.userId}")
|
assertThat(youKickedBanned).isEqualTo("You banned ${youContent.userId}")
|
||||||
|
|
||||||
val someoneBannedEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
val someoneBannedEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
||||||
val someoneBanned = formatter.format(someoneBannedEvent, false)
|
val someoneBanned = formatter.format(someoneBannedEvent, false)
|
||||||
Truth.assertThat(someoneBanned).isEqualTo("$otherName banned ${someoneContent.userId}")
|
assertThat(someoneBanned).isEqualTo("$otherName banned ${someoneContent.userId}")
|
||||||
|
|
||||||
val someoneKickBannedEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneKickedContent)
|
val someoneKickBannedEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneKickedContent)
|
||||||
val someoneKickBanned = formatter.format(someoneKickBannedEvent, false)
|
val someoneKickBanned = formatter.format(someoneKickBannedEvent, false)
|
||||||
Truth.assertThat(someoneKickBanned).isEqualTo("$otherName banned ${someoneContent.userId}")
|
assertThat(someoneKickBanned).isEqualTo("$otherName banned ${someoneContent.userId}")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -311,11 +312,11 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
|
|
||||||
val youUnbannedEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = youContent)
|
val youUnbannedEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = youContent)
|
||||||
val youUnbanned = formatter.format(youUnbannedEvent, false)
|
val youUnbanned = formatter.format(youUnbannedEvent, false)
|
||||||
Truth.assertThat(youUnbanned).isEqualTo("You unbanned ${youContent.userId}")
|
assertThat(youUnbanned).isEqualTo("You unbanned ${youContent.userId}")
|
||||||
|
|
||||||
val someoneUnbannedEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
val someoneUnbannedEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
||||||
val someoneUnbanned = formatter.format(someoneUnbannedEvent, false)
|
val someoneUnbanned = formatter.format(someoneUnbannedEvent, false)
|
||||||
Truth.assertThat(someoneUnbanned).isEqualTo("$otherName unbanned ${someoneContent.userId}")
|
assertThat(someoneUnbanned).isEqualTo("$otherName unbanned ${someoneContent.userId}")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -327,11 +328,11 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
|
|
||||||
val youKickedEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = youContent)
|
val youKickedEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = youContent)
|
||||||
val youKicked = formatter.format(youKickedEvent, false)
|
val youKicked = formatter.format(youKickedEvent, false)
|
||||||
Truth.assertThat(youKicked).isEqualTo("You removed ${youContent.userId}")
|
assertThat(youKicked).isEqualTo("You removed ${youContent.userId}")
|
||||||
|
|
||||||
val someoneKickedEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
val someoneKickedEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
||||||
val someoneKicked = formatter.format(someoneKickedEvent, false)
|
val someoneKicked = formatter.format(someoneKickedEvent, false)
|
||||||
Truth.assertThat(someoneKicked).isEqualTo("$otherName removed ${someoneContent.userId}")
|
assertThat(someoneKicked).isEqualTo("$otherName removed ${someoneContent.userId}")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -343,15 +344,15 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
|
|
||||||
val youWereInvitedEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = youContent)
|
val youWereInvitedEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = youContent)
|
||||||
val youWereInvited = formatter.format(youWereInvitedEvent, false)
|
val youWereInvited = formatter.format(youWereInvitedEvent, false)
|
||||||
Truth.assertThat(youWereInvited).isEqualTo("$otherName invited you")
|
assertThat(youWereInvited).isEqualTo("$otherName invited you")
|
||||||
|
|
||||||
val youInvitedEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = someoneContent)
|
val youInvitedEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = someoneContent)
|
||||||
val youInvited = formatter.format(youInvitedEvent, false)
|
val youInvited = formatter.format(youInvitedEvent, false)
|
||||||
Truth.assertThat(youInvited).isEqualTo("You invited ${someoneContent.userId}")
|
assertThat(youInvited).isEqualTo("You invited ${someoneContent.userId}")
|
||||||
|
|
||||||
val someoneInvitedEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
val someoneInvitedEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
||||||
val someoneInvited = formatter.format(someoneInvitedEvent, false)
|
val someoneInvited = formatter.format(someoneInvitedEvent, false)
|
||||||
Truth.assertThat(someoneInvited).isEqualTo("$otherName invited ${someoneContent.userId}")
|
assertThat(someoneInvited).isEqualTo("$otherName invited ${someoneContent.userId}")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -363,11 +364,11 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
|
|
||||||
val youAcceptedInviteEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = youContent)
|
val youAcceptedInviteEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = youContent)
|
||||||
val youAcceptedInvite = formatter.format(youAcceptedInviteEvent, false)
|
val youAcceptedInvite = formatter.format(youAcceptedInviteEvent, false)
|
||||||
Truth.assertThat(youAcceptedInvite).isEqualTo("You accepted the invite")
|
assertThat(youAcceptedInvite).isEqualTo("You accepted the invite")
|
||||||
|
|
||||||
val someoneAcceptedInviteEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
val someoneAcceptedInviteEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
||||||
val someoneAcceptedInvite = formatter.format(someoneAcceptedInviteEvent, false)
|
val someoneAcceptedInvite = formatter.format(someoneAcceptedInviteEvent, false)
|
||||||
Truth.assertThat(someoneAcceptedInvite).isEqualTo("${someoneContent.userId} accepted the invite")
|
assertThat(someoneAcceptedInvite).isEqualTo("${someoneContent.userId} accepted the invite")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -379,11 +380,11 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
|
|
||||||
val youRejectedInviteEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = youContent)
|
val youRejectedInviteEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = youContent)
|
||||||
val youRejectedInvite = formatter.format(youRejectedInviteEvent, false)
|
val youRejectedInvite = formatter.format(youRejectedInviteEvent, false)
|
||||||
Truth.assertThat(youRejectedInvite).isEqualTo("You rejected the invitation")
|
assertThat(youRejectedInvite).isEqualTo("You rejected the invitation")
|
||||||
|
|
||||||
val someoneRejectedInviteEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
val someoneRejectedInviteEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
||||||
val someoneRejectedInvite = formatter.format(someoneRejectedInviteEvent, false)
|
val someoneRejectedInvite = formatter.format(someoneRejectedInviteEvent, false)
|
||||||
Truth.assertThat(someoneRejectedInvite).isEqualTo("${someoneContent.userId} rejected the invitation")
|
assertThat(someoneRejectedInvite).isEqualTo("${someoneContent.userId} rejected the invitation")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -394,11 +395,11 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
|
|
||||||
val youRevokedInviteEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = someoneContent)
|
val youRevokedInviteEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = someoneContent)
|
||||||
val youRevokedInvite = formatter.format(youRevokedInviteEvent, false)
|
val youRevokedInvite = formatter.format(youRevokedInviteEvent, false)
|
||||||
Truth.assertThat(youRevokedInvite).isEqualTo("You revoked the invitation for ${someoneContent.userId} to join the room")
|
assertThat(youRevokedInvite).isEqualTo("You revoked the invitation for ${someoneContent.userId} to join the room")
|
||||||
|
|
||||||
val someoneRevokedInviteEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
val someoneRevokedInviteEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
||||||
val someoneRevokedInvite = formatter.format(someoneRevokedInviteEvent, false)
|
val someoneRevokedInvite = formatter.format(someoneRevokedInviteEvent, false)
|
||||||
Truth.assertThat(someoneRevokedInvite).isEqualTo("$otherName revoked the invitation for ${someoneContent.userId} to join the room")
|
assertThat(someoneRevokedInvite).isEqualTo("$otherName revoked the invitation for ${someoneContent.userId} to join the room")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -410,11 +411,11 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
|
|
||||||
val youKnockedEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = youContent)
|
val youKnockedEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = youContent)
|
||||||
val youKnocked = formatter.format(youKnockedEvent, false)
|
val youKnocked = formatter.format(youKnockedEvent, false)
|
||||||
Truth.assertThat(youKnocked).isEqualTo("You requested to join")
|
assertThat(youKnocked).isEqualTo("You requested to join")
|
||||||
|
|
||||||
val someoneKnockedEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
val someoneKnockedEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
||||||
val someoneKnocked = formatter.format(someoneKnockedEvent, false)
|
val someoneKnocked = formatter.format(someoneKnockedEvent, false)
|
||||||
Truth.assertThat(someoneKnocked).isEqualTo("${someoneContent.userId} requested to join")
|
assertThat(someoneKnocked).isEqualTo("${someoneContent.userId} requested to join")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -425,11 +426,11 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
|
|
||||||
val youAcceptedKnockEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = someoneContent)
|
val youAcceptedKnockEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = someoneContent)
|
||||||
val youAcceptedKnock = formatter.format(youAcceptedKnockEvent, false)
|
val youAcceptedKnock = formatter.format(youAcceptedKnockEvent, false)
|
||||||
Truth.assertThat(youAcceptedKnock).isEqualTo("${someoneContent.userId} allowed you to join")
|
assertThat(youAcceptedKnock).isEqualTo("${someoneContent.userId} allowed you to join")
|
||||||
|
|
||||||
val someoneAcceptedKnockEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
val someoneAcceptedKnockEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
||||||
val someoneAcceptedKnock = formatter.format(someoneAcceptedKnockEvent, false)
|
val someoneAcceptedKnock = formatter.format(someoneAcceptedKnockEvent, false)
|
||||||
Truth.assertThat(someoneAcceptedKnock).isEqualTo("$otherName allowed ${someoneContent.userId} to join")
|
assertThat(someoneAcceptedKnock).isEqualTo("$otherName allowed ${someoneContent.userId} to join")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -441,11 +442,11 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
|
|
||||||
val youRetractedKnockEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = youContent)
|
val youRetractedKnockEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = youContent)
|
||||||
val youRetractedKnock = formatter.format(youRetractedKnockEvent, false)
|
val youRetractedKnock = formatter.format(youRetractedKnockEvent, false)
|
||||||
Truth.assertThat(youRetractedKnock).isEqualTo("You cancelled your request to join")
|
assertThat(youRetractedKnock).isEqualTo("You cancelled your request to join")
|
||||||
|
|
||||||
val someoneRetractedKnockEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
val someoneRetractedKnockEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
||||||
val someoneRetractedKnock = formatter.format(someoneRetractedKnockEvent, false)
|
val someoneRetractedKnock = formatter.format(someoneRetractedKnockEvent, false)
|
||||||
Truth.assertThat(someoneRetractedKnock).isEqualTo("${someoneContent.userId} is no longer interested in joining")
|
assertThat(someoneRetractedKnock).isEqualTo("${someoneContent.userId} is no longer interested in joining")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -457,15 +458,15 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
|
|
||||||
val youDeniedKnockEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = someoneContent)
|
val youDeniedKnockEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = someoneContent)
|
||||||
val youDeniedKnock = formatter.format(youDeniedKnockEvent, false)
|
val youDeniedKnock = formatter.format(youDeniedKnockEvent, false)
|
||||||
Truth.assertThat(youDeniedKnock).isEqualTo("You rejected ${someoneContent.userId}'s request to join")
|
assertThat(youDeniedKnock).isEqualTo("You rejected ${someoneContent.userId}'s request to join")
|
||||||
|
|
||||||
val someoneDeniedKnockEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
val someoneDeniedKnockEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
|
||||||
val someoneDeniedKnock = formatter.format(someoneDeniedKnockEvent, false)
|
val someoneDeniedKnock = formatter.format(someoneDeniedKnockEvent, false)
|
||||||
Truth.assertThat(someoneDeniedKnock).isEqualTo("$otherName rejected ${someoneContent.userId}'s request to join")
|
assertThat(someoneDeniedKnock).isEqualTo("$otherName rejected ${someoneContent.userId}'s request to join")
|
||||||
|
|
||||||
val someoneDeniedYourKnockEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = youContent)
|
val someoneDeniedYourKnockEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = youContent)
|
||||||
val someoneDeniedYourKnock = formatter.format(someoneDeniedYourKnockEvent, false)
|
val someoneDeniedYourKnock = formatter.format(someoneDeniedYourKnockEvent, false)
|
||||||
Truth.assertThat(someoneDeniedYourKnock).isEqualTo("$otherName rejected your request to join")
|
assertThat(someoneDeniedYourKnock).isEqualTo("$otherName rejected your request to join")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -480,7 +481,7 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
change to result
|
change to result
|
||||||
}
|
}
|
||||||
val expected = otherChanges.map { it to null }
|
val expected = otherChanges.map { it to null }
|
||||||
Truth.assertThat(results).isEqualTo(expected)
|
assertThat(results).isEqualTo(expected)
|
||||||
}
|
}
|
||||||
|
|
||||||
// endregion
|
// endregion
|
||||||
|
|
@ -496,19 +497,19 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
|
|
||||||
val youChangedRoomAvatarEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = changedContent)
|
val youChangedRoomAvatarEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = changedContent)
|
||||||
val youChangedRoomAvatar = formatter.format(youChangedRoomAvatarEvent, false)
|
val youChangedRoomAvatar = formatter.format(youChangedRoomAvatarEvent, false)
|
||||||
Truth.assertThat(youChangedRoomAvatar).isEqualTo("You changed the room avatar")
|
assertThat(youChangedRoomAvatar).isEqualTo("You changed the room avatar")
|
||||||
|
|
||||||
val someoneChangedRoomAvatarEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = changedContent)
|
val someoneChangedRoomAvatarEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = changedContent)
|
||||||
val someoneChangedRoomAvatar = formatter.format(someoneChangedRoomAvatarEvent, false)
|
val someoneChangedRoomAvatar = formatter.format(someoneChangedRoomAvatarEvent, false)
|
||||||
Truth.assertThat(someoneChangedRoomAvatar).isEqualTo("$otherName changed the room avatar")
|
assertThat(someoneChangedRoomAvatar).isEqualTo("$otherName changed the room avatar")
|
||||||
|
|
||||||
val youRemovedRoomAvatarEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = removedContent)
|
val youRemovedRoomAvatarEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = removedContent)
|
||||||
val youRemovedRoomAvatar = formatter.format(youRemovedRoomAvatarEvent, false)
|
val youRemovedRoomAvatar = formatter.format(youRemovedRoomAvatarEvent, false)
|
||||||
Truth.assertThat(youRemovedRoomAvatar).isEqualTo("You removed the room avatar")
|
assertThat(youRemovedRoomAvatar).isEqualTo("You removed the room avatar")
|
||||||
|
|
||||||
val someoneRemovedRoomAvatarEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = removedContent)
|
val someoneRemovedRoomAvatarEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = removedContent)
|
||||||
val someoneRemovedRoomAvatar = formatter.format(someoneRemovedRoomAvatarEvent, false)
|
val someoneRemovedRoomAvatar = formatter.format(someoneRemovedRoomAvatarEvent, false)
|
||||||
Truth.assertThat(someoneRemovedRoomAvatar).isEqualTo("$otherName removed the room avatar")
|
assertThat(someoneRemovedRoomAvatar).isEqualTo("$otherName removed the room avatar")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -519,11 +520,11 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
|
|
||||||
val youCreatedRoomMessage = createRoomEvent(sentByYou = true, senderDisplayName = null, content = content)
|
val youCreatedRoomMessage = createRoomEvent(sentByYou = true, senderDisplayName = null, content = content)
|
||||||
val youCreatedRoom = formatter.format(youCreatedRoomMessage, false)
|
val youCreatedRoom = formatter.format(youCreatedRoomMessage, false)
|
||||||
Truth.assertThat(youCreatedRoom).isEqualTo("You created the room")
|
assertThat(youCreatedRoom).isEqualTo("You created the room")
|
||||||
|
|
||||||
val someoneCreatedRoomEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = content)
|
val someoneCreatedRoomEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = content)
|
||||||
val someoneCreatedRoom = formatter.format(someoneCreatedRoomEvent, false)
|
val someoneCreatedRoom = formatter.format(someoneCreatedRoomEvent, false)
|
||||||
Truth.assertThat(someoneCreatedRoom).isEqualTo("$otherName created the room")
|
assertThat(someoneCreatedRoom).isEqualTo("$otherName created the room")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -534,11 +535,11 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
|
|
||||||
val youCreatedRoomMessage = createRoomEvent(sentByYou = true, senderDisplayName = null, content = content)
|
val youCreatedRoomMessage = createRoomEvent(sentByYou = true, senderDisplayName = null, content = content)
|
||||||
val youCreatedRoom = formatter.format(youCreatedRoomMessage, false)
|
val youCreatedRoom = formatter.format(youCreatedRoomMessage, false)
|
||||||
Truth.assertThat(youCreatedRoom).isEqualTo("Encryption enabled")
|
assertThat(youCreatedRoom).isEqualTo("Encryption enabled")
|
||||||
|
|
||||||
val someoneCreatedRoomEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = content)
|
val someoneCreatedRoomEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = content)
|
||||||
val someoneCreatedRoom = formatter.format(someoneCreatedRoomEvent, false)
|
val someoneCreatedRoom = formatter.format(someoneCreatedRoomEvent, false)
|
||||||
Truth.assertThat(someoneCreatedRoom).isEqualTo("Encryption enabled")
|
assertThat(someoneCreatedRoom).isEqualTo("Encryption enabled")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -551,19 +552,19 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
|
|
||||||
val youChangedRoomNameEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = changedContent)
|
val youChangedRoomNameEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = changedContent)
|
||||||
val youChangedRoomName = formatter.format(youChangedRoomNameEvent, false)
|
val youChangedRoomName = formatter.format(youChangedRoomNameEvent, false)
|
||||||
Truth.assertThat(youChangedRoomName).isEqualTo("You changed the room name to: $newName")
|
assertThat(youChangedRoomName).isEqualTo("You changed the room name to: $newName")
|
||||||
|
|
||||||
val someoneChangedRoomNameEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = changedContent)
|
val someoneChangedRoomNameEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = changedContent)
|
||||||
val someoneChangedRoomName = formatter.format(someoneChangedRoomNameEvent, false)
|
val someoneChangedRoomName = formatter.format(someoneChangedRoomNameEvent, false)
|
||||||
Truth.assertThat(someoneChangedRoomName).isEqualTo("$otherName changed the room name to: $newName")
|
assertThat(someoneChangedRoomName).isEqualTo("$otherName changed the room name to: $newName")
|
||||||
|
|
||||||
val youRemovedRoomNameEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = removedContent)
|
val youRemovedRoomNameEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = removedContent)
|
||||||
val youRemovedRoomName = formatter.format(youRemovedRoomNameEvent, false)
|
val youRemovedRoomName = formatter.format(youRemovedRoomNameEvent, false)
|
||||||
Truth.assertThat(youRemovedRoomName).isEqualTo("You removed the room name")
|
assertThat(youRemovedRoomName).isEqualTo("You removed the room name")
|
||||||
|
|
||||||
val someoneRemovedRoomNameEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = removedContent)
|
val someoneRemovedRoomNameEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = removedContent)
|
||||||
val someoneRemovedRoomName = formatter.format(someoneRemovedRoomNameEvent, false)
|
val someoneRemovedRoomName = formatter.format(someoneRemovedRoomNameEvent, false)
|
||||||
Truth.assertThat(someoneRemovedRoomName).isEqualTo("$otherName removed the room name")
|
assertThat(someoneRemovedRoomName).isEqualTo("$otherName removed the room name")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -576,19 +577,19 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
|
|
||||||
val youInvitedSomeoneEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = changedContent)
|
val youInvitedSomeoneEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = changedContent)
|
||||||
val youInvitedSomeone = formatter.format(youInvitedSomeoneEvent, false)
|
val youInvitedSomeone = formatter.format(youInvitedSomeoneEvent, false)
|
||||||
Truth.assertThat(youInvitedSomeone).isEqualTo("You sent an invitation to $inviteeName to join the room")
|
assertThat(youInvitedSomeone).isEqualTo("You sent an invitation to $inviteeName to join the room")
|
||||||
|
|
||||||
val someoneInvitedSomeoneEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = changedContent)
|
val someoneInvitedSomeoneEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = changedContent)
|
||||||
val someoneInvitedSomeone = formatter.format(someoneInvitedSomeoneEvent, false)
|
val someoneInvitedSomeone = formatter.format(someoneInvitedSomeoneEvent, false)
|
||||||
Truth.assertThat(someoneInvitedSomeone).isEqualTo("$otherName sent an invitation to $inviteeName to join the room")
|
assertThat(someoneInvitedSomeone).isEqualTo("$otherName sent an invitation to $inviteeName to join the room")
|
||||||
|
|
||||||
val youInvitedNoOneEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = removedContent)
|
val youInvitedNoOneEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = removedContent)
|
||||||
val youInvitedNoOne = formatter.format(youInvitedNoOneEvent, false)
|
val youInvitedNoOne = formatter.format(youInvitedNoOneEvent, false)
|
||||||
Truth.assertThat(youInvitedNoOne).isNull()
|
assertThat(youInvitedNoOne).isNull()
|
||||||
|
|
||||||
val someoneInvitedNoOneEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = removedContent)
|
val someoneInvitedNoOneEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = removedContent)
|
||||||
val someoneInvitedNoOne = formatter.format(someoneInvitedNoOneEvent, false)
|
val someoneInvitedNoOne = formatter.format(someoneInvitedNoOneEvent, false)
|
||||||
Truth.assertThat(someoneInvitedNoOne).isNull()
|
assertThat(someoneInvitedNoOne).isNull()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -601,19 +602,19 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
|
|
||||||
val youChangedRoomTopicEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = changedContent)
|
val youChangedRoomTopicEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = changedContent)
|
||||||
val youChangedRoomTopic = formatter.format(youChangedRoomTopicEvent, false)
|
val youChangedRoomTopic = formatter.format(youChangedRoomTopicEvent, false)
|
||||||
Truth.assertThat(youChangedRoomTopic).isEqualTo("You changed the topic to: $roomTopic")
|
assertThat(youChangedRoomTopic).isEqualTo("You changed the topic to: $roomTopic")
|
||||||
|
|
||||||
val someoneChangedRoomTopicEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = changedContent)
|
val someoneChangedRoomTopicEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = changedContent)
|
||||||
val someoneChangedRoomTopic = formatter.format(someoneChangedRoomTopicEvent, false)
|
val someoneChangedRoomTopic = formatter.format(someoneChangedRoomTopicEvent, false)
|
||||||
Truth.assertThat(someoneChangedRoomTopic).isEqualTo("$otherName changed the topic to: $roomTopic")
|
assertThat(someoneChangedRoomTopic).isEqualTo("$otherName changed the topic to: $roomTopic")
|
||||||
|
|
||||||
val youRemovedRoomTopicEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = removedContent)
|
val youRemovedRoomTopicEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = removedContent)
|
||||||
val youRemovedRoomTopic = formatter.format(youRemovedRoomTopicEvent, false)
|
val youRemovedRoomTopic = formatter.format(youRemovedRoomTopicEvent, false)
|
||||||
Truth.assertThat(youRemovedRoomTopic).isEqualTo("You removed the room topic")
|
assertThat(youRemovedRoomTopic).isEqualTo("You removed the room topic")
|
||||||
|
|
||||||
val someoneRemovedRoomTopicEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = removedContent)
|
val someoneRemovedRoomTopicEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = removedContent)
|
||||||
val someoneRemovedRoomTopic = formatter.format(someoneRemovedRoomTopicEvent, false)
|
val someoneRemovedRoomTopic = formatter.format(someoneRemovedRoomTopicEvent, false)
|
||||||
Truth.assertThat(someoneRemovedRoomTopic).isEqualTo("$otherName removed the room topic")
|
assertThat(someoneRemovedRoomTopic).isEqualTo("$otherName removed the room topic")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -632,7 +633,7 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
state to result
|
state to result
|
||||||
}
|
}
|
||||||
val expected = otherStates.map { it to null }
|
val expected = otherStates.map { it to null }
|
||||||
Truth.assertThat(results).isEqualTo(expected)
|
assertThat(results).isEqualTo(expected)
|
||||||
}
|
}
|
||||||
|
|
||||||
// endregion
|
// endregion
|
||||||
|
|
@ -651,35 +652,35 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
|
|
||||||
val youChangedAvatarEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = changedContent)
|
val youChangedAvatarEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = changedContent)
|
||||||
val youChangedAvatar = formatter.format(youChangedAvatarEvent, false)
|
val youChangedAvatar = formatter.format(youChangedAvatarEvent, false)
|
||||||
Truth.assertThat(youChangedAvatar).isEqualTo("You changed your avatar")
|
assertThat(youChangedAvatar).isEqualTo("You changed your avatar")
|
||||||
|
|
||||||
val someoneChangeAvatarEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = changedContent)
|
val someoneChangeAvatarEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = changedContent)
|
||||||
val someoneChangeAvatar = formatter.format(someoneChangeAvatarEvent, false)
|
val someoneChangeAvatar = formatter.format(someoneChangeAvatarEvent, false)
|
||||||
Truth.assertThat(someoneChangeAvatar).isEqualTo("$otherName changed their avatar")
|
assertThat(someoneChangeAvatar).isEqualTo("$otherName changed their avatar")
|
||||||
|
|
||||||
val youSetAvatarEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = setContent)
|
val youSetAvatarEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = setContent)
|
||||||
val youSetAvatar = formatter.format(youSetAvatarEvent, false)
|
val youSetAvatar = formatter.format(youSetAvatarEvent, false)
|
||||||
Truth.assertThat(youSetAvatar).isEqualTo("You changed your avatar")
|
assertThat(youSetAvatar).isEqualTo("You changed your avatar")
|
||||||
|
|
||||||
val someoneSetAvatarEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = setContent)
|
val someoneSetAvatarEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = setContent)
|
||||||
val someoneSetAvatar = formatter.format(someoneSetAvatarEvent, false)
|
val someoneSetAvatar = formatter.format(someoneSetAvatarEvent, false)
|
||||||
Truth.assertThat(someoneSetAvatar).isEqualTo("$otherName changed their avatar")
|
assertThat(someoneSetAvatar).isEqualTo("$otherName changed their avatar")
|
||||||
|
|
||||||
val youRemovedAvatarEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = removedContent)
|
val youRemovedAvatarEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = removedContent)
|
||||||
val youRemovedAvatar = formatter.format(youRemovedAvatarEvent, false)
|
val youRemovedAvatar = formatter.format(youRemovedAvatarEvent, false)
|
||||||
Truth.assertThat(youRemovedAvatar).isEqualTo("You changed your avatar")
|
assertThat(youRemovedAvatar).isEqualTo("You changed your avatar")
|
||||||
|
|
||||||
val someoneRemovedAvatarEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = removedContent)
|
val someoneRemovedAvatarEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = removedContent)
|
||||||
val someoneRemovedAvatar = formatter.format(someoneRemovedAvatarEvent, false)
|
val someoneRemovedAvatar = formatter.format(someoneRemovedAvatarEvent, false)
|
||||||
Truth.assertThat(someoneRemovedAvatar).isEqualTo("$otherName changed their avatar")
|
assertThat(someoneRemovedAvatar).isEqualTo("$otherName changed their avatar")
|
||||||
|
|
||||||
val unchangedEvent = createRoomEvent(sentByYou = true, senderDisplayName = otherName, content = sameContent)
|
val unchangedEvent = createRoomEvent(sentByYou = true, senderDisplayName = otherName, content = sameContent)
|
||||||
val unchangedResult = formatter.format(unchangedEvent, false)
|
val unchangedResult = formatter.format(unchangedEvent, false)
|
||||||
Truth.assertThat(unchangedResult).isNull()
|
assertThat(unchangedResult).isNull()
|
||||||
|
|
||||||
val invalidEvent = createRoomEvent(sentByYou = true, senderDisplayName = otherName, content = invalidContent)
|
val invalidEvent = createRoomEvent(sentByYou = true, senderDisplayName = otherName, content = invalidContent)
|
||||||
val invalidResult = formatter.format(invalidEvent, false)
|
val invalidResult = formatter.format(invalidEvent, false)
|
||||||
Truth.assertThat(invalidResult).isNull()
|
assertThat(invalidResult).isNull()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -696,35 +697,35 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
|
|
||||||
val youChangedDisplayNameEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = changedContent)
|
val youChangedDisplayNameEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = changedContent)
|
||||||
val youChangedDisplayName = formatter.format(youChangedDisplayNameEvent, false)
|
val youChangedDisplayName = formatter.format(youChangedDisplayNameEvent, false)
|
||||||
Truth.assertThat(youChangedDisplayName).isEqualTo("You changed your display name from $oldDisplayName to $newDisplayName")
|
assertThat(youChangedDisplayName).isEqualTo("You changed your display name from $oldDisplayName to $newDisplayName")
|
||||||
|
|
||||||
val someoneChangedDisplayNameEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = changedContent)
|
val someoneChangedDisplayNameEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = changedContent)
|
||||||
val someoneChangedDisplayName = formatter.format(someoneChangedDisplayNameEvent, false)
|
val someoneChangedDisplayName = formatter.format(someoneChangedDisplayNameEvent, false)
|
||||||
Truth.assertThat(someoneChangedDisplayName).isEqualTo("$otherName changed their display name from $oldDisplayName to $newDisplayName")
|
assertThat(someoneChangedDisplayName).isEqualTo("$otherName changed their display name from $oldDisplayName to $newDisplayName")
|
||||||
|
|
||||||
val youSetDisplayNameEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = setContent)
|
val youSetDisplayNameEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = setContent)
|
||||||
val youSetDisplayName = formatter.format(youSetDisplayNameEvent, false)
|
val youSetDisplayName = formatter.format(youSetDisplayNameEvent, false)
|
||||||
Truth.assertThat(youSetDisplayName).isEqualTo("You set your display name to $newDisplayName")
|
assertThat(youSetDisplayName).isEqualTo("You set your display name to $newDisplayName")
|
||||||
|
|
||||||
val someoneSetDisplayNameEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = setContent)
|
val someoneSetDisplayNameEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = setContent)
|
||||||
val someoneSetDisplayName = formatter.format(someoneSetDisplayNameEvent, false)
|
val someoneSetDisplayName = formatter.format(someoneSetDisplayNameEvent, false)
|
||||||
Truth.assertThat(someoneSetDisplayName).isEqualTo("$otherName set their display name to $newDisplayName")
|
assertThat(someoneSetDisplayName).isEqualTo("$otherName set their display name to $newDisplayName")
|
||||||
|
|
||||||
val youRemovedDisplayNameEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = removedContent)
|
val youRemovedDisplayNameEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = removedContent)
|
||||||
val youRemovedDisplayName = formatter.format(youRemovedDisplayNameEvent, false)
|
val youRemovedDisplayName = formatter.format(youRemovedDisplayNameEvent, false)
|
||||||
Truth.assertThat(youRemovedDisplayName).isEqualTo("You removed your display name (it was $oldDisplayName)")
|
assertThat(youRemovedDisplayName).isEqualTo("You removed your display name (it was $oldDisplayName)")
|
||||||
|
|
||||||
val someoneRemovedDisplayNameEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = removedContent)
|
val someoneRemovedDisplayNameEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = removedContent)
|
||||||
val someoneRemovedDisplayName = formatter.format(someoneRemovedDisplayNameEvent, false)
|
val someoneRemovedDisplayName = formatter.format(someoneRemovedDisplayNameEvent, false)
|
||||||
Truth.assertThat(someoneRemovedDisplayName).isEqualTo("$otherName removed their display name (it was $oldDisplayName)")
|
assertThat(someoneRemovedDisplayName).isEqualTo("$otherName removed their display name (it was $oldDisplayName)")
|
||||||
|
|
||||||
val unchangedEvent = createRoomEvent(sentByYou = true, senderDisplayName = otherName, content = sameContent)
|
val unchangedEvent = createRoomEvent(sentByYou = true, senderDisplayName = otherName, content = sameContent)
|
||||||
val unchangedResult = formatter.format(unchangedEvent, false)
|
val unchangedResult = formatter.format(unchangedEvent, false)
|
||||||
Truth.assertThat(unchangedResult).isNull()
|
assertThat(unchangedResult).isNull()
|
||||||
|
|
||||||
val invalidEvent = createRoomEvent(sentByYou = true, senderDisplayName = otherName, content = invalidContent)
|
val invalidEvent = createRoomEvent(sentByYou = true, senderDisplayName = otherName, content = invalidContent)
|
||||||
val invalidResult = formatter.format(invalidEvent, false)
|
val invalidResult = formatter.format(invalidEvent, false)
|
||||||
Truth.assertThat(invalidResult).isNull()
|
assertThat(invalidResult).isNull()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -753,15 +754,15 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
|
|
||||||
val youChangedBothEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = changedContent)
|
val youChangedBothEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = changedContent)
|
||||||
val youChangedBoth = formatter.format(youChangedBothEvent, false)
|
val youChangedBoth = formatter.format(youChangedBothEvent, false)
|
||||||
Truth.assertThat(youChangedBoth).isEqualTo("You changed your display name from $oldDisplayName to $newDisplayName\n(avatar was changed too)")
|
assertThat(youChangedBoth).isEqualTo("You changed your display name from $oldDisplayName to $newDisplayName\n(avatar was changed too)")
|
||||||
|
|
||||||
val invalidContentEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = invalidContent)
|
val invalidContentEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = invalidContent)
|
||||||
val invalidMessage = formatter.format(invalidContentEvent, false)
|
val invalidMessage = formatter.format(invalidContentEvent, false)
|
||||||
Truth.assertThat(invalidMessage).isNull()
|
assertThat(invalidMessage).isNull()
|
||||||
|
|
||||||
val sameContentEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = sameContent)
|
val sameContentEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = sameContent)
|
||||||
val sameMessage = formatter.format(sameContentEvent, false)
|
val sameMessage = formatter.format(sameContentEvent, false)
|
||||||
Truth.assertThat(sameMessage).isNull()
|
assertThat(sameMessage).isNull()
|
||||||
}
|
}
|
||||||
|
|
||||||
// endregion
|
// endregion
|
||||||
|
|
@ -774,10 +775,10 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
val pollContent = aPollContent()
|
val pollContent = aPollContent()
|
||||||
|
|
||||||
val mineContentEvent = createRoomEvent(sentByYou = true, senderDisplayName = "Alice", content = pollContent)
|
val mineContentEvent = createRoomEvent(sentByYou = true, senderDisplayName = "Alice", content = pollContent)
|
||||||
Truth.assertThat(formatter.format(mineContentEvent, true)).isEqualTo("Poll: Do you like polls?")
|
assertThat(formatter.format(mineContentEvent, true)).isEqualTo("Poll: Do you like polls?")
|
||||||
|
|
||||||
val contentEvent = createRoomEvent(sentByYou = false, senderDisplayName = "Bob", content = pollContent)
|
val contentEvent = createRoomEvent(sentByYou = false, senderDisplayName = "Bob", content = pollContent)
|
||||||
Truth.assertThat(formatter.format(contentEvent, true)).isEqualTo("Poll: Do you like polls?")
|
assertThat(formatter.format(contentEvent, true)).isEqualTo("Poll: Do you like polls?")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -786,10 +787,10 @@ class DefaultRoomLastMessageFormatterTest {
|
||||||
val pollContent = aPollContent()
|
val pollContent = aPollContent()
|
||||||
|
|
||||||
val mineContentEvent = createRoomEvent(sentByYou = true, senderDisplayName = "Alice", content = pollContent)
|
val mineContentEvent = createRoomEvent(sentByYou = true, senderDisplayName = "Alice", content = pollContent)
|
||||||
Truth.assertThat(formatter.format(mineContentEvent, false).toString()).isEqualTo("Alice: Poll: Do you like polls?")
|
assertThat(formatter.format(mineContentEvent, false).toString()).isEqualTo("Alice: Poll: Do you like polls?")
|
||||||
|
|
||||||
val contentEvent = createRoomEvent(sentByYou = false, senderDisplayName = "Bob", content = pollContent)
|
val contentEvent = createRoomEvent(sentByYou = false, senderDisplayName = "Bob", content = pollContent)
|
||||||
Truth.assertThat(formatter.format(contentEvent, false).toString()).isEqualTo("Bob: Poll: Do you like polls?")
|
assertThat(formatter.format(contentEvent, false).toString()).isEqualTo("Bob: Poll: Do you like polls?")
|
||||||
}
|
}
|
||||||
|
|
||||||
// endregion
|
// endregion
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package io.element.android.libraries.usersearch.impl
|
package io.element.android.libraries.usersearch.impl
|
||||||
|
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
import io.element.android.libraries.matrix.api.user.MatrixSearchUserResults
|
import io.element.android.libraries.matrix.api.user.MatrixSearchUserResults
|
||||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||||
|
|
@ -49,7 +49,7 @@ internal class MatrixUserListDataSourceTest {
|
||||||
val dataSource = MatrixUserListDataSource(matrixClient)
|
val dataSource = MatrixUserListDataSource(matrixClient)
|
||||||
|
|
||||||
val results = dataSource.search("test", 2)
|
val results = dataSource.search("test", 2)
|
||||||
Truth.assertThat(results).containsExactly(
|
assertThat(results).containsExactly(
|
||||||
aMatrixUserProfile(),
|
aMatrixUserProfile(),
|
||||||
aMatrixUserProfile(userId = A_USER_ID_2)
|
aMatrixUserProfile(userId = A_USER_ID_2)
|
||||||
)
|
)
|
||||||
|
|
@ -65,7 +65,7 @@ internal class MatrixUserListDataSourceTest {
|
||||||
val dataSource = MatrixUserListDataSource(matrixClient)
|
val dataSource = MatrixUserListDataSource(matrixClient)
|
||||||
|
|
||||||
val results = dataSource.search("test", 2)
|
val results = dataSource.search("test", 2)
|
||||||
Truth.assertThat(results).isEmpty()
|
assertThat(results).isEmpty()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -78,7 +78,7 @@ internal class MatrixUserListDataSourceTest {
|
||||||
val dataSource = MatrixUserListDataSource(matrixClient)
|
val dataSource = MatrixUserListDataSource(matrixClient)
|
||||||
|
|
||||||
val result = dataSource.getProfile(A_USER_ID)
|
val result = dataSource.getProfile(A_USER_ID)
|
||||||
Truth.assertThat(result).isEqualTo(aMatrixUserProfile())
|
assertThat(result).isEqualTo(aMatrixUserProfile())
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -91,7 +91,7 @@ internal class MatrixUserListDataSourceTest {
|
||||||
val dataSource = MatrixUserListDataSource(matrixClient)
|
val dataSource = MatrixUserListDataSource(matrixClient)
|
||||||
|
|
||||||
val result = dataSource.getProfile(A_USER_ID)
|
val result = dataSource.getProfile(A_USER_ID)
|
||||||
Truth.assertThat(result).isNull()
|
assertThat(result).isNull()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun aMatrixUserProfile(
|
private fun aMatrixUserProfile(
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package io.element.android.libraries.voicerecorder.impl.audio
|
package io.element.android.libraries.voicerecorder.impl.audio
|
||||||
|
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
class DBovAudioLevelCalculatorTest {
|
class DBovAudioLevelCalculatorTest {
|
||||||
|
|
@ -26,7 +26,7 @@ class DBovAudioLevelCalculatorTest {
|
||||||
val calculator = DBovAudioLevelCalculator()
|
val calculator = DBovAudioLevelCalculator()
|
||||||
val buffer = ShortArray(100) { Short.MAX_VALUE }
|
val buffer = ShortArray(100) { Short.MAX_VALUE }
|
||||||
val level = calculator.calculateAudioLevel(buffer)
|
val level = calculator.calculateAudioLevel(buffer)
|
||||||
Truth.assertThat(level).isEqualTo(1.0f)
|
assertThat(level).isEqualTo(1.0f)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -34,7 +34,7 @@ class DBovAudioLevelCalculatorTest {
|
||||||
val calculator = DBovAudioLevelCalculator()
|
val calculator = DBovAudioLevelCalculator()
|
||||||
val buffer = shortArrayOf(100, -200, 300, -400, 500, -600, 700, -800, 900, -1000)
|
val buffer = shortArrayOf(100, -200, 300, -400, 500, -600, 700, -800, 900, -1000)
|
||||||
val level = calculator.calculateAudioLevel(buffer)
|
val level = calculator.calculateAudioLevel(buffer)
|
||||||
Truth.assertThat(level).apply {
|
assertThat(level).apply {
|
||||||
isGreaterThan(0f)
|
isGreaterThan(0f)
|
||||||
isLessThan(1f)
|
isLessThan(1f)
|
||||||
}
|
}
|
||||||
|
|
@ -45,6 +45,6 @@ class DBovAudioLevelCalculatorTest {
|
||||||
val calculator = DBovAudioLevelCalculator()
|
val calculator = DBovAudioLevelCalculator()
|
||||||
val buffer = ShortArray(100) { 0 }
|
val buffer = ShortArray(100) { 0 }
|
||||||
val level = calculator.calculateAudioLevel(buffer)
|
val level = calculator.calculateAudioLevel(buffer)
|
||||||
Truth.assertThat(level).isEqualTo(0.0f)
|
assertThat(level).isEqualTo(0.0f)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,26 +16,26 @@
|
||||||
|
|
||||||
package io.element.android.libraries.voicerecorder.impl.audio
|
package io.element.android.libraries.voicerecorder.impl.audio
|
||||||
|
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth.assertThat
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
class ResampleTest {
|
class ResampleTest {
|
||||||
@Test
|
@Test
|
||||||
fun `resample works`() {
|
fun `resample works`() {
|
||||||
listOf(0.0f).resample(10).let {
|
listOf(0.0f).resample(10).let {
|
||||||
Truth.assertThat(it).isEqualTo(listOf(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f))
|
assertThat(it).isEqualTo(listOf(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f))
|
||||||
}
|
}
|
||||||
listOf(1.0f).resample(10).let {
|
listOf(1.0f).resample(10).let {
|
||||||
Truth.assertThat(it).isEqualTo(listOf(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f))
|
assertThat(it).isEqualTo(listOf(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f))
|
||||||
}
|
}
|
||||||
listOf(0.0f, 1.0f).resample(10).let {
|
listOf(0.0f, 1.0f).resample(10).let {
|
||||||
Truth.assertThat(it).isEqualTo(listOf(0.0f, 0.2f, 0.4f, 0.6f, 0.8f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f))
|
assertThat(it).isEqualTo(listOf(0.0f, 0.2f, 0.4f, 0.6f, 0.8f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f))
|
||||||
}
|
}
|
||||||
listOf(0.0f, 0.5f, 1.0f).resample(10).let {
|
listOf(0.0f, 0.5f, 1.0f).resample(10).let {
|
||||||
Truth.assertThat(it).isEqualTo(listOf(0.0f, 0.15f, 0.3f, 0.45000002f, 0.6f, 0.75f, 0.90000004f, 1.0f, 1.0f, 1.0f))
|
assertThat(it).isEqualTo(listOf(0.0f, 0.15f, 0.3f, 0.45000002f, 0.6f, 0.75f, 0.90000004f, 1.0f, 1.0f, 1.0f))
|
||||||
}
|
}
|
||||||
List(100) { it.toFloat() }.resample(10).let {
|
List(100) { it.toFloat() }.resample(10).let {
|
||||||
Truth.assertThat(it).isEqualTo(listOf(0.0f, 10.0f, 20.0f, 30.0f, 40.0f, 50.0f, 60.0f, 70.0f, 80.0f, 90.0f))
|
assertThat(it).isEqualTo(listOf(0.0f, 10.0f, 20.0f, 30.0f, 40.0f, 50.0f, 60.0f, 70.0f, 80.0f, 90.0f))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,8 @@ import com.lemonappdev.konsist.api.Konsist
|
||||||
import com.lemonappdev.konsist.api.ext.list.modifierprovider.withoutOverrideModifier
|
import com.lemonappdev.konsist.api.ext.list.modifierprovider.withoutOverrideModifier
|
||||||
import com.lemonappdev.konsist.api.ext.list.withFunction
|
import com.lemonappdev.konsist.api.ext.list.withFunction
|
||||||
import com.lemonappdev.konsist.api.ext.list.withReturnType
|
import com.lemonappdev.konsist.api.ext.list.withReturnType
|
||||||
|
import com.lemonappdev.konsist.api.ext.list.withoutName
|
||||||
|
import com.lemonappdev.konsist.api.verify.assertFalse
|
||||||
import com.lemonappdev.konsist.api.verify.assertTrue
|
import com.lemonappdev.konsist.api.verify.assertTrue
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
|
|
@ -46,4 +48,18 @@ class KonsistTestTest {
|
||||||
functionDeclaration.name == "create${functionDeclaration.returnType?.name}"
|
functionDeclaration.name == "create${functionDeclaration.returnType?.name}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `assertion methods must be imported`() {
|
||||||
|
Konsist
|
||||||
|
.scopeFromTest()
|
||||||
|
.functions()
|
||||||
|
// Exclude self
|
||||||
|
.withoutName("assertion methods must be imported")
|
||||||
|
.assertFalse(
|
||||||
|
additionalMessage = "Import methods from Truth, instead of using for instance Truth.assertThat(...)"
|
||||||
|
) { functionDeclaration ->
|
||||||
|
functionDeclaration.text.contains("Truth.")
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue