diff --git a/app/src/test/java/ch/protonmail/android/mailbox/data/ConversationsRepositoryImplTest.kt b/app/src/test/java/ch/protonmail/android/mailbox/data/ConversationsRepositoryImplTest.kt index e7325dd78..81b26582e 100644 --- a/app/src/test/java/ch/protonmail/android/mailbox/data/ConversationsRepositoryImplTest.kt +++ b/app/src/test/java/ch/protonmail/android/mailbox/data/ConversationsRepositoryImplTest.kt @@ -93,29 +93,26 @@ import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.flow.take import kotlinx.coroutines.flow.toList import kotlinx.coroutines.test.TestScope -import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.withTimeout -import kotlinx.coroutines.withTimeoutOrNull import me.proton.core.domain.arch.DataResult import me.proton.core.domain.arch.ResponseSource import me.proton.core.domain.entity.UserId import me.proton.core.test.android.ArchTest import me.proton.core.test.kotlin.CoroutinesTest -import me.proton.core.test.kotlin.TestDispatcherProvider +import me.proton.core.test.kotlin.UnconfinedCoroutinesTest import me.proton.core.test.kotlin.flowTest import java.io.IOException import kotlin.test.BeforeTest import kotlin.test.Test import kotlin.test.assertEquals -import kotlin.test.assertNull import kotlin.test.assertTrue import kotlin.time.DurationUnit +import kotlin.time.seconds import kotlin.time.toDuration private const val STARRED_LABEL_ID = "10" -class ConversationsRepositoryImplTest : ArchTest by ArchTest(), - CoroutinesTest by CoroutinesTest({ TestDispatcherProvider(UnconfinedTestDispatcher()) }) { +class ConversationsRepositoryImplTest : ArchTest by ArchTest(), CoroutinesTest by UnconfinedCoroutinesTest() { private val testUserId = UserId("id") @@ -1630,17 +1627,12 @@ class ConversationsRepositoryImplTest : ArchTest by ArchTest(), @Test fun getCountersIsCancelledWhenApiCallIsCancelled() = coroutinesTest { // given - coEvery { api.fetchConversationsCounts(testUserId) } answers { - throw CancellationException("Cancelled") - } + coEvery { api.fetchConversationsCounts(testUserId) } throws(CancellationException("Cancelled")) // when - val result = withTimeoutOrNull(3.toDuration(DurationUnit.SECONDS)) { - conversationsRepository.getUnreadCounters(testUserId).test { - awaitItem() - } + conversationsRepository.getUnreadCounters(testUserId).test(timeout = 1.seconds) { + expectNoEvents() } - assertNull(result) } private fun setupUnreadCounterDaoToSimulateReplace() { diff --git a/app/src/test/java/ch/protonmail/android/repository/MessageRepositoryTest.kt b/app/src/test/java/ch/protonmail/android/repository/MessageRepositoryTest.kt index 1be87d775..298598e7d 100644 --- a/app/src/test/java/ch/protonmail/android/repository/MessageRepositoryTest.kt +++ b/app/src/test/java/ch/protonmail/android/repository/MessageRepositoryTest.kt @@ -62,20 +62,17 @@ import io.mockk.runs import io.mockk.slot import io.mockk.spyk import kotlinx.coroutines.CancellationException -import kotlinx.coroutines.TimeoutCancellationException import kotlinx.coroutines.channels.BufferOverflow import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.flow.take import kotlinx.coroutines.flow.toList -import kotlinx.coroutines.test.UnconfinedTestDispatcher -import kotlinx.coroutines.withTimeout import me.proton.core.domain.arch.DataResult import me.proton.core.domain.arch.ResponseSource import me.proton.core.domain.entity.UserId import me.proton.core.test.kotlin.CoroutinesTest -import me.proton.core.test.kotlin.TestDispatcherProvider +import me.proton.core.test.kotlin.UnconfinedCoroutinesTest import me.proton.core.util.kotlin.EMPTY_STRING import org.junit.Before import org.junit.Test @@ -83,10 +80,9 @@ import java.io.IOException import kotlin.random.Random.Default.nextBytes import kotlin.test.assertEquals import kotlin.test.assertNull -import kotlin.time.DurationUnit -import kotlin.time.toDuration +import kotlin.time.Duration.Companion.seconds -class MessageRepositoryTest: CoroutinesTest by CoroutinesTest({ TestDispatcherProvider(UnconfinedTestDispatcher()) }) { +class MessageRepositoryTest: CoroutinesTest by UnconfinedCoroutinesTest() { private val messageDao: MessageDao = mockk(relaxUnitFun = true) { coEvery { saveMessage(any()) } returns 123 @@ -773,18 +769,14 @@ class MessageRepositoryTest: CoroutinesTest by CoroutinesTest({ TestDispatcherPr } } - @Test(expected = TimeoutCancellationException::class) + @Test fun getCountersIsCancelledWhenApiCallIsCancelled() = coroutinesTest { // given - coEvery { protonMailApiManager.fetchMessagesCounts(testUserId) } answers { - throw CancellationException("Cancelled") - } + coEvery { protonMailApiManager.fetchMessagesCounts(testUserId) } throws(CancellationException("Cancelled")) // when - withTimeout(1.toDuration(DurationUnit.SECONDS)) { - messageRepository.getUnreadCounters(testUserId).test { - awaitItem() - } + messageRepository.getUnreadCounters(testUserId).test(timeout = 1.seconds) { + expectNoEvents() } } diff --git a/buildSrc/src/main/kotlin/versionsConfig.kt b/buildSrc/src/main/kotlin/versionsConfig.kt index a25e68909..681525c27 100644 --- a/buildSrc/src/main/kotlin/versionsConfig.kt +++ b/buildSrc/src/main/kotlin/versionsConfig.kt @@ -75,7 +75,7 @@ const val `json-simple version` = "1.1.1" // Released: Mar const val `browserstack-plugin version` = "3.0.1" // Released: Jun 10, 2020 const val `uiautomator version` = "2.3.0-alpha01" const val `sun-mail-android version` = "1.5.5" // Released: Mar 06, 2020 -const val `turbine version` = "0.9.0" // Released: Aug 01, 2022 +const val `turbine version` = "0.12.1" const val `junit-ktx version` = "1.1.4" // Android diff --git a/domain/build.gradle.kts b/domain/build.gradle.kts index 762bcb8aa..bd5bc3f28 100644 --- a/domain/build.gradle.kts +++ b/domain/build.gradle.kts @@ -33,7 +33,6 @@ dependencies { `Proton-user-domain`, // Kotlin - `kotlin-jdk8`, `coroutines-core`, `serialization-json`,