diff --git a/logic/src/commonTest/kotlin/com/wire/kalium/logic/data/properties/UserPropertyRepositoryTest.kt b/logic/src/commonTest/kotlin/com/wire/kalium/logic/data/properties/UserPropertyRepositoryTest.kt index 7ded78b5b54..8179502ed04 100644 --- a/logic/src/commonTest/kotlin/com/wire/kalium/logic/data/properties/UserPropertyRepositoryTest.kt +++ b/logic/src/commonTest/kotlin/com/wire/kalium/logic/data/properties/UserPropertyRepositoryTest.kt @@ -32,13 +32,11 @@ import io.mockative.given import io.mockative.mock import io.mockative.once import io.mockative.verify -import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.test.runTest import kotlin.test.Test import kotlin.test.assertFalse -@OptIn(ExperimentalCoroutinesApi::class) class UserPropertyRepositoryTest { @Test @@ -93,7 +91,7 @@ class UserPropertyRepositoryTest { assertFalse(result) verify(arrangement.userConfigRepository) - .function(arrangement.userConfigRepository::isReadReceiptsEnabled) + .suspendFunction(arrangement.userConfigRepository::isReadReceiptsEnabled) .wasInvoked(exactly = once) } @@ -123,14 +121,14 @@ class UserPropertyRepositoryTest { fun withUpdateReadReceiptsLocallySuccess() = apply { given(userConfigRepository) - .function(userConfigRepository::setReadReceiptsStatus) + .suspendFunction(userConfigRepository::setReadReceiptsStatus) .whenInvokedWith(any()) .thenReturn(Either.Right(Unit)) } fun withNullReadReceiptsStatus() = apply { given(userConfigRepository) - .function(userConfigRepository::isReadReceiptsEnabled) + .suspendFunction(userConfigRepository::isReadReceiptsEnabled) .whenInvoked() .thenReturn(flowOf(Either.Left(StorageFailure.DataNotFound))) } diff --git a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/applock/AppLockTeamFeatureConfigObserverTest.kt b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/applock/AppLockTeamFeatureConfigObserverTest.kt index fb23b82b17f..66de81de67c 100644 --- a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/applock/AppLockTeamFeatureConfigObserverTest.kt +++ b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/applock/AppLockTeamFeatureConfigObserverTest.kt @@ -53,7 +53,7 @@ class AppLockTeamFeatureConfigObserverTest { val result = observer.invoke() verify(arrangement.userConfigRepository) - .function(arrangement.userConfigRepository::observeAppLockConfig) + .suspendFunction(arrangement.userConfigRepository::observeAppLockConfig) .wasNotInvoked() assertEquals(expectedAppLockValue, result.first()) } @@ -73,7 +73,7 @@ class AppLockTeamFeatureConfigObserverTest { val result = observer.invoke() verify(arrangement.userConfigRepository) - .function(arrangement.userConfigRepository::observeAppLockConfig) + .suspendFunction(arrangement.userConfigRepository::observeAppLockConfig) .wasInvoked(exactly = once) assertEquals(expectedAppLockValue, result.first()) } @@ -93,7 +93,7 @@ class AppLockTeamFeatureConfigObserverTest { val result = observer.invoke() verify(arrangement.userConfigRepository) - .function(arrangement.userConfigRepository::observeAppLockConfig) + .suspendFunction(arrangement.userConfigRepository::observeAppLockConfig) .wasInvoked(exactly = once) assertEquals(expectedAppLockValue, result.first()) } @@ -108,14 +108,14 @@ class AppLockTeamFeatureConfigObserverTest { fun withFailure(): Arrangement = apply { given(userConfigRepository) - .function(userConfigRepository::observeAppLockConfig) + .suspendFunction(userConfigRepository::observeAppLockConfig) .whenInvoked() .thenReturn(flowOf(Either.Left(StorageFailure.DataNotFound))) } fun withSuccess(): Arrangement = apply { given(userConfigRepository) - .function(userConfigRepository::observeAppLockConfig) + .suspendFunction(userConfigRepository::observeAppLockConfig) .whenInvoked() .thenReturn(flowOf(Either.Right(appLockTeamConfig))) } diff --git a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/applock/MarkTeamAppLockStatusAsNotifiedUseCaseTest.kt b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/applock/MarkTeamAppLockStatusAsNotifiedUseCaseTest.kt index 934a334833b..7f3e46c427d 100644 --- a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/applock/MarkTeamAppLockStatusAsNotifiedUseCaseTest.kt +++ b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/applock/MarkTeamAppLockStatusAsNotifiedUseCaseTest.kt @@ -25,12 +25,13 @@ import io.mockative.given import io.mockative.mock import io.mockative.once import io.mockative.verify +import kotlinx.coroutines.test.runTest import kotlin.test.Test class MarkTeamAppLockStatusAsNotifiedUseCaseTest { @Test - fun givenAppLockStatusChanged_whenMarkingAsNotified_thenSetAppLockAsNotified() { + fun givenAppLockStatusChanged_whenMarkingAsNotified_thenSetAppLockAsNotified() = runTest { val (arrangement, useCase) = Arrangement() .withSuccess() .arrange() @@ -38,7 +39,7 @@ class MarkTeamAppLockStatusAsNotifiedUseCaseTest { useCase.invoke() verify(arrangement.userConfigRepository) - .function(arrangement.userConfigRepository::setTeamAppLockAsNotified) + .suspendFunction(arrangement.userConfigRepository::setTeamAppLockAsNotified) .wasInvoked(once) } @@ -53,7 +54,7 @@ class MarkTeamAppLockStatusAsNotifiedUseCaseTest { fun withSuccess() = apply { given(userConfigRepository) - .function(userConfigRepository::setTeamAppLockAsNotified) + .suspendFunction(userConfigRepository::setTeamAppLockAsNotified) .whenInvoked() .thenReturn(Either.Right(Unit)) } diff --git a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/call/usecase/IsEligibleToStartCallUseCaseTest.kt b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/call/usecase/IsEligibleToStartCallUseCaseTest.kt index ca44d2f17c9..f63b8fa99d2 100644 --- a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/call/usecase/IsEligibleToStartCallUseCaseTest.kt +++ b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/call/usecase/IsEligibleToStartCallUseCaseTest.kt @@ -60,7 +60,7 @@ class IsEligibleToStartCallUseCaseTest { .thenReturn(null) given(userConfigRepository) - .function(userConfigRepository::isConferenceCallingEnabled) + .suspendFunction(userConfigRepository::isConferenceCallingEnabled) .whenInvoked() .thenReturn(Either.Left(StorageFailure.Generic(Throwable("error")))) @@ -83,7 +83,7 @@ class IsEligibleToStartCallUseCaseTest { .thenReturn(null) given(userConfigRepository) - .function(userConfigRepository::isConferenceCallingEnabled) + .suspendFunction(userConfigRepository::isConferenceCallingEnabled) .whenInvoked() .thenReturn(Either.Left(StorageFailure.Generic(Throwable("error")))) @@ -107,7 +107,7 @@ class IsEligibleToStartCallUseCaseTest { .thenReturn(establishedCallConversationId) given(userConfigRepository) - .function(userConfigRepository::isConferenceCallingEnabled) + .suspendFunction(userConfigRepository::isConferenceCallingEnabled) .whenInvoked() .thenReturn(Either.Left(StorageFailure.Generic(Throwable("error")))) @@ -131,7 +131,7 @@ class IsEligibleToStartCallUseCaseTest { .thenReturn(establishedCallConversationId) given(userConfigRepository) - .function(userConfigRepository::isConferenceCallingEnabled) + .suspendFunction(userConfigRepository::isConferenceCallingEnabled) .whenInvoked() .thenReturn(Either.Right(true)) @@ -155,7 +155,7 @@ class IsEligibleToStartCallUseCaseTest { .thenReturn(conversationId) given(userConfigRepository) - .function(userConfigRepository::isConferenceCallingEnabled) + .suspendFunction(userConfigRepository::isConferenceCallingEnabled) .whenInvoked() .thenReturn(Either.Right(true)) diff --git a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/client/ObserveE2EIRequiredUseCaseTest.kt b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/client/ObserveE2EIRequiredUseCaseTest.kt index 7feda0ad1a1..25b35fefdbf 100644 --- a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/client/ObserveE2EIRequiredUseCaseTest.kt +++ b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/client/ObserveE2EIRequiredUseCaseTest.kt @@ -28,7 +28,6 @@ import com.wire.kalium.logic.functional.Either import com.wire.kalium.logic.test_util.TestKaliumDispatcher import com.wire.kalium.util.DateTimeUtil import io.mockative.Mock -import io.mockative.any import io.mockative.given import io.mockative.mock import io.mockative.verify @@ -183,7 +182,7 @@ class ObserveE2EIRequiredUseCaseTest { } verify(arrangement.userConfigRepository) - .function(arrangement.userConfigRepository::observeE2EINotificationTime) + .suspendFunction(arrangement.userConfigRepository::observeE2EINotificationTime) .wasNotInvoked() } @@ -199,14 +198,14 @@ class ObserveE2EIRequiredUseCaseTest { fun withMLSE2EISetting(setting: E2EISettings) = apply { given(userConfigRepository) - .function(userConfigRepository::observeE2EISettings) + .suspendFunction(userConfigRepository::observeE2EISettings) .whenInvoked() .then { flowOf(Either.Right(setting)) } } fun withE2EINotificationTime(instant: Instant?) = apply { given(userConfigRepository) - .function(userConfigRepository::observeE2EINotificationTime) + .suspendFunction(userConfigRepository::observeE2EINotificationTime) .whenInvoked() .then { flowOf(Either.Right(instant)) } } diff --git a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/conversation/ObserveOtherUserSecurityClassificationLabelUseCaseTest.kt b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/conversation/ObserveOtherUserSecurityClassificationLabelUseCaseTest.kt index 6fbd985975b..c216ce66f81 100644 --- a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/conversation/ObserveOtherUserSecurityClassificationLabelUseCaseTest.kt +++ b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/conversation/ObserveOtherUserSecurityClassificationLabelUseCaseTest.kt @@ -93,14 +93,14 @@ class ObserveOtherUserSecurityClassificationLabelUseCaseTest { fun withGettingClassifiedDomainsDisabled() = apply { given(userConfigRepository) - .function(userConfigRepository::getClassifiedDomainsStatus) + .suspendFunction(userConfigRepository::getClassifiedDomainsStatus) .whenInvoked() .thenReturn(flowOf(Either.Left(StorageFailure.DataNotFound))) } fun withGettingClassifiedDomains() = apply { given(userConfigRepository) - .function(userConfigRepository::getClassifiedDomainsStatus) + .suspendFunction(userConfigRepository::getClassifiedDomainsStatus) .whenInvoked() .thenReturn(flowOf(Either.Right(ClassifiedDomainsStatus(true, listOf("wire.com", "bella.com"))))) } diff --git a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/conversation/ObserveSecurityClassificationLabelUseCaseTest.kt b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/conversation/ObserveSecurityClassificationLabelUseCaseTest.kt index 2a5b610681b..671ab9babfe 100644 --- a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/conversation/ObserveSecurityClassificationLabelUseCaseTest.kt +++ b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/conversation/ObserveSecurityClassificationLabelUseCaseTest.kt @@ -156,14 +156,14 @@ class ObserveSecurityClassificationLabelUseCaseTest { fun withGettingClassifiedDomainsDisabled() = apply { given(userConfigRepository) - .function(userConfigRepository::getClassifiedDomainsStatus) + .suspendFunction(userConfigRepository::getClassifiedDomainsStatus) .whenInvoked() .thenReturn(emptyFlow()) } fun withGettingClassifiedDomains(domains: List) = apply { given(userConfigRepository) - .function(userConfigRepository::getClassifiedDomainsStatus) + .suspendFunction(userConfigRepository::getClassifiedDomainsStatus) .whenInvoked() .thenReturn(flowOf(Either.Right(ClassifiedDomainsStatus(true, domains)))) } diff --git a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/featureConfig/SyncFeatureConfigsUseCaseTest.kt b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/featureConfig/SyncFeatureConfigsUseCaseTest.kt index 6a871f22e70..361a27499a6 100644 --- a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/featureConfig/SyncFeatureConfigsUseCaseTest.kt +++ b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/featureConfig/SyncFeatureConfigsUseCaseTest.kt @@ -19,19 +19,20 @@ package com.wire.kalium.logic.feature.featureConfig import com.wire.kalium.logic.NetworkFailure import com.wire.kalium.logic.configuration.FileSharingStatus -import com.wire.kalium.logic.configuration.GuestRoomLinkStatus import com.wire.kalium.logic.configuration.UserConfigDataSource import com.wire.kalium.logic.configuration.UserConfigRepository import com.wire.kalium.logic.data.featureConfig.ConferenceCallingModel import com.wire.kalium.logic.data.featureConfig.ConfigsStatusModel +import com.wire.kalium.logic.data.featureConfig.E2EIConfigModel +import com.wire.kalium.logic.data.featureConfig.E2EIModel import com.wire.kalium.logic.data.featureConfig.FeatureConfigModel import com.wire.kalium.logic.data.featureConfig.FeatureConfigRepository import com.wire.kalium.logic.data.featureConfig.FeatureConfigTest -import com.wire.kalium.logic.data.featureConfig.E2EIConfigModel -import com.wire.kalium.logic.data.featureConfig.E2EIModel import com.wire.kalium.logic.data.featureConfig.SelfDeletingMessagesConfigModel import com.wire.kalium.logic.data.featureConfig.SelfDeletingMessagesModel import com.wire.kalium.logic.data.featureConfig.Status +import com.wire.kalium.logic.data.message.SelfDeletionMapper.toTeamSelfDeleteTimer +import com.wire.kalium.logic.data.message.TeamSelfDeleteTimer import com.wire.kalium.logic.feature.featureConfig.handler.AppLockConfigHandler import com.wire.kalium.logic.feature.featureConfig.handler.ClassifiedDomainsConfigHandler import com.wire.kalium.logic.feature.featureConfig.handler.ConferenceCallingConfigHandler @@ -42,8 +43,6 @@ import com.wire.kalium.logic.feature.featureConfig.handler.MLSConfigHandler import com.wire.kalium.logic.feature.featureConfig.handler.MLSMigrationConfigHandler import com.wire.kalium.logic.feature.featureConfig.handler.SecondFactorPasswordChallengeConfigHandler import com.wire.kalium.logic.feature.featureConfig.handler.SelfDeletingMessagesConfigHandler -import com.wire.kalium.logic.data.message.SelfDeletionMapper.toTeamSelfDeleteTimer -import com.wire.kalium.logic.data.message.TeamSelfDeleteTimer import com.wire.kalium.logic.feature.user.UpdateSupportedProtocolsAndResolveOneOnOnesUseCase import com.wire.kalium.logic.featureFlags.BuildFileRestrictionState import com.wire.kalium.logic.featureFlags.KaliumConfigs @@ -51,9 +50,11 @@ import com.wire.kalium.logic.framework.TestUser import com.wire.kalium.logic.functional.Either import com.wire.kalium.logic.test_util.TestNetworkException import com.wire.kalium.logic.util.shouldSucceed -import com.wire.kalium.persistence.config.inMemoryUserConfigStorage import com.wire.kalium.persistence.dao.SupportedProtocolEntity +import com.wire.kalium.persistence.dao.config.MLSConfigDAO import com.wire.kalium.persistence.dao.config.UserConfigDAO +import com.wire.kalium.persistence.dao.config.model.IsFileSharingEnabledEntity +import com.wire.kalium.persistence.dao.config.model.IsGuestRoomLinkEnabledEntity import io.mockative.Mock import io.mockative.any import io.mockative.classOf @@ -281,8 +282,8 @@ class SyncFeatureConfigsUseCaseTest { FeatureConfigTest.newModel(guestRoomLink = ConfigsStatusModel(Status.ENABLED)) ) .withGuestRoomLinkEnabledReturning( - GuestRoomLinkStatus( - isGuestRoomLinkEnabled = true, + IsGuestRoomLinkEnabledEntity( + status = true, isStatusChanged = false ) ) @@ -304,8 +305,8 @@ class SyncFeatureConfigsUseCaseTest { FeatureConfigTest.newModel(guestRoomLink = ConfigsStatusModel(Status.DISABLED)) ) .withGuestRoomLinkEnabledReturning( - GuestRoomLinkStatus( - isGuestRoomLinkEnabled = false, + IsGuestRoomLinkEnabledEntity( + status = false, isStatusChanged = false ) ) @@ -327,8 +328,8 @@ class SyncFeatureConfigsUseCaseTest { FeatureConfigTest.newModel(guestRoomLink = ConfigsStatusModel(Status.DISABLED)) ) .withGuestRoomLinkEnabledReturning( - GuestRoomLinkStatus( - isGuestRoomLinkEnabled = true, + IsGuestRoomLinkEnabledEntity( + status = true, isStatusChanged = false ) ) @@ -351,8 +352,8 @@ class SyncFeatureConfigsUseCaseTest { FeatureConfigTest.newModel(guestRoomLink = ConfigsStatusModel(Status.ENABLED)) ) .withGuestRoomLinkEnabledReturning( - GuestRoomLinkStatus( - isGuestRoomLinkEnabled = false, + IsGuestRoomLinkEnabledEntity( + status = false, isStatusChanged = false ) ) @@ -627,16 +628,17 @@ class SyncFeatureConfigsUseCaseTest { private class Arrangement { - private val inMemoryStorage = inMemoryUserConfigStorage() - var kaliumConfigs = KaliumConfigs() @Mock val userConfigDAO: UserConfigDAO = mock(UserConfigDAO::class) + @Mock + val mlsConfigDAO: MLSConfigDAO = mock(MLSConfigDAO::class) + var userConfigRepository: UserConfigRepository = UserConfigDataSource( - inMemoryStorage, userConfigDAO, + mlsConfigDAO, kaliumConfigs ) private set @@ -656,8 +658,8 @@ class SyncFeatureConfigsUseCaseTest { // isStatusChanged = false // ) withGuestRoomLinkEnabledReturning( - GuestRoomLinkStatus( - isGuestRoomLinkEnabled = true, + IsGuestRoomLinkEnabledEntity( + status = true, isStatusChanged = false ) ) @@ -668,8 +670,8 @@ class SyncFeatureConfigsUseCaseTest { ) = apply { kaliumConfigs = kaliumConfigs.copy(fileRestrictionState = state) userConfigRepository = UserConfigDataSource( - inMemoryStorage, userConfigDAO, + mlsConfigDAO, kaliumConfigs ) } @@ -688,16 +690,17 @@ class SyncFeatureConfigsUseCaseTest { status: Boolean, isStatusChanged: Boolean? ) = apply { - userConfigRepository.setFileSharingStatus( - status, isStatusChanged - ) + given(userConfigDAO) + .suspendFunction(userConfigDAO::isFileSharingEnabled) + .whenInvoked() + .then { IsFileSharingEnabledEntity(status, isStatusChanged) } } - fun withGuestRoomLinkEnabledReturning(guestRoomLinkStatus: GuestRoomLinkStatus) = apply { - inMemoryStorage.persistGuestRoomLinkFeatureFlag( - guestRoomLinkStatus.isGuestRoomLinkEnabled ?: false, - guestRoomLinkStatus.isStatusChanged - ) + fun withGuestRoomLinkEnabledReturning(guestRoomLinkStatus: IsGuestRoomLinkEnabledEntity) = apply { + given(userConfigDAO) + .suspendFunction(userConfigDAO::isGuestRoomLinkEnabled) + .whenInvoked() + .then { guestRoomLinkStatus } } fun withGetTeamSettingsSelfDeletionStatusSuccessful() = apply { diff --git a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/featureConfig/handler/AppLockConfigHandlerTest.kt b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/featureConfig/handler/AppLockConfigHandlerTest.kt index 5b98a583877..5e04c2cf458 100644 --- a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/featureConfig/handler/AppLockConfigHandlerTest.kt +++ b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/featureConfig/handler/AppLockConfigHandlerTest.kt @@ -30,13 +30,14 @@ import io.mockative.given import io.mockative.mock import io.mockative.once import io.mockative.verify +import kotlinx.coroutines.test.runTest import kotlin.test.Test import kotlin.time.Duration.Companion.seconds class AppLockConfigHandlerTest { @Test - fun givenConfigRepositoryReturnsFailureWithStatusDisabled_whenHandlingTheEvent_ThenSetAppLockWithStatusChangedFalse() { + fun givenConfigRepositoryReturnsFailureWithStatusDisabled_whenHandlingTheEvent_ThenSetAppLockWithStatusChangedFalse() = runTest { val appLockModel = AppLockModel(Status.DISABLED, 20) val (arrangement, appLockConfigHandler) = Arrangement() .withUserConfigRepositoryFailure() @@ -45,7 +46,7 @@ class AppLockConfigHandlerTest { appLockConfigHandler.handle(appLockModel) verify(arrangement.userConfigRepository) - .function(arrangement.userConfigRepository::isTeamAppLockEnabled) + .suspendFunction(arrangement.userConfigRepository::isTeamAppLockEnabled) .wasInvoked(exactly = once) verify(arrangement.userConfigRepository) @@ -59,7 +60,7 @@ class AppLockConfigHandlerTest { } @Test - fun givenConfigRepositoryReturnsFailureWithStatusEnabled_whenHandlingTheEvent_ThenSetAppLockWithStatusChangedTrue() { + fun givenConfigRepositoryReturnsFailureWithStatusEnabled_whenHandlingTheEvent_ThenSetAppLockWithStatusChangedTrue() = runTest { val appLockModel = AppLockModel(Status.ENABLED, 20) val (arrangement, appLockConfigHandler) = Arrangement() .withUserConfigRepositoryFailure() @@ -68,7 +69,7 @@ class AppLockConfigHandlerTest { appLockConfigHandler.handle(appLockModel) verify(arrangement.userConfigRepository) - .function(arrangement.userConfigRepository::isTeamAppLockEnabled) + .suspendFunction(arrangement.userConfigRepository::isTeamAppLockEnabled) .wasInvoked(exactly = once) verify(arrangement.userConfigRepository) @@ -82,7 +83,7 @@ class AppLockConfigHandlerTest { } @Test - fun givenNewStatusSameAsCurrent_whenHandlingTheEvent_ThenSetAppLockWithStatusChangedFalse() { + fun givenNewStatusSameAsCurrent_whenHandlingTheEvent_ThenSetAppLockWithStatusChangedFalse() = runTest { val appLockModel = AppLockModel(Status.ENABLED, 44) val (arrangement, appLockConfigHandler) = Arrangement() .withAppLocked() @@ -91,7 +92,7 @@ class AppLockConfigHandlerTest { appLockConfigHandler.handle(appLockModel) verify(arrangement.userConfigRepository) - .function(arrangement.userConfigRepository::isTeamAppLockEnabled) + .suspendFunction(arrangement.userConfigRepository::isTeamAppLockEnabled) .wasInvoked(exactly = once) verify(arrangement.userConfigRepository) @@ -105,7 +106,7 @@ class AppLockConfigHandlerTest { } @Test - fun givenStatusEnabledAndTimeoutDifferentFromCurrent_whenHandlingTheEvent_ThenSetAppLockWithStatusChangedTrue() { + fun givenStatusEnabledAndTimeoutDifferentFromCurrent_whenHandlingTheEvent_ThenSetAppLockWithStatusChangedTrue() = runTest { val appLockModel = AppLockModel(Status.ENABLED, 20) val (arrangement, appLockConfigHandler) = Arrangement() .withAppLocked() @@ -114,7 +115,7 @@ class AppLockConfigHandlerTest { appLockConfigHandler.handle(appLockModel) verify(arrangement.userConfigRepository) - .function(arrangement.userConfigRepository::isTeamAppLockEnabled) + .suspendFunction(arrangement.userConfigRepository::isTeamAppLockEnabled) .wasInvoked(exactly = once) verify(arrangement.userConfigRepository) @@ -128,7 +129,7 @@ class AppLockConfigHandlerTest { } @Test - fun givenNewStatusDifferentThenCurrent_whenHandlingTheEvent_ThenSetAppLockWithStatusChangedTrue() { + fun givenNewStatusDifferentThenCurrent_whenHandlingTheEvent_ThenSetAppLockWithStatusChangedTrue() = runTest { val appLockModel = AppLockModel(Status.ENABLED, 20) val (arrangement, appLockConfigHandler) = Arrangement() .withAppNotLocked() @@ -137,7 +138,7 @@ class AppLockConfigHandlerTest { appLockConfigHandler.handle(appLockModel) verify(arrangement.userConfigRepository) - .function(arrangement.userConfigRepository::isTeamAppLockEnabled) + .suspendFunction(arrangement.userConfigRepository::isTeamAppLockEnabled) .wasInvoked(exactly = once) verify(arrangement.userConfigRepository) @@ -163,28 +164,28 @@ class AppLockConfigHandlerTest { init { given(userConfigRepository) - .function(userConfigRepository::setAppLockStatus) + .suspendFunction(userConfigRepository::setAppLockStatus) .whenInvokedWith(any()) .thenReturn(Either.Right(Unit)) } fun withUserConfigRepositoryFailure() = apply { given(userConfigRepository) - .function(userConfigRepository::isTeamAppLockEnabled) + .suspendFunction(userConfigRepository::isTeamAppLockEnabled) .whenInvoked() .thenReturn(Either.Left(StorageFailure.DataNotFound)) } fun withAppLocked() = apply { given(userConfigRepository) - .function(userConfigRepository::isTeamAppLockEnabled) + .suspendFunction(userConfigRepository::isTeamAppLockEnabled) .whenInvoked() .thenReturn(Either.Right(appLockTeamConfigEnabled)) } fun withAppNotLocked() = apply { given(userConfigRepository) - .function(userConfigRepository::isTeamAppLockEnabled) + .suspendFunction(userConfigRepository::isTeamAppLockEnabled) .whenInvoked() .thenReturn(Either.Right(appLockTeamConfigDisabled)) } diff --git a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/session/IsFileSharingEnabledUseCaseTest.kt b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/session/IsFileSharingEnabledUseCaseTest.kt index e8f149b2005..f09bab24a2b 100644 --- a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/session/IsFileSharingEnabledUseCaseTest.kt +++ b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/session/IsFileSharingEnabledUseCaseTest.kt @@ -48,7 +48,7 @@ class IsFileSharingEnabledUseCaseTest { val actual = isFileSharingEnabledUseCase.invoke() assertEquals(expectedValue, actual) - verify(arrangement.userConfigRepository).invocation { isFileSharingEnabled() } + verify(arrangement.userConfigRepository).coroutine { isFileSharingEnabled() } .wasInvoked(exactly = once) } @@ -64,7 +64,7 @@ class IsFileSharingEnabledUseCaseTest { isFileSharingEnabledUseCase.invoke() verify(arrangement.userConfigRepository) - .function(arrangement.userConfigRepository::isFileSharingEnabled) + .suspendFunction(arrangement.userConfigRepository::isFileSharingEnabled) .wasInvoked(exactly = once) } @@ -76,7 +76,7 @@ class IsFileSharingEnabledUseCaseTest { fun withSuccessfulResponse(expectedValue: FileSharingStatus): Arrangement { given(userConfigRepository) - .function(userConfigRepository::isFileSharingEnabled) + .suspendFunction(userConfigRepository::isFileSharingEnabled) .whenInvoked() .thenReturn(Either.Right(expectedValue)) @@ -85,7 +85,7 @@ class IsFileSharingEnabledUseCaseTest { fun withIsFileSharingEnabledErrorResponse(storageFailure: StorageFailure): Arrangement { given(userConfigRepository) - .function(userConfigRepository::isFileSharingEnabled) + .suspendFunction(userConfigRepository::isFileSharingEnabled) .whenInvoked() .thenReturn(Either.Left(storageFailure)) return this diff --git a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/user/guestroomlink/MarkGuestLinkFeatureFlagAsNotChangedUseCaseTest.kt b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/user/guestroomlink/MarkGuestLinkFeatureFlagAsNotChangedUseCaseTest.kt index 84147d74d1b..8235d0caaa2 100644 --- a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/user/guestroomlink/MarkGuestLinkFeatureFlagAsNotChangedUseCaseTest.kt +++ b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/user/guestroomlink/MarkGuestLinkFeatureFlagAsNotChangedUseCaseTest.kt @@ -29,6 +29,7 @@ import io.mockative.given import io.mockative.mock import io.mockative.once import io.mockative.verify +import kotlinx.coroutines.test.runTest import kotlin.test.BeforeTest import kotlin.test.Test @@ -45,30 +46,30 @@ class MarkGuestLinkFeatureFlagAsNotChangedUseCaseTest { } @Test - fun givenRepositoryReturnsFailure_whenInvokingUseCase_thenDoNotUpdateGuestStatus() { - given(userConfigRepository).invocation { getGuestRoomLinkStatus() } + fun givenRepositoryReturnsFailure_whenInvokingUseCase_thenDoNotUpdateGuestStatus() = runTest { + given(userConfigRepository).coroutine { getGuestRoomLinkStatus() } .thenReturn(Either.Left(StorageFailure.DataNotFound)) markGuestLinkFeatureFlagAsNotChanged() - verify(userConfigRepository).function(userConfigRepository::getGuestRoomLinkStatus) + verify(userConfigRepository).suspendFunction(userConfigRepository::getGuestRoomLinkStatus) .wasInvoked(exactly = once) - verify(userConfigRepository).function(userConfigRepository::setGuestRoomStatus).with(any(), eq(false)).wasNotInvoked() + verify(userConfigRepository).suspendFunction(userConfigRepository::setGuestRoomStatus).with(any(), eq(false)).wasNotInvoked() } @Test - fun givenRepositoryReturnsSuccess_whenInvokingUseCase_thenUpdateGuestStatus() { - given(userConfigRepository).invocation { getGuestRoomLinkStatus() } + fun givenRepositoryReturnsSuccess_whenInvokingUseCase_thenUpdateGuestStatus() = runTest { + given(userConfigRepository).coroutine { getGuestRoomLinkStatus() } .thenReturn(Either.Right(GuestRoomLinkStatus(isGuestRoomLinkEnabled = true, isStatusChanged = false))) - given(userConfigRepository).invocation { setGuestRoomStatus(status = false, isStatusChanged = false) } + given(userConfigRepository).coroutine { setGuestRoomStatus(status = false, isStatusChanged = false) } .thenReturn(Either.Right(Unit)) markGuestLinkFeatureFlagAsNotChanged() - verify(userConfigRepository).function(userConfigRepository::getGuestRoomLinkStatus) + verify(userConfigRepository).suspendFunction(userConfigRepository::getGuestRoomLinkStatus) .wasInvoked(exactly = once) - verify(userConfigRepository).function(userConfigRepository::setGuestRoomStatus).with(any(), eq(false)).wasInvoked(once) + verify(userConfigRepository).suspendFunction(userConfigRepository::setGuestRoomStatus).with(any(), eq(false)).wasInvoked(once) } } diff --git a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/user/guestroomlink/ObserveGuestRoomLinkFeatureFlagUseCaseTest.kt b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/user/guestroomlink/ObserveGuestRoomLinkFeatureFlagUseCaseTest.kt index f3e8addf27a..99e107dad96 100644 --- a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/user/guestroomlink/ObserveGuestRoomLinkFeatureFlagUseCaseTest.kt +++ b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/user/guestroomlink/ObserveGuestRoomLinkFeatureFlagUseCaseTest.kt @@ -49,7 +49,7 @@ class ObserveGuestRoomLinkFeatureFlagUseCaseTest { @OptIn(ExperimentalCoroutinesApi::class) @Test fun givenRepositoryEmitsFailure_whenRunningUseCase_thenEmitStatusWithNullValues() = runTest { - given(userConfigRepository).invocation { observeGuestRoomLinkFeatureFlag() } + given(userConfigRepository).coroutine { observeGuestRoomLinkFeatureFlag() } .thenReturn(flowOf(Either.Left(StorageFailure.DataNotFound))) val result = observeGuestRoomLinkFeatureFlag() @@ -63,7 +63,7 @@ class ObserveGuestRoomLinkFeatureFlagUseCaseTest { fun givenRepositoryEmitsValidValues_whenRunningUseCase_thenEmitThoseValidValues() = runTest { val expectedStatus = GuestRoomLinkStatus(isGuestRoomLinkEnabled = true, isStatusChanged = false) - given(userConfigRepository).invocation { observeGuestRoomLinkFeatureFlag() } + given(userConfigRepository).coroutine { observeGuestRoomLinkFeatureFlag() } .thenReturn(flowOf(Either.Right(expectedStatus))) val result = observeGuestRoomLinkFeatureFlag() diff --git a/logic/src/commonTest/kotlin/com/wire/kalium/logic/sync/receiver/FeatureConfigEventReceiverTest.kt b/logic/src/commonTest/kotlin/com/wire/kalium/logic/sync/receiver/FeatureConfigEventReceiverTest.kt index beec4564067..de56a891f7a 100644 --- a/logic/src/commonTest/kotlin/com/wire/kalium/logic/sync/receiver/FeatureConfigEventReceiverTest.kt +++ b/logic/src/commonTest/kotlin/com/wire/kalium/logic/sync/receiver/FeatureConfigEventReceiverTest.kt @@ -27,6 +27,8 @@ import com.wire.kalium.logic.data.featureConfig.ConfigsStatusModel import com.wire.kalium.logic.data.featureConfig.SelfDeletingMessagesConfigModel import com.wire.kalium.logic.data.featureConfig.SelfDeletingMessagesModel import com.wire.kalium.logic.data.featureConfig.Status +import com.wire.kalium.logic.data.message.TeamSelfDeleteTimer +import com.wire.kalium.logic.data.message.TeamSettingsSelfDeletionStatus import com.wire.kalium.logic.feature.featureConfig.handler.AppLockConfigHandler import com.wire.kalium.logic.feature.featureConfig.handler.ClassifiedDomainsConfigHandler import com.wire.kalium.logic.feature.featureConfig.handler.ConferenceCallingConfigHandler @@ -35,16 +37,12 @@ import com.wire.kalium.logic.feature.featureConfig.handler.FileSharingConfigHand import com.wire.kalium.logic.feature.featureConfig.handler.GuestRoomConfigHandler import com.wire.kalium.logic.feature.featureConfig.handler.MLSConfigHandler import com.wire.kalium.logic.feature.featureConfig.handler.MLSMigrationConfigHandler -import com.wire.kalium.logic.feature.featureConfig.handler.SecondFactorPasswordChallengeConfigHandler import com.wire.kalium.logic.feature.featureConfig.handler.SelfDeletingMessagesConfigHandler -import com.wire.kalium.logic.data.message.TeamSelfDeleteTimer -import com.wire.kalium.logic.data.message.TeamSettingsSelfDeletionStatus import com.wire.kalium.logic.feature.user.UpdateSupportedProtocolsAndResolveOneOnOnesUseCase import com.wire.kalium.logic.featureFlags.KaliumConfigs import com.wire.kalium.logic.framework.TestEvent import com.wire.kalium.logic.framework.TestUser import com.wire.kalium.logic.functional.Either -import com.wire.kalium.logic.util.shouldFail import com.wire.kalium.logic.util.shouldSucceed import io.mockative.Mock import io.mockative.any @@ -317,21 +315,21 @@ class FeatureConfigEventReceiverTest { fun withSettingFileSharingEnabledSuccessful() = apply { given(userConfigRepository) - .function(userConfigRepository::setFileSharingStatus) + .suspendFunction(userConfigRepository::setFileSharingStatus) .whenInvokedWith(any(), any()) .thenReturn(Either.Right(Unit)) } fun withSettingConferenceCallingEnabledSuccessful() = apply { given(userConfigRepository) - .function(userConfigRepository::setConferenceCallingEnabled) + .suspendFunction(userConfigRepository::setConferenceCallingEnabled) .whenInvokedWith(any()) .thenReturn(Either.Right(Unit)) } fun withIsFileSharingEnabled(result: Either) = apply { given(userConfigRepository) - .function(userConfigRepository::isFileSharingEnabled) + .suspendFunction(userConfigRepository::isFileSharingEnabled) .whenInvoked() .thenReturn(result) } diff --git a/logic/src/commonTest/kotlin/com/wire/kalium/logic/sync/receiver/UserPropertiesEventReceiverTest.kt b/logic/src/commonTest/kotlin/com/wire/kalium/logic/sync/receiver/UserPropertiesEventReceiverTest.kt index 2e26c7f9239..53a1772cb5e 100644 --- a/logic/src/commonTest/kotlin/com/wire/kalium/logic/sync/receiver/UserPropertiesEventReceiverTest.kt +++ b/logic/src/commonTest/kotlin/com/wire/kalium/logic/sync/receiver/UserPropertiesEventReceiverTest.kt @@ -43,7 +43,7 @@ class UserPropertiesEventReceiverTest { eventReceiver.onEvent(event) verify(arrangement.userConfigRepository) - .function(arrangement.userConfigRepository::setReadReceiptsStatus) + .suspendFunction(arrangement.userConfigRepository::setReadReceiptsStatus) .with(any()) .wasInvoked(exactly = once) } @@ -59,7 +59,7 @@ class UserPropertiesEventReceiverTest { fun withUpdateReadReceiptsSuccess() = apply { given(userConfigRepository) - .function(userConfigRepository::setReadReceiptsStatus) + .suspendFunction(userConfigRepository::setReadReceiptsStatus) .whenInvokedWith(any()) .thenReturn(Either.Right(Unit)) } diff --git a/logic/src/commonTest/kotlin/com/wire/kalium/logic/sync/receiver/conversation/message/ApplicationMessageHandlerTest.kt b/logic/src/commonTest/kotlin/com/wire/kalium/logic/sync/receiver/conversation/message/ApplicationMessageHandlerTest.kt index 2a45f7d6f07..841225e9cd5 100644 --- a/logic/src/commonTest/kotlin/com/wire/kalium/logic/sync/receiver/conversation/message/ApplicationMessageHandlerTest.kt +++ b/logic/src/commonTest/kotlin/com/wire/kalium/logic/sync/receiver/conversation/message/ApplicationMessageHandlerTest.kt @@ -199,7 +199,7 @@ class ApplicationMessageHandlerTest { fun withFileSharingEnabled() = apply { given(userConfigRepository) - .function(userConfigRepository::isFileSharingEnabled) + .suspendFunction(userConfigRepository::isFileSharingEnabled) .whenInvoked() .thenReturn( Either.Right( diff --git a/logic/src/commonTest/kotlin/com/wire/kalium/logic/util/arrangement/repository/UserConfigRepositoryArrangement.kt b/logic/src/commonTest/kotlin/com/wire/kalium/logic/util/arrangement/repository/UserConfigRepositoryArrangement.kt index 1ea16666fe4..ca1dbe747f2 100644 --- a/logic/src/commonTest/kotlin/com/wire/kalium/logic/util/arrangement/repository/UserConfigRepositoryArrangement.kt +++ b/logic/src/commonTest/kotlin/com/wire/kalium/logic/util/arrangement/repository/UserConfigRepositoryArrangement.kt @@ -17,7 +17,6 @@ */ package com.wire.kalium.logic.util.arrangement.repository -import com.wire.kalium.logic.CoreFailure import com.wire.kalium.logic.StorageFailure import com.wire.kalium.logic.configuration.UserConfigRepository import com.wire.kalium.logic.data.featureConfig.MLSMigrationModel @@ -59,14 +58,14 @@ internal class UserConfigRepositoryArrangementImpl : UserConfigRepositoryArrange override fun withSetDefaultProtocolSuccessful() { given(userConfigRepository) - .function(userConfigRepository::setDefaultProtocol) + .suspendFunction(userConfigRepository::setDefaultProtocol) .whenInvokedWith(any()) .thenReturn(Either.Right(Unit)) } override fun withSetMLSEnabledSuccessful() { given(userConfigRepository) - .function(userConfigRepository::setMLSEnabled) + .suspendFunction(userConfigRepository::setMLSEnabled) .whenInvokedWith(any()) .thenReturn(Either.Right(Unit)) } diff --git a/logic/src/jvmTest/kotlin/com/wire/kalium/logic/sync/receiver/asset/AssetMessageHandlerTest.kt b/logic/src/jvmTest/kotlin/com/wire/kalium/logic/sync/receiver/asset/AssetMessageHandlerTest.kt index dd82921898c..d1be8c548c4 100644 --- a/logic/src/jvmTest/kotlin/com/wire/kalium/logic/sync/receiver/asset/AssetMessageHandlerTest.kt +++ b/logic/src/jvmTest/kotlin/com/wire/kalium/logic/sync/receiver/asset/AssetMessageHandlerTest.kt @@ -44,7 +44,6 @@ import io.mockative.once import io.mockative.verify import junit.framework.TestCase.assertFalse import junit.framework.TestCase.assertTrue -import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.runTest import org.junit.Test @@ -279,7 +278,7 @@ class AssetMessageHandlerTest { fun withSuccessfulFileSharingFlag(value: FileSharingStatus.Value) = apply { given(userConfigRepository) - .function(userConfigRepository::isFileSharingEnabled) + .suspendFunction(userConfigRepository::isFileSharingEnabled) .whenInvoked() .thenReturn(Either.Right(FileSharingStatus(state = value, isStatusChanged = false))) } diff --git a/persistence-test/src/commonMain/kotlin/com/wire/kalium/persistence/config/TestUserConfigStorage.kt b/persistence-test/src/commonMain/kotlin/com/wire/kalium/persistence/config/TestUserConfigStorage.kt deleted file mode 100644 index 4ad988e6456..00000000000 --- a/persistence-test/src/commonMain/kotlin/com/wire/kalium/persistence/config/TestUserConfigStorage.kt +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Wire - * Copyright (C) 2023 Wire Swiss GmbH - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see http://www.gnu.org/licenses/. - */ -package com.wire.kalium.persistence.config - -import com.russhwolf.settings.MapSettings -import com.wire.kalium.persistence.kmmSettings.KaliumPreferencesSettings - -fun inMemoryUserConfigStorage(): UserConfigStorage = UserConfigStorageImpl( - KaliumPreferencesSettings(MapSettings()) -)