Remove Robolectric from some tests with light mocking.
This commit is contained in:
parent
bfc1c4ebfa
commit
aaa7a18190
@ -1,14 +1,17 @@
|
||||
package org.thoughtcrime.securesms.components.settings.app.subscription.donate.card
|
||||
|
||||
import android.app.Application
|
||||
import android.text.TextUtils
|
||||
import io.mockk.every
|
||||
import io.mockk.mockkStatic
|
||||
import io.mockk.unmockkStatic
|
||||
import org.junit.After
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.robolectric.ParameterizedRobolectricTestRunner
|
||||
import org.robolectric.annotation.Config
|
||||
import org.junit.runners.Parameterized
|
||||
|
||||
@RunWith(ParameterizedRobolectricTestRunner::class)
|
||||
@Config(application = Application::class)
|
||||
@RunWith(Parameterized::class)
|
||||
class CreditCardCodeValidatorTest(
|
||||
private val code: String,
|
||||
private val cardType: CreditCardType,
|
||||
@ -16,6 +19,17 @@ class CreditCardCodeValidatorTest(
|
||||
private val validity: CreditCardCodeValidator.Validity
|
||||
) {
|
||||
|
||||
@Before
|
||||
fun setUp() {
|
||||
mockkStatic(TextUtils::class)
|
||||
every { TextUtils.isDigitsOnly(any()) } answers { firstArg<CharSequence>().all { it.isDigit() } }
|
||||
}
|
||||
|
||||
@After
|
||||
fun tearDown() {
|
||||
unmockkStatic(TextUtils::class)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getValidity() {
|
||||
assertEquals(validity, CreditCardCodeValidator.getValidity(code, cardType, isFocused))
|
||||
@ -23,7 +37,7 @@ class CreditCardCodeValidatorTest(
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
@ParameterizedRobolectricTestRunner.Parameters(name = "{index}: getValidity(..) = {0}, {1}, {2}, {3}")
|
||||
@Parameterized.Parameters(name = "{index}: getValidity(..) = {0}, {1}, {2}, {3}")
|
||||
fun data(): Iterable<Array<Any>> = arrayListOf(
|
||||
// Unfocused
|
||||
arrayOf("", CreditCardType.UNIONPAY, false, CreditCardCodeValidator.Validity.POTENTIALLY_VALID),
|
||||
|
||||
@ -1,14 +1,17 @@
|
||||
package org.thoughtcrime.securesms.components.settings.app.subscription.donate.card
|
||||
|
||||
import android.app.Application
|
||||
import android.text.TextUtils
|
||||
import io.mockk.every
|
||||
import io.mockk.mockkStatic
|
||||
import io.mockk.unmockkStatic
|
||||
import org.junit.After
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.robolectric.ParameterizedRobolectricTestRunner
|
||||
import org.robolectric.annotation.Config
|
||||
import org.junit.runners.Parameterized
|
||||
|
||||
@RunWith(ParameterizedRobolectricTestRunner::class)
|
||||
@Config(application = Application::class)
|
||||
@RunWith(Parameterized::class)
|
||||
class CreditCardExpirationValidatorTest(
|
||||
private val creditCardExpiration: CreditCardExpiration,
|
||||
private val currentYear: Int,
|
||||
@ -16,6 +19,17 @@ class CreditCardExpirationValidatorTest(
|
||||
private val validity: CreditCardExpirationValidator.Validity
|
||||
) {
|
||||
|
||||
@Before
|
||||
fun setUp() {
|
||||
mockkStatic(TextUtils::class)
|
||||
every { TextUtils.isDigitsOnly(any()) } answers { firstArg<CharSequence>().all { it.isDigit() } }
|
||||
}
|
||||
|
||||
@After
|
||||
fun tearDown() {
|
||||
unmockkStatic(TextUtils::class)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getValidity() {
|
||||
assertEquals(validity, CreditCardExpirationValidator.getValidity(creditCardExpiration, 3, currentYear, isFocused))
|
||||
@ -23,7 +37,7 @@ class CreditCardExpirationValidatorTest(
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
@ParameterizedRobolectricTestRunner.Parameters(name = "{index}: getValidity(..) = {0}, {1}, {2}, {3}, {4}")
|
||||
@Parameterized.Parameters(name = "{index}: getValidity(..) = {0}, {1}, {2}, {3}, {4}")
|
||||
fun data(): Iterable<Array<Any>> = arrayListOf(
|
||||
// Unfocused
|
||||
arrayOf(CreditCardExpiration("", ""), 2020, false, CreditCardExpirationValidator.Validity.POTENTIALLY_VALID),
|
||||
|
||||
@ -1,20 +1,34 @@
|
||||
package org.thoughtcrime.securesms.components.settings.app.subscription.donate.card
|
||||
|
||||
import android.app.Application
|
||||
import android.text.TextUtils
|
||||
import io.mockk.every
|
||||
import io.mockk.mockkStatic
|
||||
import io.mockk.unmockkStatic
|
||||
import org.junit.After
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.robolectric.ParameterizedRobolectricTestRunner
|
||||
import org.robolectric.annotation.Config
|
||||
import org.junit.runners.Parameterized
|
||||
|
||||
@RunWith(ParameterizedRobolectricTestRunner::class)
|
||||
@Config(application = Application::class)
|
||||
@RunWith(Parameterized::class)
|
||||
class CreditCardNumberValidatorTest(
|
||||
private val creditCardNumber: String,
|
||||
private val creditCardNumberFieldFocused: Boolean,
|
||||
private val validity: CreditCardNumberValidator.Validity
|
||||
) {
|
||||
|
||||
@Before
|
||||
fun setUp() {
|
||||
mockkStatic(TextUtils::class)
|
||||
every { TextUtils.isDigitsOnly(any()) } answers { firstArg<CharSequence>().all { it.isDigit() } }
|
||||
}
|
||||
|
||||
@After
|
||||
fun tearDown() {
|
||||
unmockkStatic(TextUtils::class)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getValidity() {
|
||||
assertEquals(validity, CreditCardNumberValidator.getValidity(creditCardNumber, creditCardNumberFieldFocused))
|
||||
@ -22,7 +36,7 @@ class CreditCardNumberValidatorTest(
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
@ParameterizedRobolectricTestRunner.Parameters(name = "{index}: getValidity(..) = {0}, {1}, {2}")
|
||||
@Parameterized.Parameters(name = "{index}: getValidity(..) = {0}, {1}, {2}")
|
||||
fun data(): Iterable<Array<Any>> = arrayListOf(
|
||||
arrayOf("", false, CreditCardNumberValidator.Validity.POTENTIALLY_VALID),
|
||||
arrayOf("4", false, CreditCardNumberValidator.Validity.POTENTIALLY_VALID),
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
package org.thoughtcrime.securesms.crash
|
||||
|
||||
import android.app.Application
|
||||
import assertk.assertThat
|
||||
import assertk.assertions.containsExactly
|
||||
import assertk.assertions.isEmpty
|
||||
@ -9,23 +8,13 @@ import io.mockk.mockkObject
|
||||
import io.mockk.unmockkAll
|
||||
import org.junit.After
|
||||
import org.junit.Before
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.robolectric.RobolectricTestRunner
|
||||
import org.robolectric.annotation.Config
|
||||
import org.signal.core.models.ServiceId
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.testutil.MockAppDependenciesRule
|
||||
import org.thoughtcrime.securesms.util.RemoteConfig
|
||||
import java.util.UUID
|
||||
|
||||
@RunWith(RobolectricTestRunner::class)
|
||||
@Config(manifest = Config.NONE, application = Application::class)
|
||||
class CrashConfigTest {
|
||||
@get:Rule
|
||||
val appDependencies = MockAppDependenciesRule()
|
||||
|
||||
@Before
|
||||
fun setup() {
|
||||
mockkObject(RemoteConfig)
|
||||
|
||||
@ -5,19 +5,13 @@
|
||||
|
||||
package org.thoughtcrime.securesms.jobs
|
||||
|
||||
import android.app.Application
|
||||
import assertk.assertThat
|
||||
import assertk.assertions.isTrue
|
||||
import io.mockk.every
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.robolectric.RobolectricTestRunner
|
||||
import org.robolectric.annotation.Config
|
||||
import org.thoughtcrime.securesms.testutil.MockSignalStoreRule
|
||||
|
||||
@RunWith(RobolectricTestRunner::class)
|
||||
@Config(manifest = Config.NONE, application = Application::class)
|
||||
class InAppPaymentRedemptionJobTest {
|
||||
|
||||
@get:Rule
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
package org.thoughtcrime.securesms.keyvalue
|
||||
|
||||
import android.app.Application
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import io.mockk.mockkObject
|
||||
@ -8,21 +7,11 @@ import io.mockk.unmockkAll
|
||||
import org.junit.After
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Before
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.robolectric.RobolectricTestRunner
|
||||
import org.robolectric.annotation.Config
|
||||
import org.thoughtcrime.securesms.testutil.MockAppDependenciesRule
|
||||
import org.thoughtcrime.securesms.util.RemoteConfig
|
||||
|
||||
@RunWith(RobolectricTestRunner::class)
|
||||
@Config(manifest = Config.NONE, application = Application::class)
|
||||
class PaymentsValuesTest {
|
||||
|
||||
@get:Rule
|
||||
val appDependencies = MockAppDependenciesRule()
|
||||
|
||||
private lateinit var paymentValues: PaymentsValues
|
||||
|
||||
@Before
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
package org.thoughtcrime.securesms.notifications.profiles
|
||||
|
||||
import android.app.Application
|
||||
import assertk.assertThat
|
||||
import assertk.assertions.isEqualTo
|
||||
import assertk.assertions.isNull
|
||||
@ -10,25 +9,16 @@ import io.mockk.mockkObject
|
||||
import io.mockk.unmockkAll
|
||||
import org.junit.After
|
||||
import org.junit.Before
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.robolectric.RobolectricTestRunner
|
||||
import org.robolectric.annotation.Config
|
||||
import org.thoughtcrime.securesms.keyvalue.NotificationProfileValues
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.testutil.MockAppDependenciesRule
|
||||
import org.thoughtcrime.securesms.util.toMillis
|
||||
import java.time.DayOfWeek
|
||||
import java.time.LocalDateTime
|
||||
import java.time.ZoneId
|
||||
import java.time.ZoneOffset
|
||||
|
||||
@RunWith(RobolectricTestRunner::class)
|
||||
@Config(manifest = Config.NONE, application = Application::class)
|
||||
class NotificationProfilesTest {
|
||||
@get:Rule
|
||||
val appDependencies = MockAppDependenciesRule()
|
||||
|
||||
private val sunday830am: LocalDateTime = LocalDateTime.of(2021, 7, 4, 8, 30, 0)
|
||||
private val sunday9am: LocalDateTime = LocalDateTime.of(2021, 7, 4, 9, 0, 0)
|
||||
|
||||
@ -5,7 +5,6 @@
|
||||
|
||||
package org.thoughtcrime.securesms.reactions
|
||||
|
||||
import android.app.Application
|
||||
import io.mockk.every
|
||||
import io.mockk.just
|
||||
import io.mockk.mockk
|
||||
@ -16,13 +15,8 @@ import io.reactivex.rxjava3.schedulers.TestScheduler
|
||||
import org.junit.After
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.robolectric.RobolectricTestRunner
|
||||
import org.robolectric.annotation.Config
|
||||
import org.thoughtcrime.securesms.database.model.MessageId
|
||||
|
||||
@RunWith(RobolectricTestRunner::class)
|
||||
@Config(manifest = Config.NONE, application = Application::class)
|
||||
class ReactionsViewModelTest {
|
||||
|
||||
private val testScheduler = TestScheduler()
|
||||
|
||||
@ -5,22 +5,19 @@
|
||||
|
||||
package org.thoughtcrime.securesms.service
|
||||
|
||||
import android.app.Application
|
||||
import androidx.test.core.app.ApplicationProvider
|
||||
import android.content.Context
|
||||
import assertk.assertThat
|
||||
import assertk.assertions.isEqualTo
|
||||
import assertk.assertions.isGreaterThan
|
||||
import assertk.assertions.isLessThan
|
||||
import io.mockk.every
|
||||
import io.mockk.just
|
||||
import io.mockk.mockk
|
||||
import io.mockk.runs
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.robolectric.RobolectricTestRunner
|
||||
import org.robolectric.annotation.Config
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.testutil.MockRandom
|
||||
import org.thoughtcrime.securesms.testutil.MockSignalStoreRule
|
||||
@ -33,35 +30,35 @@ import kotlin.time.Duration.Companion.days
|
||||
import kotlin.time.Duration.Companion.hours
|
||||
import kotlin.time.Duration.Companion.minutes
|
||||
|
||||
@RunWith(RobolectricTestRunner::class)
|
||||
@Config(manifest = Config.NONE, application = Application::class)
|
||||
class MessageBackupListenerTest {
|
||||
|
||||
@get:Rule
|
||||
val rule = MockSignalStoreRule()
|
||||
|
||||
private val context = mockk<Context>(relaxed = true)
|
||||
|
||||
@Test
|
||||
fun testGetNextScheduledExecutionTime() {
|
||||
val listener = MessageBackupListener()
|
||||
|
||||
var nextTime = System.currentTimeMillis() + 1.days.inWholeMilliseconds
|
||||
every { SignalStore.backup.nextBackupTime } returns nextTime
|
||||
assertThat(listener.getNextScheduledExecutionTime(ApplicationProvider.getApplicationContext())).isEqualTo(nextTime)
|
||||
assertThat(listener.getNextScheduledExecutionTime(context)).isEqualTo(nextTime)
|
||||
|
||||
nextTime = System.currentTimeMillis() + 2.days.inWholeMilliseconds
|
||||
every { SignalStore.backup.nextBackupTime } returns nextTime
|
||||
assertThat(listener.getNextScheduledExecutionTime(ApplicationProvider.getApplicationContext())).isEqualTo(nextTime)
|
||||
assertThat(listener.getNextScheduledExecutionTime(context)).isEqualTo(nextTime)
|
||||
|
||||
nextTime = System.currentTimeMillis() + 8.hours.inWholeMilliseconds
|
||||
every { SignalStore.backup.nextBackupTime } returns nextTime
|
||||
assertThat(listener.getNextScheduledExecutionTime(ApplicationProvider.getApplicationContext())).isEqualTo(nextTime)
|
||||
assertThat(listener.getNextScheduledExecutionTime(context)).isEqualTo(nextTime)
|
||||
|
||||
nextTime = System.currentTimeMillis() + 7.days.inWholeMilliseconds
|
||||
every { SignalStore.backup.nextBackupTime } returns nextTime
|
||||
every { SignalStore.settings.signalBackupHour } returns 2
|
||||
every { SignalStore.settings.signalBackupMinute } returns 0
|
||||
every { SignalStore.backup.nextBackupTime = any() } just runs
|
||||
val adjustedTime = listener.getNextScheduledExecutionTime(ApplicationProvider.getApplicationContext())
|
||||
val adjustedTime = listener.getNextScheduledExecutionTime(context)
|
||||
assertThat(adjustedTime).isGreaterThan(System.currentTimeMillis())
|
||||
assertThat(adjustedTime).isLessThan(System.currentTimeMillis() + 2.days.inWholeMilliseconds)
|
||||
}
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
package org.thoughtcrime.securesms.storage
|
||||
|
||||
import android.app.Application
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import io.mockk.mockkObject
|
||||
@ -11,11 +10,7 @@ import org.junit.Assert.assertFalse
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.BeforeClass
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.robolectric.RobolectricTestRunner
|
||||
import org.robolectric.annotation.Config
|
||||
import org.signal.core.models.ServiceId
|
||||
import org.signal.core.models.ServiceId.ACI
|
||||
import org.signal.core.models.ServiceId.PNI
|
||||
@ -23,19 +18,13 @@ import org.signal.core.util.logging.Log
|
||||
import org.thoughtcrime.securesms.database.RecipientTable
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.testutil.EmptyLogger
|
||||
import org.thoughtcrime.securesms.testutil.MockAppDependenciesRule
|
||||
import org.whispersystems.signalservice.api.storage.SignalContactRecord
|
||||
import org.whispersystems.signalservice.api.storage.StorageId
|
||||
import org.whispersystems.signalservice.internal.storage.protos.ContactRecord
|
||||
import java.util.UUID
|
||||
|
||||
@RunWith(RobolectricTestRunner::class)
|
||||
@Config(application = Application::class)
|
||||
class ContactRecordProcessorTest {
|
||||
|
||||
@get:Rule
|
||||
val appDependencies = MockAppDependenciesRule()
|
||||
|
||||
lateinit var recipientTable: RecipientTable
|
||||
|
||||
@Before
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
package org.thoughtcrime.securesms.stories.viewer
|
||||
|
||||
import android.app.Application
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import io.mockk.verify
|
||||
import io.reactivex.rxjava3.android.plugins.RxAndroidPlugins
|
||||
import io.reactivex.rxjava3.core.Single
|
||||
import io.reactivex.rxjava3.plugins.RxJavaPlugins
|
||||
import io.reactivex.rxjava3.schedulers.TestScheduler
|
||||
@ -11,14 +11,9 @@ import org.junit.After
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.robolectric.RobolectricTestRunner
|
||||
import org.robolectric.annotation.Config
|
||||
import org.thoughtcrime.securesms.recipients.RecipientId
|
||||
import org.thoughtcrime.securesms.stories.StoryViewerArgs
|
||||
|
||||
@RunWith(RobolectricTestRunner::class)
|
||||
@Config(manifest = Config.NONE, application = Application::class)
|
||||
class StoryViewerViewModelTest {
|
||||
private val testScheduler = TestScheduler()
|
||||
private val repository = mockk<StoryViewerRepository>()
|
||||
@ -27,6 +22,8 @@ class StoryViewerViewModelTest {
|
||||
fun setUp() {
|
||||
RxJavaPlugins.setInitComputationSchedulerHandler { testScheduler }
|
||||
RxJavaPlugins.setComputationSchedulerHandler { testScheduler }
|
||||
RxAndroidPlugins.setInitMainThreadSchedulerHandler { testScheduler }
|
||||
RxAndroidPlugins.setMainThreadSchedulerHandler { testScheduler }
|
||||
|
||||
every { repository.getFirstStory(any(), any()) } returns Single.just(mockk())
|
||||
}
|
||||
@ -34,6 +31,7 @@ class StoryViewerViewModelTest {
|
||||
@After
|
||||
fun tearDown() {
|
||||
RxJavaPlugins.reset()
|
||||
RxAndroidPlugins.reset()
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@ -1,28 +1,20 @@
|
||||
package org.thoughtcrime.securesms.util
|
||||
|
||||
import android.app.Application
|
||||
import io.mockk.every
|
||||
import io.mockk.mockkObject
|
||||
import io.mockk.unmockkAll
|
||||
import org.junit.After
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Before
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.robolectric.ParameterizedRobolectricTestRunner
|
||||
import org.robolectric.annotation.Config
|
||||
import org.junit.runners.Parameterized
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.testutil.MockAppDependenciesRule
|
||||
import org.thoughtcrime.securesms.util.SignalMeUtil.parseE164FromLink
|
||||
|
||||
@RunWith(ParameterizedRobolectricTestRunner::class)
|
||||
@Config(manifest = Config.NONE, application = Application::class)
|
||||
@RunWith(Parameterized::class)
|
||||
class SignalMeUtilText_parseE164FromLink(private val input: String?, private val output: String?) {
|
||||
|
||||
@get:Rule
|
||||
val appDependencies = MockAppDependenciesRule()
|
||||
|
||||
@Before
|
||||
fun setUp() {
|
||||
mockkObject(SignalStore)
|
||||
@ -41,7 +33,7 @@ class SignalMeUtilText_parseE164FromLink(private val input: String?, private val
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
@ParameterizedRobolectricTestRunner.Parameters
|
||||
@Parameterized.Parameters
|
||||
fun data(): Collection<Array<Any?>> {
|
||||
return listOf(
|
||||
arrayOf("https://signal.me/#p/+15555555555", "+15555555555"),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user