mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-25 04:06:14 +00:00
Rewrite the AppDependencies system.
This commit is contained in:
committed by
Cody Henthorne
parent
a0131bf39b
commit
b6a4e1f145
@@ -4,7 +4,7 @@ import androidx.test.core.app.ApplicationProvider
|
||||
import org.junit.rules.TestRule
|
||||
import org.junit.runner.Description
|
||||
import org.junit.runners.model.Statement
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.dependencies.MockApplicationDependencyProvider
|
||||
import org.thoughtcrime.securesms.keyvalue.KeyValueDataSet
|
||||
import org.thoughtcrime.securesms.keyvalue.KeyValueStore
|
||||
@@ -27,8 +27,8 @@ class SignalStoreRule @JvmOverloads constructor(private val defaultValues: KeyVa
|
||||
return object : Statement() {
|
||||
@Throws(Throwable::class)
|
||||
override fun evaluate() {
|
||||
if (!ApplicationDependencies.isInitialized()) {
|
||||
ApplicationDependencies.init(ApplicationProvider.getApplicationContext(), MockApplicationDependencyProvider())
|
||||
if (!AppDependencies.isInitialized) {
|
||||
AppDependencies.init(ApplicationProvider.getApplicationContext(), MockApplicationDependencyProvider())
|
||||
}
|
||||
|
||||
dataSet = KeyValueDataSet()
|
||||
|
||||
@@ -15,7 +15,7 @@ import org.mockito.junit.MockitoRule;
|
||||
import org.robolectric.ParameterizedRobolectricTestRunner;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.thoughtcrime.securesms.crypto.AttachmentSecretProvider;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies;
|
||||
import org.thoughtcrime.securesms.emoji.EmojiSource;
|
||||
import org.thoughtcrime.securesms.keyvalue.InternalValues;
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||
@@ -61,7 +61,7 @@ public class EmojiUtilTest_isEmoji {
|
||||
}
|
||||
|
||||
@Mock
|
||||
private MockedStatic<ApplicationDependencies> applicationDependenciesMockedStatic;
|
||||
private MockedStatic<AppDependencies> applicationDependenciesMockedStatic;
|
||||
|
||||
@Mock
|
||||
private MockedStatic<AttachmentSecretProvider> attachmentSecretProviderMockedStatic;
|
||||
@@ -81,7 +81,7 @@ public class EmojiUtilTest_isEmoji {
|
||||
public void isEmoji() throws Exception {
|
||||
Application application = ApplicationProvider.getApplicationContext();
|
||||
|
||||
when(ApplicationDependencies.getApplication()).thenReturn(application);
|
||||
when(AppDependencies.getApplication()).thenReturn(application);
|
||||
when(AttachmentSecretProvider.getInstance(any())).thenThrow(RuntimeException.class);
|
||||
when(SignalStore.internalValues()).thenReturn(mock(InternalValues.class));
|
||||
EmojiSource.refresh();
|
||||
|
||||
@@ -17,7 +17,7 @@ import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.robolectric.RobolectricTestRunner
|
||||
import org.robolectric.annotation.Config
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.dependencies.MockApplicationDependencyProvider
|
||||
import org.thoughtcrime.securesms.providers.BlobProvider
|
||||
import org.thoughtcrime.securesms.util.JsonUtils
|
||||
@@ -66,8 +66,8 @@ class ExportAccountDataTest {
|
||||
|
||||
@Before
|
||||
fun setup() {
|
||||
if (!ApplicationDependencies.isInitialized()) {
|
||||
ApplicationDependencies.init(ApplicationProvider.getApplicationContext(), MockApplicationDependencyProvider())
|
||||
if (!AppDependencies.isInitialized) {
|
||||
AppDependencies.init(ApplicationProvider.getApplicationContext(), MockApplicationDependencyProvider())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.robolectric.RobolectricTestRunner
|
||||
import org.robolectric.annotation.Config
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.whispersystems.signalservice.internal.push.SubscriptionsConfiguration
|
||||
import org.whispersystems.signalservice.internal.util.JsonUtil
|
||||
import java.util.Currency
|
||||
@@ -49,8 +49,8 @@ class SubscriptionsConfigurationExtensionsKtTest {
|
||||
|
||||
@Test
|
||||
fun `When I getGiftBadges, then I expect exactly 1 badge with the id GIFT`() {
|
||||
mockkStatic(ApplicationDependencies::class) {
|
||||
every { ApplicationDependencies.getApplication() } returns ApplicationProvider.getApplicationContext()
|
||||
mockkStatic(AppDependencies::class) {
|
||||
every { AppDependencies.application } returns ApplicationProvider.getApplicationContext()
|
||||
|
||||
val giftBadges = testSubject.getGiftBadges()
|
||||
|
||||
@@ -61,8 +61,8 @@ class SubscriptionsConfigurationExtensionsKtTest {
|
||||
|
||||
@Test
|
||||
fun `When I getBoostBadges, then I expect exactly 1 badge with the id BOOST`() {
|
||||
mockkStatic(ApplicationDependencies::class) {
|
||||
every { ApplicationDependencies.getApplication() } returns ApplicationProvider.getApplicationContext()
|
||||
mockkStatic(AppDependencies::class) {
|
||||
every { AppDependencies.application } returns ApplicationProvider.getApplicationContext()
|
||||
|
||||
val boostBadges = testSubject.getBoostBadges()
|
||||
|
||||
@@ -163,8 +163,8 @@ class SubscriptionsConfigurationExtensionsKtTest {
|
||||
|
||||
@Test
|
||||
fun `Given GIFT_LEVEL, When I getBadge, then I expect the gift badge`() {
|
||||
mockkStatic(ApplicationDependencies::class) {
|
||||
every { ApplicationDependencies.getApplication() } returns ApplicationProvider.getApplicationContext()
|
||||
mockkStatic(AppDependencies::class) {
|
||||
every { AppDependencies.application } returns ApplicationProvider.getApplicationContext()
|
||||
val badge = testSubject.getBadge(SubscriptionsConfiguration.GIFT_LEVEL)
|
||||
|
||||
assertTrue(badge.isGift())
|
||||
@@ -173,8 +173,8 @@ class SubscriptionsConfigurationExtensionsKtTest {
|
||||
|
||||
@Test
|
||||
fun `Given BOOST_LEVEL, When I getBadge, then I expect the boost badge`() {
|
||||
mockkStatic(ApplicationDependencies::class) {
|
||||
every { ApplicationDependencies.getApplication() } returns ApplicationProvider.getApplicationContext()
|
||||
mockkStatic(AppDependencies::class) {
|
||||
every { AppDependencies.application } returns ApplicationProvider.getApplicationContext()
|
||||
val badge = testSubject.getBadge(SubscriptionsConfiguration.BOOST_LEVEL)
|
||||
|
||||
assertTrue(badge.isBoost())
|
||||
@@ -183,8 +183,8 @@ class SubscriptionsConfigurationExtensionsKtTest {
|
||||
|
||||
@Test
|
||||
fun `Given a sub level, When I getBadge, then I expect a sub badge`() {
|
||||
mockkStatic(ApplicationDependencies::class) {
|
||||
every { ApplicationDependencies.getApplication() } returns ApplicationProvider.getApplicationContext()
|
||||
mockkStatic(AppDependencies::class) {
|
||||
every { AppDependencies.application } returns ApplicationProvider.getApplicationContext()
|
||||
val badge = testSubject.getBadge(SubscriptionsConfiguration.SUBSCRIPTION_LEVELS.first())
|
||||
|
||||
assertTrue(badge.isSubscription())
|
||||
|
||||
@@ -18,7 +18,7 @@ import org.thoughtcrime.securesms.conversationlist.model.ConversationReader;
|
||||
import org.thoughtcrime.securesms.database.DatabaseObserver;
|
||||
import org.thoughtcrime.securesms.database.SignalDatabase;
|
||||
import org.thoughtcrime.securesms.database.ThreadTable;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
@@ -38,7 +38,7 @@ public class UnarchivedConversationListDataSourceTest {
|
||||
public MockitoRule rule = MockitoJUnit.rule();
|
||||
|
||||
@Mock
|
||||
private MockedStatic<ApplicationDependencies> applicationDependenciesMockedStatic;
|
||||
private MockedStatic<AppDependencies> applicationDependenciesMockedStatic;
|
||||
|
||||
@Mock
|
||||
private MockedStatic<SignalDatabase> signalDatabaseMockedStatic;
|
||||
@@ -52,7 +52,7 @@ public class UnarchivedConversationListDataSourceTest {
|
||||
threadTable = mock(ThreadTable.class);
|
||||
|
||||
when(SignalDatabase.threads()).thenReturn(threadTable);
|
||||
when(ApplicationDependencies.getDatabaseObserver()).thenReturn(mock(DatabaseObserver.class));
|
||||
when(AppDependencies.getDatabaseObserver()).thenReturn(mock(DatabaseObserver.class));
|
||||
|
||||
testSubject = new ConversationListDataSource.UnarchivedConversationListDataSource(ConversationFilter.OFF, false);
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ import org.mockito.junit.MockitoRule
|
||||
import org.robolectric.RobolectricTestRunner
|
||||
import org.robolectric.annotation.Config
|
||||
import org.thoughtcrime.securesms.assertIs
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.dependencies.MockApplicationDependencyProvider
|
||||
import org.thoughtcrime.securesms.keyvalue.AccountValues
|
||||
import org.thoughtcrime.securesms.keyvalue.KeyValueDataSet
|
||||
@@ -37,8 +37,8 @@ class CrashConfigTest {
|
||||
|
||||
@Before
|
||||
fun setup() {
|
||||
if (!ApplicationDependencies.isInitialized()) {
|
||||
ApplicationDependencies.init(ApplicationProvider.getApplicationContext(), MockApplicationDependencyProvider())
|
||||
if (!AppDependencies.isInitialized) {
|
||||
AppDependencies.init(ApplicationProvider.getApplicationContext(), MockApplicationDependencyProvider())
|
||||
}
|
||||
|
||||
val store = KeyValueStore(
|
||||
|
||||
@@ -15,7 +15,7 @@ import org.junit.runner.RunWith
|
||||
import org.robolectric.RobolectricTestRunner
|
||||
import org.robolectric.annotation.Config
|
||||
import org.thoughtcrime.securesms.conversation.colors.AvatarColor
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.dependencies.MockApplicationDependencyProvider
|
||||
import org.thoughtcrime.securesms.notifications.profiles.NotificationProfile
|
||||
import org.thoughtcrime.securesms.recipients.RecipientId
|
||||
@@ -42,8 +42,8 @@ class NotificationProfileDatabaseTest {
|
||||
}
|
||||
}
|
||||
|
||||
if (!ApplicationDependencies.isInitialized()) {
|
||||
ApplicationDependencies.init(ApplicationProvider.getApplicationContext(), MockApplicationDependencyProvider())
|
||||
if (!AppDependencies.isInitialized) {
|
||||
AppDependencies.init(ApplicationProvider.getApplicationContext(), MockApplicationDependencyProvider())
|
||||
}
|
||||
|
||||
db = sqlCipher.writableDatabase
|
||||
|
||||
@@ -49,7 +49,7 @@ import java.util.function.Supplier;
|
||||
import static org.mockito.Mockito.mock;
|
||||
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
public class MockApplicationDependencyProvider implements ApplicationDependencies.Provider {
|
||||
public class MockApplicationDependencyProvider implements AppDependencies.Provider {
|
||||
@Override
|
||||
public @NonNull GroupsV2Operations provideGroupsV2Operations(@NonNull SignalServiceConfiguration signalServiceConfiguration) {
|
||||
return null;
|
||||
|
||||
@@ -44,7 +44,7 @@ import org.thoughtcrime.securesms.database.model.databaseprotos.pendingMember
|
||||
import org.thoughtcrime.securesms.database.model.databaseprotos.requestingMember
|
||||
import org.thoughtcrime.securesms.database.setNewDescription
|
||||
import org.thoughtcrime.securesms.database.setNewTitle
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.groups.GroupId
|
||||
import org.thoughtcrime.securesms.groups.GroupNotAMemberException
|
||||
import org.thoughtcrime.securesms.groups.GroupsV2Authorization
|
||||
@@ -108,10 +108,10 @@ class GroupsV2StateProcessorTest {
|
||||
profileAndMessageHelper = spyk(ProfileAndMessageHelper(serviceIds.aci, masterKey, groupId))
|
||||
jobManager = mockk()
|
||||
|
||||
mockkStatic(ApplicationDependencies::class)
|
||||
every { ApplicationDependencies.getJobManager() } returns jobManager
|
||||
every { ApplicationDependencies.getSignalServiceAccountManager().getGroupsV2Api() } returns groupsV2API
|
||||
every { ApplicationDependencies.getGroupsV2Authorization() } returns groupsV2Authorization
|
||||
mockkStatic(AppDependencies::class)
|
||||
every { AppDependencies.jobManager } returns jobManager
|
||||
every { AppDependencies.signalServiceAccountManager.getGroupsV2Api() } returns groupsV2API
|
||||
every { AppDependencies.groupsV2Authorization } returns groupsV2Authorization
|
||||
|
||||
mockkObject(SignalDatabase)
|
||||
every { SignalDatabase.groups } returns groupTable
|
||||
@@ -125,7 +125,7 @@ class GroupsV2StateProcessorTest {
|
||||
|
||||
@After
|
||||
fun tearDown() {
|
||||
unmockkStatic(ApplicationDependencies::class)
|
||||
unmockkStatic(AppDependencies::class)
|
||||
unmockkObject(SignalDatabase)
|
||||
unmockkObject(ProfileAndMessageHelper)
|
||||
unmockkStatic(DecryptedGroupUtil::class)
|
||||
|
||||
@@ -14,7 +14,7 @@ import org.mockito.junit.MockitoJUnit
|
||||
import org.mockito.junit.MockitoRule
|
||||
import org.robolectric.RobolectricTestRunner
|
||||
import org.robolectric.annotation.Config
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.dependencies.MockApplicationDependencyProvider
|
||||
import org.thoughtcrime.securesms.util.FeatureFlags
|
||||
|
||||
@@ -31,8 +31,8 @@ class PaymentsValuesTest {
|
||||
|
||||
@Before
|
||||
fun setup() {
|
||||
if (!ApplicationDependencies.isInitialized()) {
|
||||
ApplicationDependencies.init(ApplicationProvider.getApplicationContext(), MockApplicationDependencyProvider())
|
||||
if (!AppDependencies.isInitialized) {
|
||||
AppDependencies.init(ApplicationProvider.getApplicationContext(), MockApplicationDependencyProvider())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ import org.signal.libsignal.protocol.util.Pair;
|
||||
import org.thoughtcrime.securesms.database.MessageTable;
|
||||
import org.thoughtcrime.securesms.database.model.MessageId;
|
||||
import org.thoughtcrime.securesms.database.model.StoryType;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies;
|
||||
import org.thoughtcrime.securesms.jobmanager.JsonJobData;
|
||||
import org.thoughtcrime.securesms.jobmanager.Job;
|
||||
import org.thoughtcrime.securesms.jobmanager.JobManager;
|
||||
@@ -45,7 +45,7 @@ public class MarkReadReceiverTest {
|
||||
public MockitoRule rule = MockitoJUnit.rule();
|
||||
|
||||
@Mock
|
||||
private MockedStatic<ApplicationDependencies> applicationDependenciesMockedStatic;
|
||||
private MockedStatic<AppDependencies> applicationDependenciesMockedStatic;
|
||||
|
||||
@Mock
|
||||
private MockedStatic<Recipient> recipientMockedStatic;
|
||||
@@ -57,7 +57,7 @@ public class MarkReadReceiverTest {
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
applicationDependenciesMockedStatic.when(ApplicationDependencies::getJobManager).thenReturn(mockJobManager);
|
||||
applicationDependenciesMockedStatic.when(AppDependencies::getJobManager).thenReturn(mockJobManager);
|
||||
doAnswer((Answer<Void>) invocation -> {
|
||||
jobs.add((Job) invocation.getArguments()[0]);
|
||||
return null;
|
||||
|
||||
@@ -15,7 +15,7 @@ import org.mockito.junit.MockitoRule
|
||||
import org.robolectric.RobolectricTestRunner
|
||||
import org.robolectric.annotation.Config
|
||||
import org.thoughtcrime.securesms.crypto.AttachmentSecretProvider
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
|
||||
@RunWith(RobolectricTestRunner::class)
|
||||
@@ -27,7 +27,7 @@ abstract class BaseRecipientTest {
|
||||
val mockitoRule: MockitoRule = MockitoJUnit.rule()
|
||||
|
||||
@Mock
|
||||
private lateinit var applicationDependenciesStaticMock: MockedStatic<ApplicationDependencies>
|
||||
private lateinit var applicationDependenciesStaticMock: MockedStatic<AppDependencies>
|
||||
|
||||
@Mock
|
||||
private lateinit var attachmentSecretProviderStaticMock: MockedStatic<AttachmentSecretProvider>
|
||||
@@ -42,7 +42,7 @@ abstract class BaseRecipientTest {
|
||||
fun superSetUp() {
|
||||
val application = ApplicationProvider.getApplicationContext<Application>()
|
||||
|
||||
`when`(ApplicationDependencies.getApplication()).thenReturn(application)
|
||||
`when`(AppDependencies.application).thenReturn(application)
|
||||
`when`(AttachmentSecretProvider.getInstance(ArgumentMatchers.any())).thenThrow(RuntimeException::class.java)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ import org.thoughtcrime.securesms.attachments.AttachmentId
|
||||
import org.thoughtcrime.securesms.database.AttachmentTable
|
||||
import org.thoughtcrime.securesms.database.FakeMessageRecords
|
||||
import org.thoughtcrime.securesms.database.SignalDatabase
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.jobmanager.JobManager
|
||||
import org.thoughtcrime.securesms.jobs.AttachmentDownloadJob
|
||||
|
||||
@@ -36,7 +36,7 @@ class StoriesTest {
|
||||
private lateinit var mockJobManager: JobManager
|
||||
|
||||
@Mock
|
||||
private lateinit var mockApplicationDependenciesStatic: MockedStatic<ApplicationDependencies>
|
||||
private lateinit var mockApplicationDependenciesStatic: MockedStatic<AppDependencies>
|
||||
|
||||
@Mock
|
||||
private lateinit var mockSignalDatabaseStatic: MockedStatic<SignalDatabase>
|
||||
@@ -53,7 +53,7 @@ class StoriesTest {
|
||||
|
||||
SignalDatabase.setSignalDatabaseInstanceForTesting(mockSignalDatabase)
|
||||
whenever(SignalDatabase.attachments).thenReturn(mockAttachmentTable)
|
||||
whenever(ApplicationDependencies.getJobManager()).thenReturn(mockJobManager)
|
||||
whenever(AppDependencies.jobManager).thenReturn(mockJobManager)
|
||||
whenever(mockAttachmentTable.getAttachmentsForMessage(any())).thenReturn(emptyList())
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import org.junit.runner.RunWith;
|
||||
import org.robolectric.ParameterizedRobolectricTestRunner;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.thoughtcrime.securesms.SignalStoreRule;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies;
|
||||
import org.thoughtcrime.securesms.keyvalue.AccountValues;
|
||||
|
||||
import java.util.Arrays;
|
||||
@@ -55,6 +55,6 @@ public class SignalMeUtilText_parseE164FromLink {
|
||||
|
||||
@Test
|
||||
public void parse() {
|
||||
assertEquals(output, SignalMeUtil.parseE164FromLink(ApplicationDependencies.getApplication(), input));
|
||||
assertEquals(output, SignalMeUtil.parseE164FromLink(AppDependencies.getApplication(), input));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user