Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Verified Commit 9f314420 authored by Fahim M. Choudhury's avatar Fahim M. Choudhury
Browse files

refactor: rename AppInstallStartCoordinator to InstallationEnqueuer

parent 9aed1c57
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -23,14 +23,14 @@ import foundation.e.apps.data.enums.ResultStatus
import foundation.e.apps.data.install.AppInstallComponents
import foundation.e.apps.data.install.models.AppInstall
import foundation.e.apps.data.install.core.helper.InstallationRequest
import foundation.e.apps.data.install.core.helper.AppInstallStartCoordinator
import foundation.e.apps.data.install.core.helper.InstallationEnqueuer
import foundation.e.apps.data.install.core.helper.AppInstallWorkRunner
import foundation.e.apps.domain.model.install.Status
import javax.inject.Inject

class AppInstallProcessor @Inject constructor(
    private val appInstallComponents: AppInstallComponents,
    private val appInstallStartCoordinator: AppInstallStartCoordinator,
    private val installationEnqueuer: InstallationEnqueuer,
    private val appInstallWorkRunner: AppInstallWorkRunner,
    private val installationRequest: InstallationRequest,
) {
@@ -65,7 +65,7 @@ class AppInstallProcessor @Inject constructor(
        isAnUpdate: Boolean = false,
        isSystemApp: Boolean = false
    ): Boolean {
        return appInstallStartCoordinator.enqueue(appInstall, isAnUpdate, isSystemApp)
        return installationEnqueuer.enqueue(appInstall, isAnUpdate, isSystemApp)
    }

    suspend fun processInstall(
+1 −1
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ import kotlinx.coroutines.CancellationException
import timber.log.Timber
import javax.inject.Inject

class AppInstallStartCoordinator @Inject constructor(
class InstallationEnqueuer @Inject constructor(
    @ApplicationContext private val context: Context,
    private val preEnqueueChecker: PreEnqueueChecker,
    private val appManagerWrapper: AppManagerWrapper,
+8 −8
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ import foundation.e.apps.data.install.AppManagerWrapper
import foundation.e.apps.data.install.models.AppInstall
import foundation.e.apps.data.install.core.AppInstallProcessor
import foundation.e.apps.data.install.core.helper.InstallationRequest
import foundation.e.apps.data.install.core.helper.AppInstallStartCoordinator
import foundation.e.apps.data.install.core.helper.InstallationEnqueuer
import foundation.e.apps.data.install.core.helper.AppInstallWorkRunner
import foundation.e.apps.util.MainCoroutineRule
import io.mockk.coEvery
@@ -56,7 +56,7 @@ class AppInstallProcessorTest {
    private lateinit var appManagerWrapper: AppManagerWrapper
    private lateinit var appInstallProcessor: AppInstallProcessor
    private lateinit var installationRequest: InstallationRequest
    private lateinit var appInstallStartCoordinator: AppInstallStartCoordinator
    private lateinit var installationEnqueuer: InstallationEnqueuer
    private lateinit var appInstallWorkRunner: AppInstallWorkRunner

    @Before
@@ -65,12 +65,12 @@ class AppInstallProcessorTest {
        val appInstallRepository = mockk<AppInstallRepository>(relaxed = true)
        val appInstallComponents = AppInstallComponents(appInstallRepository, appManagerWrapper)
        installationRequest = mockk(relaxed = true)
        appInstallStartCoordinator = mockk(relaxed = true)
        installationEnqueuer = mockk(relaxed = true)
        appInstallWorkRunner = mockk(relaxed = true)

        appInstallProcessor = AppInstallProcessor(
            appInstallComponents,
            appInstallStartCoordinator,
            installationEnqueuer,
            appInstallWorkRunner,
            installationRequest
        )
@@ -90,7 +90,7 @@ class AppInstallProcessorTest {
        coEvery { installationRequest.create(application) } returns appInstall
        coEvery { appManagerWrapper.isFusedDownloadInstalled(appInstall) } returns false
        coEvery {
            appInstallStartCoordinator.enqueue(
            installationEnqueuer.enqueue(
                appInstall,
                true,
                application.isSystemApp
@@ -101,18 +101,18 @@ class AppInstallProcessorTest {

        assertTrue(result)
        coVerify { installationRequest.create(application) }
        coVerify { appInstallStartCoordinator.enqueue(appInstall, true, application.isSystemApp) }
        coVerify { installationEnqueuer.enqueue(appInstall, true, application.isSystemApp) }
    }

    @Test
    fun enqueueFusedDownload_delegatesResult() = runTest {
        val appInstall = AppInstall(id = "123", packageName = "com.example.app")
        coEvery { appInstallStartCoordinator.enqueue(appInstall, true, true) } returns false
        coEvery { installationEnqueuer.enqueue(appInstall, true, true) } returns false

        val result = appInstallProcessor.enqueueFusedDownload(appInstall, true, true)

        assertEquals(false, result)
        coVerify { appInstallStartCoordinator.enqueue(appInstall, true, true) }
        coVerify { installationEnqueuer.enqueue(appInstall, true, true) }
    }

    @Test
+14 −14
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ import foundation.e.apps.data.install.core.helper.AgeLimitGate
import foundation.e.apps.data.install.core.helper.DevicePreconditions
import foundation.e.apps.data.install.core.helper.DownloadUrlRefresher
import foundation.e.apps.data.install.core.helper.PreEnqueueChecker
import foundation.e.apps.data.install.core.helper.AppInstallStartCoordinator
import foundation.e.apps.data.install.core.helper.InstallationEnqueuer
import foundation.e.apps.data.install.workmanager.InstallWorkManager
import foundation.e.apps.data.install.wrapper.NetworkStatusChecker
import foundation.e.apps.data.install.wrapper.StorageSpaceChecker
@@ -60,7 +60,7 @@ import org.junit.Before
import org.junit.Test

@OptIn(ExperimentalCoroutinesApi::class)
class AppInstallStartCoordinatorTest {
class InstallationEnqueuerTest {
    private lateinit var context: Context
    private lateinit var appManagerWrapper: AppManagerWrapper
    private lateinit var applicationRepository: ApplicationRepository
@@ -76,7 +76,7 @@ class AppInstallStartCoordinatorTest {
    private lateinit var devicePreconditions: DevicePreconditions
    private lateinit var downloadUrlRefresher: DownloadUrlRefresher
    private lateinit var preflightChecker: PreEnqueueChecker
    private lateinit var coordinator: AppInstallStartCoordinator
    private lateinit var enqueuer: InstallationEnqueuer

    @Before
    fun setup() {
@@ -114,7 +114,7 @@ class AppInstallStartCoordinatorTest {
            ageLimitGate,
            devicePreconditions
        )
        coordinator = AppInstallStartCoordinator(
        enqueuer = InstallationEnqueuer(
            context,
            preflightChecker,
            appManagerWrapper,
@@ -133,7 +133,7 @@ class AppInstallStartCoordinatorTest {
        every { networkStatusChecker.isNetworkAvailable() } returns true
        every { storageSpaceChecker.spaceMissing(appInstall) } returns 0L

        val result = coordinator.canEnqueue(appInstall)
        val result = enqueuer.canEnqueue(appInstall)

        assertTrue(result)
    }
@@ -147,7 +147,7 @@ class AppInstallStartCoordinatorTest {
        every { networkStatusChecker.isNetworkAvailable() } returns false
        every { storageSpaceChecker.spaceMissing(appInstall) } returns 0L

        val result = coordinator.canEnqueue(appInstall)
        val result = enqueuer.canEnqueue(appInstall)

        assertFalse(result)
        coVerify { appManagerWrapper.installationIssue(appInstall) }
@@ -162,7 +162,7 @@ class AppInstallStartCoordinatorTest {
        every { networkStatusChecker.isNetworkAvailable() } returns true
        every { storageSpaceChecker.spaceMissing(appInstall) } returns 100L

        val result = coordinator.canEnqueue(appInstall)
        val result = enqueuer.canEnqueue(appInstall)

        assertFalse(result)
        verify { storageNotificationManager.showNotEnoughSpaceNotification(appInstall) }
@@ -175,7 +175,7 @@ class AppInstallStartCoordinatorTest {

        coEvery { appManagerWrapper.addDownload(appInstall) } returns false

        val result = coordinator.canEnqueue(appInstall)
        val result = enqueuer.canEnqueue(appInstall)

        assertFalse(result)
        coVerify(exactly = 0) { ageLimitGate.allow(any()) }
@@ -197,7 +197,7 @@ class AppInstallStartCoordinatorTest {
            every { storageSpaceChecker.spaceMissing(appInstall) } returns 0L
            justRun { InstallWorkManager.enqueueWork(any(), any(), any()) }

            val result = coordinator.enqueue(appInstall)
            val result = enqueuer.enqueue(appInstall)

            assertTrue(result)
            assertTrue(appEventDispatcher.events.any {
@@ -221,7 +221,7 @@ class AppInstallStartCoordinatorTest {
            )
        } throws InternalException.AppNotPurchased()

        val result = coordinator.canEnqueue(appInstall)
        val result = enqueuer.canEnqueue(appInstall)

        assertFalse(result)
        assertTrue(appEventDispatcher.events.any { it is AppEvent.AppRestrictedOrUnavailable })
@@ -240,7 +240,7 @@ class AppInstallStartCoordinatorTest {
            )
        } throws InternalException.AppNotPurchased()

        val result = coordinator.canEnqueue(appInstall)
        val result = enqueuer.canEnqueue(appInstall)

        assertFalse(result)
        coVerify { appManagerWrapper.addFusedDownloadPurchaseNeeded(appInstall) }
@@ -259,7 +259,7 @@ class AppInstallStartCoordinatorTest {
            )
        } throws GplayHttpRequestException(403, "forbidden")

        val result = coordinator.canEnqueue(appInstall)
        val result = enqueuer.canEnqueue(appInstall)

        assertFalse(result)
        assertTrue(appEventDispatcher.events.none { it is AppEvent.UpdateEvent })
@@ -280,7 +280,7 @@ class AppInstallStartCoordinatorTest {
            )
        } throws GplayHttpRequestException(403, "forbidden")

        val result = coordinator.canEnqueue(appInstall, true)
        val result = enqueuer.canEnqueue(appInstall, true)

        assertFalse(result)
        assertTrue(appEventDispatcher.events.any { it is AppEvent.UpdateEvent })
@@ -301,7 +301,7 @@ class AppInstallStartCoordinatorTest {
            )
        } throws IllegalStateException("boom")

        val result = coordinator.canEnqueue(appInstall)
        val result = enqueuer.canEnqueue(appInstall)

        assertFalse(result)
        coVerify { appInstallRepository.addDownload(appInstall) }