Rewrite the AppDependencies system.

This commit is contained in:
Greyson Parrelli
2024-05-22 15:44:24 -04:00
committed by Cody Henthorne
parent a0131bf39b
commit b6a4e1f145
560 changed files with 2909 additions and 3036 deletions

View File

@@ -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()

View File

@@ -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();

View File

@@ -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())
}
}

View File

@@ -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())

View File

@@ -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);
}

View File

@@ -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(

View File

@@ -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

View File

@@ -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;

View File

@@ -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)

View File

@@ -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())
}
}

View File

@@ -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;

View File

@@ -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)
}
}

View File

@@ -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())
}

View File

@@ -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));
}
}