summaryrefslogtreecommitdiffhomepage
path: root/android/app/src/test
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2025-02-26 14:58:25 +0100
committerJonatan Rhodin <jonatan.rhodin@mullvad.net>2025-02-26 14:58:25 +0100
commit5ba686d1ac45509cba636d717bb6729865105cf3 (patch)
treee21ad8d6ca30a8ca6a02313c9b4cc786370dc91e /android/app/src/test
parent5025db74b34cfb3536c43f89f3407ffc0d97ae73 (diff)
parent38c4791b414538962f6a8ab958aecd09414f33f6 (diff)
downloadmullvadvpn-5ba686d1ac45509cba636d717bb6729865105cf3.tar.xz
mullvadvpn-5ba686d1ac45509cba636d717bb6729865105cf3.zip
Merge branch 'remove-jodatime-droid-898'
Diffstat (limited to 'android/app/src/test')
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/AccountExpiryNotificationProviderTest.kt33
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/InAppNotificationControllerTest.kt2
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/AccountExpiryInAppNotificationUseCaseTest.kt29
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/NewDeviceNotificationUseCaseTest.kt4
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/OutOfTimeUseCaseTest.kt14
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModelTest.kt8
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModelTest.kt6
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/OutOfTimeViewModelTest.kt6
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/VoucherDialogViewModelTest.kt6
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/WelcomeViewModelTest.kt6
10 files changed, 64 insertions, 50 deletions
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/AccountExpiryNotificationProviderTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/AccountExpiryNotificationProviderTest.kt
index d830f407ab..9a3672515d 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/AccountExpiryNotificationProviderTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/AccountExpiryNotificationProviderTest.kt
@@ -5,6 +5,8 @@ import io.mockk.MockKAnnotations
import io.mockk.every
import io.mockk.mockk
import io.mockk.unmockkAll
+import java.time.Duration
+import java.time.ZonedDateTime
import kotlin.test.assertEquals
import kotlin.test.assertTrue
import kotlin.time.Duration.Companion.minutes
@@ -25,8 +27,6 @@ import net.mullvad.mullvadvpn.lib.shared.AccountRepository
import net.mullvad.mullvadvpn.lib.shared.DeviceRepository
import net.mullvad.mullvadvpn.service.notifications.accountexpiry.ACCOUNT_EXPIRY_CLOSE_TO_EXPIRY_THRESHOLD
import net.mullvad.mullvadvpn.service.notifications.accountexpiry.AccountExpiryNotificationProvider
-import org.joda.time.DateTime
-import org.joda.time.Duration
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
@@ -80,7 +80,9 @@ class AccountExpiryNotificationProviderTest {
@Test
fun `should emit notification if expiry time is shorter than expiry warning threshold`() =
runTest {
- setExpiry(DateTime.now().plus(ACCOUNT_EXPIRY_CLOSE_TO_EXPIRY_THRESHOLD).minusDays(1))
+ setExpiry(
+ ZonedDateTime.now().plus(ACCOUNT_EXPIRY_CLOSE_TO_EXPIRY_THRESHOLD).minusDays(1)
+ )
provider.notifications.test {
assertTrue(awaitItem() is Notify)
expectNoEvents()
@@ -90,7 +92,7 @@ class AccountExpiryNotificationProviderTest {
@Test
fun `should emit cancel notification if user account is new`() = runTest {
isNewDevice.value = true
- setExpiry(DateTime.now().plus(ACCOUNT_EXPIRY_CLOSE_TO_EXPIRY_THRESHOLD).minusDays(1))
+ setExpiry(ZonedDateTime.now().plus(ACCOUNT_EXPIRY_CLOSE_TO_EXPIRY_THRESHOLD).minusDays(1))
provider.notifications.test {
assertTrue(awaitItem() is Cancel)
expectNoEvents()
@@ -100,7 +102,7 @@ class AccountExpiryNotificationProviderTest {
@Test
fun `should emit cancel notification if user account is logged out`() = runTest {
setIsLoggedIn(false)
- setExpiry(DateTime.now().plus(ACCOUNT_EXPIRY_CLOSE_TO_EXPIRY_THRESHOLD).minusDays(1))
+ setExpiry(ZonedDateTime.now().plus(ACCOUNT_EXPIRY_CLOSE_TO_EXPIRY_THRESHOLD).minusDays(1))
provider.notifications.test {
assertTrue(awaitItem() is Cancel)
expectNoEvents()
@@ -117,7 +119,7 @@ class AccountExpiryNotificationProviderTest {
@Test
fun `should emit zero duration notification when remaining time runs out`() = runTest {
- setExpiry(DateTime.now().plus(Duration.standardSeconds(60)))
+ setExpiry(ZonedDateTime.now().plus(Duration.ofSeconds(60)))
provider.notifications.test {
assertTrue(awaitItem() is Notify)
expectNoEvents()
@@ -135,7 +137,10 @@ class AccountExpiryNotificationProviderTest {
@Test
fun `should emit notification when update interval is passed`() = runTest {
setExpiry(
- DateTime.now().plus(ACCOUNT_EXPIRY_CLOSE_TO_EXPIRY_THRESHOLD).minusDays(1).plusHours(1)
+ ZonedDateTime.now()
+ .plus(ACCOUNT_EXPIRY_CLOSE_TO_EXPIRY_THRESHOLD)
+ .minusDays(1)
+ .plusHours(1)
)
provider.notifications.test {
assertTrue(awaitItem() is Notify)
@@ -152,12 +157,14 @@ class AccountExpiryNotificationProviderTest {
@Test
fun `should cancel existing notification if more time is added to account`() = runTest {
- setExpiry(DateTime.now().plus(ACCOUNT_EXPIRY_CLOSE_TO_EXPIRY_THRESHOLD).minusDays(1))
+ setExpiry(ZonedDateTime.now().plus(ACCOUNT_EXPIRY_CLOSE_TO_EXPIRY_THRESHOLD).minusDays(1))
provider.notifications.test {
assertTrue(awaitItem() is Notify)
expectNoEvents()
- setExpiry(DateTime.now().plus(ACCOUNT_EXPIRY_CLOSE_TO_EXPIRY_THRESHOLD).plusDays(1))
+ setExpiry(
+ ZonedDateTime.now().plus(ACCOUNT_EXPIRY_CLOSE_TO_EXPIRY_THRESHOLD).plusDays(1)
+ )
assertTrue(awaitItem() is Cancel)
expectNoEvents()
}
@@ -165,12 +172,14 @@ class AccountExpiryNotificationProviderTest {
@Test
fun `should not cancel existing notification if too little time is added`() = runTest {
- setExpiry(DateTime.now().plus(ACCOUNT_EXPIRY_CLOSE_TO_EXPIRY_THRESHOLD).minusDays(1))
+ setExpiry(ZonedDateTime.now().plus(ACCOUNT_EXPIRY_CLOSE_TO_EXPIRY_THRESHOLD).minusDays(1))
provider.notifications.test {
assertTrue(awaitItem() is Notify)
expectNoEvents()
- setExpiry(DateTime.now().plus(ACCOUNT_EXPIRY_CLOSE_TO_EXPIRY_THRESHOLD).minusHours(1))
+ setExpiry(
+ ZonedDateTime.now().plus(ACCOUNT_EXPIRY_CLOSE_TO_EXPIRY_THRESHOLD).minusHours(1)
+ )
assertTrue(awaitItem() is Notify)
expectNoEvents()
}
@@ -184,7 +193,7 @@ class AccountExpiryNotificationProviderTest {
is Notify -> awaitItem.value
}
- private fun setExpiry(expiryDateTime: DateTime): DateTime {
+ private fun setExpiry(expiryDateTime: ZonedDateTime): ZonedDateTime {
val expiry = AccountData(mockk(relaxed = true), expiryDateTime)
accountData.value = expiry
return expiryDateTime
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/InAppNotificationControllerTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/InAppNotificationControllerTest.kt
index c8b27f2e6f..9db14ad914 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/InAppNotificationControllerTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/InAppNotificationControllerTest.kt
@@ -5,6 +5,7 @@ import io.mockk.MockKAnnotations
import io.mockk.every
import io.mockk.mockk
import io.mockk.unmockkAll
+import java.time.Duration
import kotlin.test.assertEquals
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -21,7 +22,6 @@ import net.mullvad.mullvadvpn.usecase.NewChangelogNotificationUseCase
import net.mullvad.mullvadvpn.usecase.NewDeviceNotificationUseCase
import net.mullvad.mullvadvpn.usecase.TunnelStateNotificationUseCase
import net.mullvad.mullvadvpn.usecase.VersionNotificationUseCase
-import org.joda.time.Duration
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/AccountExpiryInAppNotificationUseCaseTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/AccountExpiryInAppNotificationUseCaseTest.kt
index 316d12addd..68b29790ac 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/AccountExpiryInAppNotificationUseCaseTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/AccountExpiryInAppNotificationUseCaseTest.kt
@@ -7,6 +7,8 @@ import io.mockk.MockKAnnotations
import io.mockk.every
import io.mockk.mockk
import io.mockk.unmockkAll
+import java.time.Duration
+import java.time.ZonedDateTime
import kotlin.test.assertEquals
import kotlin.test.assertTrue
import kotlin.time.Duration.Companion.seconds
@@ -19,8 +21,6 @@ import net.mullvad.mullvadvpn.lib.shared.AccountRepository
import net.mullvad.mullvadvpn.repository.InAppNotification
import net.mullvad.mullvadvpn.service.notifications.accountexpiry.ACCOUNT_EXPIRY_CLOSE_TO_EXPIRY_THRESHOLD
import net.mullvad.mullvadvpn.service.notifications.accountexpiry.ACCOUNT_EXPIRY_IN_APP_NOTIFICATION_UPDATE_INTERVAL
-import org.joda.time.DateTime
-import org.joda.time.Duration
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
@@ -33,7 +33,7 @@ class AccountExpiryInAppNotificationUseCaseTest {
private lateinit var accountExpiryInAppNotificationUseCase:
AccountExpiryInAppNotificationUseCase
- private lateinit var notificationThreshold: DateTime
+ private lateinit var notificationThreshold: ZonedDateTime
@BeforeEach
fun setup() {
@@ -45,7 +45,7 @@ class AccountExpiryInAppNotificationUseCaseTest {
accountExpiryInAppNotificationUseCase =
AccountExpiryInAppNotificationUseCase(accountRepository)
- notificationThreshold = DateTime.now().plus(ACCOUNT_EXPIRY_CLOSE_TO_EXPIRY_THRESHOLD)
+ notificationThreshold = ZonedDateTime.now().plus(ACCOUNT_EXPIRY_CLOSE_TO_EXPIRY_THRESHOLD)
}
@AfterEach
@@ -102,7 +102,7 @@ class AccountExpiryInAppNotificationUseCaseTest {
// Set expiry to to be in the final update interval.
val inLastUpdate =
- DateTime.now()
+ ZonedDateTime.now()
.plus(ACCOUNT_EXPIRY_IN_APP_NOTIFICATION_UPDATE_INTERVAL)
.minusSeconds(1)
val expiry = setExpiry(inLastUpdate)
@@ -113,34 +113,37 @@ class AccountExpiryInAppNotificationUseCaseTest {
expectNoEvents()
// Advance past the delay before the while loop:
- advanceTimeBy(ACCOUNT_EXPIRY_IN_APP_NOTIFICATION_UPDATE_INTERVAL.millis)
+ advanceTimeBy(ACCOUNT_EXPIRY_IN_APP_NOTIFICATION_UPDATE_INTERVAL.toMillis())
// Advance past the delay after the while loop:
- advanceTimeBy(ACCOUNT_EXPIRY_IN_APP_NOTIFICATION_UPDATE_INTERVAL.millis)
+ advanceTimeBy(ACCOUNT_EXPIRY_IN_APP_NOTIFICATION_UPDATE_INTERVAL.toMillis())
assertEquals(Duration.ZERO, getExpiryNotificationDuration(expectMostRecentItem()))
expectNoEvents()
// Make sure we reset the list of notifications emitted when new time is added
- setExpiry(DateTime.now().plus(ACCOUNT_EXPIRY_CLOSE_TO_EXPIRY_THRESHOLD).plusDays(1))
+ setExpiry(
+ ZonedDateTime.now().plus(ACCOUNT_EXPIRY_CLOSE_TO_EXPIRY_THRESHOLD).plusDays(1)
+ )
assertEquals(emptyList(), expectMostRecentItem())
}
}
- private fun setExpiry(expiryDateTime: DateTime): DateTime {
+ private fun setExpiry(expiryDateTime: ZonedDateTime): ZonedDateTime {
val expiry = AccountData(mockk(relaxed = true), expiryDateTime)
accountExpiry.value = expiry
return expiryDateTime
}
// Assert that we got a single AccountExpiry notification and that the expiry duration is within
- // the expected range (checking exact duration value is not possible since we use DateTime.now)
+ // the expected range (checking exact duration value is not possible since we use
+ // ZonedDateTime.now)
private fun assertExpiryNotificationDuration(
- expiry: DateTime,
+ expiry: ZonedDateTime,
notifications: List<InAppNotification>,
) {
val notificationDuration = getExpiryNotificationDuration(notifications)
- val expiresFromNow = Duration(DateTime.now(), expiry)
+ val expiresFromNow = Duration.between(ZonedDateTime.now(), expiry)
assertTrue(expiresFromNow <= notificationDuration)
- assertTrue(expiresFromNow.plus(Duration.standardSeconds(5)) > notificationDuration)
+ assertTrue(expiresFromNow.plus(Duration.ofSeconds(5)) > notificationDuration)
}
private fun getExpiryNotificationDuration(notifications: List<InAppNotification>): Duration {
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/NewDeviceNotificationUseCaseTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/NewDeviceNotificationUseCaseTest.kt
index 32cc48f2c5..2c97ea36a1 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/NewDeviceNotificationUseCaseTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/NewDeviceNotificationUseCaseTest.kt
@@ -5,6 +5,7 @@ import io.mockk.MockKAnnotations
import io.mockk.every
import io.mockk.impl.annotations.MockK
import io.mockk.unmockkAll
+import java.time.ZonedDateTime
import kotlin.test.assertEquals
import kotlin.test.assertTrue
import kotlinx.coroutines.flow.MutableStateFlow
@@ -18,7 +19,6 @@ import net.mullvad.mullvadvpn.lib.model.DeviceState
import net.mullvad.mullvadvpn.lib.shared.DeviceRepository
import net.mullvad.mullvadvpn.repository.InAppNotification
import net.mullvad.mullvadvpn.repository.NewDeviceRepository
-import org.joda.time.DateTime
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
@@ -35,7 +35,7 @@ class NewDeviceNotificationUseCaseTest {
Device(
id = DeviceId.fromString(UUID),
name = deviceName,
- creationDate = DateTime.now(),
+ creationDate = ZonedDateTime.now(),
),
)
)
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/OutOfTimeUseCaseTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/OutOfTimeUseCaseTest.kt
index f8ecefbffd..4fd3ba08d1 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/OutOfTimeUseCaseTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/OutOfTimeUseCaseTest.kt
@@ -4,6 +4,7 @@ import app.cash.turbine.test
import io.mockk.every
import io.mockk.mockk
import io.mockk.unmockkAll
+import java.time.ZonedDateTime
import kotlin.test.assertEquals
import kotlin.time.Duration.Companion.days
import kotlin.time.Duration.Companion.minutes
@@ -26,7 +27,6 @@ import net.mullvad.mullvadvpn.lib.model.ErrorStateCause
import net.mullvad.mullvadvpn.lib.model.TunnelState
import net.mullvad.mullvadvpn.lib.shared.AccountRepository
import net.mullvad.mullvadvpn.lib.shared.ConnectionProxy
-import org.joda.time.DateTime
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
@@ -91,7 +91,7 @@ class OutOfTimeUseCaseTest {
scope.runTest {
// Arrange
val expiredAccountExpiry =
- AccountData(mockk(relaxed = true), DateTime.now().plusDays(1))
+ AccountData(mockk(relaxed = true), ZonedDateTime.now().plusDays(1))
val tunnelStateChanges =
listOf(
TunnelState.Disconnected(),
@@ -120,7 +120,7 @@ class OutOfTimeUseCaseTest {
scope.runTest {
// Arrange
val expiredAccountExpiry =
- AccountData(mockk(relaxed = true), DateTime.now().minusDays(1))
+ AccountData(mockk(relaxed = true), ZonedDateTime.now().minusDays(1))
// Act, Assert
outOfTimeUseCase.isOutOfTime.test {
assertEquals(null, awaitItem())
@@ -134,7 +134,7 @@ class OutOfTimeUseCaseTest {
scope.runTest {
// Arrange
val notExpiredAccountExpiry =
- AccountData(mockk(relaxed = true), DateTime.now().plusDays(1))
+ AccountData(mockk(relaxed = true), ZonedDateTime.now().plusDays(1))
// Act, Assert
outOfTimeUseCase.isOutOfTime.test {
@@ -149,7 +149,7 @@ class OutOfTimeUseCaseTest {
scope.runTest {
// Arrange
val expiredAccountExpiry =
- AccountData(mockk(relaxed = true), DateTime.now().plusSeconds(100))
+ AccountData(mockk(relaxed = true), ZonedDateTime.now().plusSeconds(100))
// Act, Assert
outOfTimeUseCase.isOutOfTime.test {
// Initial event
@@ -173,7 +173,7 @@ class OutOfTimeUseCaseTest {
scope.runTest {
// Arrange
val initialAccountExpiry =
- AccountData(mockk(relaxed = true), DateTime.now().plusSeconds(100))
+ AccountData(mockk(relaxed = true), ZonedDateTime.now().plusSeconds(100))
val updatedExpiry =
AccountData(mockk(relaxed = true), initialAccountExpiry.expiryDate.plusDays(30))
@@ -203,7 +203,7 @@ class OutOfTimeUseCaseTest {
scope.runTest {
// Arrange
val initialAccountExpiry =
- AccountData(mockk(relaxed = true), DateTime.now().plusSeconds(100))
+ AccountData(mockk(relaxed = true), ZonedDateTime.now().plusSeconds(100))
val updatedExpiry =
AccountData(mockk(relaxed = true), initialAccountExpiry.expiryDate.plusDays(30))
// Act, Assert
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModelTest.kt
index 0a9d2f36f9..74a6bbd414 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModelTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModelTest.kt
@@ -9,6 +9,7 @@ import io.mockk.every
import io.mockk.mockk
import io.mockk.mockkStatic
import io.mockk.unmockkAll
+import java.time.ZonedDateTime
import kotlin.test.assertEquals
import kotlin.test.assertIs
import kotlinx.coroutines.flow.MutableStateFlow
@@ -28,7 +29,6 @@ import net.mullvad.mullvadvpn.lib.payment.model.PurchaseResult
import net.mullvad.mullvadvpn.lib.shared.AccountRepository
import net.mullvad.mullvadvpn.lib.shared.DeviceRepository
import net.mullvad.mullvadvpn.usecase.PaymentUseCase
-import org.joda.time.DateTime
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
@@ -42,7 +42,11 @@ class AccountViewModelTest {
private val mockPaymentUseCase: PaymentUseCase = mockk(relaxed = true)
private val dummyDevice =
- Device(id = DeviceId.fromString(UUID), name = "fake_name", creationDate = DateTime.now())
+ Device(
+ id = DeviceId.fromString(UUID),
+ name = "fake_name",
+ creationDate = ZonedDateTime.now(),
+ )
private val dummyAccountNumber: AccountNumber = AccountNumber(DUMMY_DEVICE_NAME)
private val deviceState: MutableStateFlow<DeviceState?> =
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModelTest.kt
index 1a80597066..a2be07e0a6 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModelTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModelTest.kt
@@ -11,6 +11,7 @@ import io.mockk.coVerify
import io.mockk.every
import io.mockk.impl.annotations.MockK
import io.mockk.mockk
+import java.time.ZonedDateTime
import kotlin.test.assertIs
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -29,7 +30,6 @@ import net.mullvad.mullvadvpn.lib.model.AccountNumber
import net.mullvad.mullvadvpn.lib.model.LoginAccountError
import net.mullvad.mullvadvpn.lib.shared.AccountRepository
import net.mullvad.mullvadvpn.usecase.InternetAvailableUseCase
-import org.joda.time.DateTime
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
@@ -133,7 +133,9 @@ class LoginViewModelTest {
val sideEffects = loginViewModel.uiSideEffect.testIn(backgroundScope)
coEvery { mockedAccountRepository.login(any()) } returns Unit.right()
coEvery { mockedAccountRepository.accountData } returns
- MutableStateFlow(AccountData(mockk(relaxed = true), DateTime.now().plusDays(3)))
+ MutableStateFlow(
+ AccountData(mockk(relaxed = true), ZonedDateTime.now().plusDays(3))
+ )
// Act, Assert
uiStates.skipDefaultItem()
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/OutOfTimeViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/OutOfTimeViewModelTest.kt
index 6c1ff9e1a2..bfaed10629 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/OutOfTimeViewModelTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/OutOfTimeViewModelTest.kt
@@ -31,8 +31,6 @@ import net.mullvad.mullvadvpn.ui.serviceconnection.ServiceConnectionManager
import net.mullvad.mullvadvpn.ui.serviceconnection.ServiceConnectionState
import net.mullvad.mullvadvpn.usecase.OutOfTimeUseCase
import net.mullvad.mullvadvpn.usecase.PaymentUseCase
-import org.joda.time.DateTime
-import org.joda.time.ReadableInstant
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
@@ -132,10 +130,6 @@ class OutOfTimeViewModelTest {
@Test
fun `when OutOfTimeUseCase returns false uiSideEffect should emit OpenConnectScreen`() =
runTest {
- // Arrange
- val mockExpiryDate: DateTime = mockk()
- every { mockExpiryDate.isAfter(any<ReadableInstant>()) } returns true
-
// Act, Assert
viewModel.uiSideEffect.test {
outOfTimeFlow.value = false
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/VoucherDialogViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/VoucherDialogViewModelTest.kt
index 3bd96de3cb..e5ae99d872 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/VoucherDialogViewModelTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/VoucherDialogViewModelTest.kt
@@ -8,6 +8,7 @@ import io.mockk.coVerify
import io.mockk.every
import io.mockk.mockk
import io.mockk.unmockkAll
+import java.time.ZonedDateTime
import kotlin.test.assertEquals
import kotlin.test.assertIs
import kotlin.test.assertTrue
@@ -18,7 +19,6 @@ import net.mullvad.mullvadvpn.lib.model.RedeemVoucherError
import net.mullvad.mullvadvpn.lib.model.RedeemVoucherSuccess
import net.mullvad.mullvadvpn.lib.model.VoucherCode
import net.mullvad.mullvadvpn.lib.shared.VoucherRepository
-import org.joda.time.DateTime
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
@@ -50,7 +50,7 @@ class VoucherDialogViewModelTest {
// Arrange
val timeAdded = 0L
- val newExpiry = DateTime()
+ val newExpiry = ZonedDateTime.now()
coEvery { mockVoucherRepository.submitVoucher(parsedVoucher) } returns
RedeemVoucherSuccess(timeAdded, newExpiry).right()
@@ -89,7 +89,7 @@ class VoucherDialogViewModelTest {
every { mockVoucherSubmission.timeAdded } returns 0
coEvery {
mockVoucherRepository.submitVoucher(VoucherCode.fromString(voucher).getOrNull()!!)
- } returns RedeemVoucherSuccess(0, DateTime()).right()
+ } returns RedeemVoucherSuccess(0, ZonedDateTime.now()).right()
// Act, Assert
viewModel.uiState.test {
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/WelcomeViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/WelcomeViewModelTest.kt
index 3fe3804b8b..b2b59ba69e 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/WelcomeViewModelTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/WelcomeViewModelTest.kt
@@ -9,6 +9,7 @@ import io.mockk.every
import io.mockk.mockk
import io.mockk.mockkStatic
import io.mockk.unmockkAll
+import java.time.ZonedDateTime
import kotlin.test.assertEquals
import kotlin.test.assertIs
import kotlinx.coroutines.cancel
@@ -32,7 +33,6 @@ import net.mullvad.mullvadvpn.lib.shared.DeviceRepository
import net.mullvad.mullvadvpn.ui.serviceconnection.ServiceConnectionManager
import net.mullvad.mullvadvpn.ui.serviceconnection.ServiceConnectionState
import net.mullvad.mullvadvpn.usecase.PaymentUseCase
-import org.joda.time.DateTime
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
@@ -146,7 +146,9 @@ class WelcomeViewModelTest {
@Test
fun `when user has added time then uiSideEffect should emit OpenConnectScreen`() = runTest {
// Arrange
- accountExpiryStateFlow.emit(AccountData(mockk(relaxed = true), DateTime().plusDays(1)))
+ accountExpiryStateFlow.emit(
+ AccountData(mockk(relaxed = true), ZonedDateTime.now().plusDays(1))
+ )
// Act, Assert
viewModel.uiSideEffect.test {