From 4fc3c6f88985617668b040d793c200036e598f16 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 23 May 2024 09:12:40 +0200 Subject: [PATCH] Introduce lambdaError instead of using TODO, to handle error when a lambda is invoked and it should not. --- .../test/permalink/FakePermalinkParser.kt | 3 ++- .../matrix/test/pushers/FakePushersService.kt | 5 ++-- .../FakeNotifiableEventResolver.kt | 3 ++- .../push/impl/push/DefaultPushHandlerTest.kt | 7 +++--- .../impl/test/FakePushGatewayNotifyRequest.kt | 3 ++- .../libraries/push/impl/test/FakeTestPush.kt | 3 ++- .../push/test/FakePusherSubscriber.kt | 5 ++-- .../push/test/test/FakePushHandler.kt | 3 ++- .../firebase/FakeFirebaseNewTokenHandler.kt | 4 +++- libraries/pushproviders/test/build.gradle.kts | 1 + .../pushproviders/test/FakePushProvider.kt | 4 ++-- .../FakeRegisterUnifiedPushUseCase.kt | 3 ++- .../FakeUnifiedPushGatewayResolver.kt | 4 +++- .../FakeUnifiedPushNewGatewayHandler.kt | 4 +++- .../unifiedpush/FakeUnifiedPushStore.kt | 13 ++++++----- .../FakeUnregisterUnifiedPushUseCase.kt | 3 ++- .../clientsecret/FakePushClientSecret.kt | 5 ++-- .../mentions/MentionSpanProvider.kt | 2 +- .../tests/testutils/EnsureNeverCalled.kt | 10 ++++---- .../android/tests/testutils/lambda/Error.kt | 23 +++++++++++++++++++ .../tests/testutils/lambda/LambdaRecorder.kt | 2 +- 21 files changed, 77 insertions(+), 33 deletions(-) create mode 100644 tests/testutils/src/main/kotlin/io/element/android/tests/testutils/lambda/Error.kt diff --git a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/permalink/FakePermalinkParser.kt b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/permalink/FakePermalinkParser.kt index d1ffb70f99..525746e690 100644 --- a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/permalink/FakePermalinkParser.kt +++ b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/permalink/FakePermalinkParser.kt @@ -18,9 +18,10 @@ package io.element.android.libraries.matrix.test.permalink import io.element.android.libraries.matrix.api.permalink.PermalinkData import io.element.android.libraries.matrix.api.permalink.PermalinkParser +import io.element.android.tests.testutils.lambda.lambdaError class FakePermalinkParser( - private var result: () -> PermalinkData = { TODO("Not implemented") } + private var result: () -> PermalinkData = { lambdaError() } ) : PermalinkParser { fun givenResult(result: PermalinkData) { this.result = { result } diff --git a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/pushers/FakePushersService.kt b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/pushers/FakePushersService.kt index adbb2f5b25..3ede3b272f 100644 --- a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/pushers/FakePushersService.kt +++ b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/pushers/FakePushersService.kt @@ -19,10 +19,11 @@ package io.element.android.libraries.matrix.test.pushers import io.element.android.libraries.matrix.api.pusher.PushersService import io.element.android.libraries.matrix.api.pusher.SetHttpPusherData import io.element.android.libraries.matrix.api.pusher.UnsetHttpPusherData +import io.element.android.tests.testutils.lambda.lambdaError class FakePushersService( - private val setHttpPusherResult: (SetHttpPusherData) -> Result = { TODO() }, - private val unsetHttpPusherResult: (UnsetHttpPusherData) -> Result = { TODO() }, + private val setHttpPusherResult: (SetHttpPusherData) -> Result = { lambdaError() }, + private val unsetHttpPusherResult: (UnsetHttpPusherData) -> Result = { lambdaError() }, ) : PushersService { override suspend fun setHttpPusher(setHttpPusherData: SetHttpPusherData) = setHttpPusherResult(setHttpPusherData) override suspend fun unsetHttpPusher(unsetHttpPusherData: UnsetHttpPusherData): Result = unsetHttpPusherResult(unsetHttpPusherData) diff --git a/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/notifications/FakeNotifiableEventResolver.kt b/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/notifications/FakeNotifiableEventResolver.kt index 02cdced886..a9ccabaa6d 100644 --- a/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/notifications/FakeNotifiableEventResolver.kt +++ b/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/notifications/FakeNotifiableEventResolver.kt @@ -20,9 +20,10 @@ import io.element.android.libraries.matrix.api.core.EventId import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.SessionId import io.element.android.libraries.push.impl.notifications.model.NotifiableEvent +import io.element.android.tests.testutils.lambda.lambdaError class FakeNotifiableEventResolver( - private val notifiableEventResult: (SessionId, RoomId, EventId) -> NotifiableEvent? = { _, _, _ -> TODO() } + private val notifiableEventResult: (SessionId, RoomId, EventId) -> NotifiableEvent? = { _, _, _ -> lambdaError() } ) : NotifiableEventResolver { override suspend fun resolveEvent(sessionId: SessionId, roomId: RoomId, eventId: EventId): NotifiableEvent? { return notifiableEventResult(sessionId, roomId, eventId) diff --git a/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandlerTest.kt b/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandlerTest.kt index 5eaa879429..bae296a574 100644 --- a/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandlerTest.kt +++ b/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/push/DefaultPushHandlerTest.kt @@ -41,6 +41,7 @@ import io.element.android.libraries.pushstore.api.clientsecret.PushClientSecret import io.element.android.libraries.pushstore.test.userpushstore.FakeUserPushStore import io.element.android.libraries.pushstore.test.userpushstore.FakeUserPushStoreFactory import io.element.android.libraries.pushstore.test.userpushstore.clientsecret.FakePushClientSecret +import io.element.android.tests.testutils.lambda.lambdaError import io.element.android.tests.testutils.lambda.lambdaRecorder import io.element.android.tests.testutils.lambda.value import kotlinx.coroutines.ExperimentalCoroutinesApi @@ -240,9 +241,9 @@ class DefaultPushHandlerTest { } private fun createDefaultPushHandler( - onNotifiableEventReceived: (NotifiableEvent) -> Unit = { TODO() }, - notifiableEventResult: (SessionId, RoomId, EventId) -> NotifiableEvent? = { _, _, _ -> TODO() }, - incrementPushCounterResult: () -> Unit = { TODO() }, + onNotifiableEventReceived: (NotifiableEvent) -> Unit = { lambdaError() }, + notifiableEventResult: (SessionId, RoomId, EventId) -> NotifiableEvent? = { _, _, _ -> lambdaError() }, + incrementPushCounterResult: () -> Unit = { lambdaError() }, userPushStore: UserPushStore = FakeUserPushStore(), pushClientSecret: PushClientSecret = FakePushClientSecret(), buildMeta: BuildMeta = aBuildMeta(), diff --git a/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/test/FakePushGatewayNotifyRequest.kt b/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/test/FakePushGatewayNotifyRequest.kt index 6fee8ffbf5..d0fa5a546f 100644 --- a/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/test/FakePushGatewayNotifyRequest.kt +++ b/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/test/FakePushGatewayNotifyRequest.kt @@ -17,9 +17,10 @@ package io.element.android.libraries.push.impl.test import io.element.android.libraries.push.impl.pushgateway.PushGatewayNotifyRequest +import io.element.android.tests.testutils.lambda.lambdaError class FakePushGatewayNotifyRequest( - private val executeResult: (PushGatewayNotifyRequest.Params) -> Unit = { TODO() } + private val executeResult: (PushGatewayNotifyRequest.Params) -> Unit = { lambdaError() } ) : PushGatewayNotifyRequest { override suspend fun execute(params: PushGatewayNotifyRequest.Params) { executeResult(params) diff --git a/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/test/FakeTestPush.kt b/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/test/FakeTestPush.kt index 0f6f1e1862..d7bf8c8c42 100644 --- a/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/test/FakeTestPush.kt +++ b/libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/test/FakeTestPush.kt @@ -17,9 +17,10 @@ package io.element.android.libraries.push.impl.test import io.element.android.libraries.pushproviders.api.CurrentUserPushConfig +import io.element.android.tests.testutils.lambda.lambdaError class FakeTestPush( - private val executeResult: (CurrentUserPushConfig) -> Unit = { TODO() } + private val executeResult: (CurrentUserPushConfig) -> Unit = { lambdaError() } ) : TestPush { override suspend fun execute(config: CurrentUserPushConfig) { executeResult(config) diff --git a/libraries/push/test/src/main/kotlin/io/element/android/libraries/push/test/FakePusherSubscriber.kt b/libraries/push/test/src/main/kotlin/io/element/android/libraries/push/test/FakePusherSubscriber.kt index bf45ccabbb..8338bb1e4c 100644 --- a/libraries/push/test/src/main/kotlin/io/element/android/libraries/push/test/FakePusherSubscriber.kt +++ b/libraries/push/test/src/main/kotlin/io/element/android/libraries/push/test/FakePusherSubscriber.kt @@ -18,10 +18,11 @@ package io.element.android.libraries.push.test import io.element.android.libraries.matrix.api.MatrixClient import io.element.android.libraries.pushproviders.api.PusherSubscriber +import io.element.android.tests.testutils.lambda.lambdaError class FakePusherSubscriber( - private val registerPusherResult: (MatrixClient, String, String) -> Result = { _, _, _ -> TODO() }, - private val unregisterPusherResult: (MatrixClient, String, String) -> Result = { _, _, _ -> TODO() }, + private val registerPusherResult: (MatrixClient, String, String) -> Result = { _, _, _ -> lambdaError() }, + private val unregisterPusherResult: (MatrixClient, String, String) -> Result = { _, _, _ -> lambdaError() }, ) : PusherSubscriber { override suspend fun registerPusher(matrixClient: MatrixClient, pushKey: String, gateway: String): Result { return registerPusherResult(matrixClient, pushKey, gateway) diff --git a/libraries/push/test/src/main/kotlin/io/element/android/libraries/push/test/test/FakePushHandler.kt b/libraries/push/test/src/main/kotlin/io/element/android/libraries/push/test/test/FakePushHandler.kt index c6933a8867..c370250bd0 100644 --- a/libraries/push/test/src/main/kotlin/io/element/android/libraries/push/test/test/FakePushHandler.kt +++ b/libraries/push/test/src/main/kotlin/io/element/android/libraries/push/test/test/FakePushHandler.kt @@ -18,9 +18,10 @@ package io.element.android.libraries.push.test.test import io.element.android.libraries.pushproviders.api.PushData import io.element.android.libraries.pushproviders.api.PushHandler +import io.element.android.tests.testutils.lambda.lambdaError class FakePushHandler( - private val handleResult: (PushData) -> Unit = { TODO() } + private val handleResult: (PushData) -> Unit = { lambdaError() } ) : PushHandler { override suspend fun handle(pushData: PushData) { handleResult(pushData) diff --git a/libraries/pushproviders/firebase/src/test/kotlin/io/element/android/libraries/pushproviders/firebase/FakeFirebaseNewTokenHandler.kt b/libraries/pushproviders/firebase/src/test/kotlin/io/element/android/libraries/pushproviders/firebase/FakeFirebaseNewTokenHandler.kt index 3db2b37cfc..aa66f0288c 100644 --- a/libraries/pushproviders/firebase/src/test/kotlin/io/element/android/libraries/pushproviders/firebase/FakeFirebaseNewTokenHandler.kt +++ b/libraries/pushproviders/firebase/src/test/kotlin/io/element/android/libraries/pushproviders/firebase/FakeFirebaseNewTokenHandler.kt @@ -16,8 +16,10 @@ package io.element.android.libraries.pushproviders.firebase +import io.element.android.tests.testutils.lambda.lambdaError + class FakeFirebaseNewTokenHandler( - private val handleResult: (String) -> Unit = { TODO() } + private val handleResult: (String) -> Unit = { lambdaError() } ) : FirebaseNewTokenHandler { override suspend fun handle(firebaseToken: String) { handleResult(firebaseToken) diff --git a/libraries/pushproviders/test/build.gradle.kts b/libraries/pushproviders/test/build.gradle.kts index ddb68ed43f..9a0d2c139c 100644 --- a/libraries/pushproviders/test/build.gradle.kts +++ b/libraries/pushproviders/test/build.gradle.kts @@ -24,4 +24,5 @@ android { dependencies { implementation(projects.libraries.matrix.api) implementation(projects.libraries.pushproviders.api) + implementation(projects.tests.testutils) } diff --git a/libraries/pushproviders/test/src/main/kotlin/io/element/android/libraries/pushproviders/test/FakePushProvider.kt b/libraries/pushproviders/test/src/main/kotlin/io/element/android/libraries/pushproviders/test/FakePushProvider.kt index ef938f71c8..e46516772d 100644 --- a/libraries/pushproviders/test/src/main/kotlin/io/element/android/libraries/pushproviders/test/FakePushProvider.kt +++ b/libraries/pushproviders/test/src/main/kotlin/io/element/android/libraries/pushproviders/test/FakePushProvider.kt @@ -27,8 +27,8 @@ class FakePushProvider( private val isAvailable: Boolean = true, private val distributors: List = listOf(Distributor("aDistributorValue", "aDistributorName")), private val currentUserPushConfig: CurrentUserPushConfig? = null, - private val registerWithResult: (MatrixClient, Distributor) -> Result = { _, _ -> TODO() }, - private val unregisterWithResult: (MatrixClient) -> Result = { TODO() }, + private val registerWithResult: (MatrixClient, Distributor) -> Result = { _, _ -> lambdaError() }, + private val unregisterWithResult: (MatrixClient) -> Result = { lambdaError() }, ) : PushProvider { override fun isAvailable(): Boolean = isAvailable diff --git a/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/FakeRegisterUnifiedPushUseCase.kt b/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/FakeRegisterUnifiedPushUseCase.kt index b1995af699..1800903dea 100644 --- a/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/FakeRegisterUnifiedPushUseCase.kt +++ b/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/FakeRegisterUnifiedPushUseCase.kt @@ -17,9 +17,10 @@ package io.element.android.libraries.pushproviders.unifiedpush import io.element.android.libraries.pushproviders.api.Distributor +import io.element.android.tests.testutils.lambda.lambdaError class FakeRegisterUnifiedPushUseCase( - private val result: (Distributor, String) -> Result = { _, _ -> TODO("Not yet implemented") } + private val result: (Distributor, String) -> Result = { _, _ -> lambdaError() } ) : RegisterUnifiedPushUseCase { override suspend fun execute(distributor: Distributor, clientSecret: String): Result { return result(distributor, clientSecret) diff --git a/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/FakeUnifiedPushGatewayResolver.kt b/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/FakeUnifiedPushGatewayResolver.kt index 37b70fb438..0bc52fbae8 100644 --- a/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/FakeUnifiedPushGatewayResolver.kt +++ b/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/FakeUnifiedPushGatewayResolver.kt @@ -16,8 +16,10 @@ package io.element.android.libraries.pushproviders.unifiedpush +import io.element.android.tests.testutils.lambda.lambdaError + class FakeUnifiedPushGatewayResolver( - private val getGatewayResult: (String) -> String = { TODO() }, + private val getGatewayResult: (String) -> String = { lambdaError() }, ) : UnifiedPushGatewayResolver { override suspend fun getGateway(endpoint: String): String { return getGatewayResult(endpoint) diff --git a/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/FakeUnifiedPushNewGatewayHandler.kt b/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/FakeUnifiedPushNewGatewayHandler.kt index 4e84e5e198..b8d70baada 100644 --- a/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/FakeUnifiedPushNewGatewayHandler.kt +++ b/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/FakeUnifiedPushNewGatewayHandler.kt @@ -16,8 +16,10 @@ package io.element.android.libraries.pushproviders.unifiedpush +import io.element.android.tests.testutils.lambda.lambdaError + class FakeUnifiedPushNewGatewayHandler( - private val handleResult: suspend (String, String, String) -> Result = { _, _, _ -> TODO() }, + private val handleResult: suspend (String, String, String) -> Result = { _, _, _ -> lambdaError() }, ) : UnifiedPushNewGatewayHandler { override suspend fun handle(endpoint: String, pushGateway: String, clientSecret: String): Result { return handleResult(endpoint, pushGateway, clientSecret) diff --git a/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/FakeUnifiedPushStore.kt b/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/FakeUnifiedPushStore.kt index bc806a941d..aa381d9535 100644 --- a/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/FakeUnifiedPushStore.kt +++ b/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/FakeUnifiedPushStore.kt @@ -17,14 +17,15 @@ package io.element.android.libraries.pushproviders.unifiedpush import io.element.android.libraries.matrix.api.core.UserId +import io.element.android.tests.testutils.lambda.lambdaError class FakeUnifiedPushStore( - private val getEndpointResult: (String) -> String? = { TODO() }, - private val storeUpEndpointResult: (String, String?) -> Unit = { _, _ -> TODO() }, - private val getPushGatewayResult: (String) -> String? = { TODO() }, - private val storePushGatewayResult: (String, String?) -> Unit = { _, _ -> TODO() }, - private val getDistributorValueResult: (UserId) -> String? = { TODO() }, - private val setDistributorValueResult: (UserId, String) -> Unit = { _, _ -> TODO() }, + private val getEndpointResult: (String) -> String? = { lambdaError() }, + private val storeUpEndpointResult: (String, String?) -> Unit = { _, _ -> lambdaError() }, + private val getPushGatewayResult: (String) -> String? = { lambdaError() }, + private val storePushGatewayResult: (String, String?) -> Unit = { _, _ -> lambdaError() }, + private val getDistributorValueResult: (UserId) -> String? = { lambdaError() }, + private val setDistributorValueResult: (UserId, String) -> Unit = { _, _ -> lambdaError() }, ) : UnifiedPushStore { override fun getEndpoint(clientSecret: String): String? { return getEndpointResult(clientSecret) diff --git a/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/FakeUnregisterUnifiedPushUseCase.kt b/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/FakeUnregisterUnifiedPushUseCase.kt index 7aca65fe0d..9f3293420a 100644 --- a/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/FakeUnregisterUnifiedPushUseCase.kt +++ b/libraries/pushproviders/unifiedpush/src/test/kotlin/io/element/android/libraries/pushproviders/unifiedpush/FakeUnregisterUnifiedPushUseCase.kt @@ -17,9 +17,10 @@ package io.element.android.libraries.pushproviders.unifiedpush import io.element.android.libraries.matrix.api.MatrixClient +import io.element.android.tests.testutils.lambda.lambdaError class FakeUnregisterUnifiedPushUseCase( - private val result: (MatrixClient, String) -> Result = { _, _ -> TODO("Not yet implemented") } + private val result: (MatrixClient, String) -> Result = { _, _ -> lambdaError() } ) : UnregisterUnifiedPushUseCase { override suspend fun execute(matrixClient: MatrixClient, clientSecret: String): Result { return result(matrixClient, clientSecret) diff --git a/libraries/pushstore/test/src/main/kotlin/io/element/android/libraries/pushstore/test/userpushstore/clientsecret/FakePushClientSecret.kt b/libraries/pushstore/test/src/main/kotlin/io/element/android/libraries/pushstore/test/userpushstore/clientsecret/FakePushClientSecret.kt index 0853804049..25759ecc45 100644 --- a/libraries/pushstore/test/src/main/kotlin/io/element/android/libraries/pushstore/test/userpushstore/clientsecret/FakePushClientSecret.kt +++ b/libraries/pushstore/test/src/main/kotlin/io/element/android/libraries/pushstore/test/userpushstore/clientsecret/FakePushClientSecret.kt @@ -18,10 +18,11 @@ package io.element.android.libraries.pushstore.test.userpushstore.clientsecret import io.element.android.libraries.matrix.api.core.SessionId import io.element.android.libraries.pushstore.api.clientsecret.PushClientSecret +import io.element.android.tests.testutils.lambda.lambdaError class FakePushClientSecret( - private val getSecretForUserResult: (SessionId) -> String = { TODO() }, - private val getUserIdFromSecretResult: (String) -> SessionId? = { TODO() } + private val getSecretForUserResult: (SessionId) -> String = { lambdaError() }, + private val getUserIdFromSecretResult: (String) -> SessionId? = { lambdaError() } ) : PushClientSecret { override suspend fun getSecretForUser(userId: SessionId): String { return getSecretForUserResult(userId) diff --git a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/mentions/MentionSpanProvider.kt b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/mentions/MentionSpanProvider.kt index f7da518feb..e5c9f4793c 100644 --- a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/mentions/MentionSpanProvider.kt +++ b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/mentions/MentionSpanProvider.kt @@ -164,7 +164,7 @@ internal fun MentionSpanPreview() { eventId = null, viaParameters = persistentListOf(), ) - else -> TODO() + else -> throw AssertionError("Unexpected value $uriString") } } }, diff --git a/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/EnsureNeverCalled.kt b/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/EnsureNeverCalled.kt index f2f2c31fed..aaf7dc54a1 100644 --- a/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/EnsureNeverCalled.kt +++ b/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/EnsureNeverCalled.kt @@ -16,26 +16,28 @@ package io.element.android.tests.testutils +import io.element.android.tests.testutils.lambda.lambdaError + class EnsureNeverCalled : () -> Unit { override fun invoke() { - throw AssertionError("Should not be called") + lambdaError() } } class EnsureNeverCalledWithParam : (T) -> Unit { override fun invoke(p1: T) { - throw AssertionError("Should not be called and is called with $p1") + lambdaError("Should not be called and is called with $p1") } } class EnsureNeverCalledWithParamAndResult : (T) -> R { override fun invoke(p1: T): R { - throw AssertionError("Should not be called and is called with $p1") + lambdaError("Should not be called and is called with $p1") } } class EnsureNeverCalledWithTwoParams : (T, U) -> Unit { override fun invoke(p1: T, p2: U) { - throw AssertionError("Should not be called and is called with $p1 and $p2") + lambdaError("Should not be called and is called with $p1 and $p2") } } diff --git a/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/lambda/Error.kt b/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/lambda/Error.kt new file mode 100644 index 0000000000..c7fc10495a --- /dev/null +++ b/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/lambda/Error.kt @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.tests.testutils.lambda + +fun lambdaError( + message: String = "This lambda should never be called." +): Nothing { + throw AssertionError(message) +} diff --git a/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/lambda/LambdaRecorder.kt b/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/lambda/LambdaRecorder.kt index 4e49560398..8455d34ef6 100644 --- a/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/lambda/LambdaRecorder.kt +++ b/tests/testutils/src/main/kotlin/io/element/android/tests/testutils/lambda/LambdaRecorder.kt @@ -26,7 +26,7 @@ abstract class LambdaRecorder internal constructor( internal fun onInvoke(vararg params: Any?) { if (assertNoInvocation) { - throw AssertionError("This lambda should never be called.") + lambdaError() } parametersSequence.add(params.toList()) }