Loading app/src/main/java/foundation/e/apps/data/install/core/helper/AppInstallPreEnqueueChecker.kt +2 −2 Original line number Diff line number Diff line Loading @@ -25,14 +25,14 @@ import timber.log.Timber import javax.inject.Inject class AppInstallPreEnqueueChecker @Inject constructor( private val appInstallDownloadUrlRefresher: AppInstallDownloadUrlRefresher, private val downloadUrlRefresher: DownloadUrlRefresher, private val appManagerWrapper: AppManagerWrapper, private val ageLimitGate: AgeLimitGate, private val devicePreconditions: DevicePreconditions, ) { suspend fun canEnqueue(appInstall: AppInstall, isAnUpdate: Boolean = false): Boolean { val hasUpdatedDownloadUrls = appInstall.type == Type.PWA || appInstallDownloadUrlRefresher.updateDownloadUrls(appInstall, isAnUpdate) downloadUrlRefresher.updateDownloadUrls(appInstall, isAnUpdate) val isDownloadAdded = hasUpdatedDownloadUrls && addDownload(appInstall) val isAgeLimitAllowed = isDownloadAdded && ageLimitGate.allow(appInstall) Loading app/src/main/java/foundation/e/apps/data/install/core/helper/AppInstallDownloadUrlRefresher.kt→app/src/main/java/foundation/e/apps/data/install/core/helper/DownloadUrlRefresher.kt +1 −1 Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ import kotlinx.coroutines.CancellationException import timber.log.Timber import javax.inject.Inject class AppInstallDownloadUrlRefresher @Inject constructor( class DownloadUrlRefresher @Inject constructor( private val applicationRepository: ApplicationRepository, private val appInstallRepository: AppInstallRepository, private val appManagerWrapper: AppManagerWrapper, Loading app/src/test/java/foundation/e/apps/installProcessor/AppInstallPreEnqueueCheckerTest.kt +9 −9 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ import foundation.e.apps.data.install.AppManagerWrapper import foundation.e.apps.data.install.models.AppInstall 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.AppInstallDownloadUrlRefresher import foundation.e.apps.data.install.core.helper.DownloadUrlRefresher import foundation.e.apps.data.install.core.helper.AppInstallPreEnqueueChecker import foundation.e.apps.domain.model.install.Status import io.mockk.coEvery Loading @@ -39,7 +39,7 @@ import org.junit.Test @OptIn(ExperimentalCoroutinesApi::class) class AppInstallPreEnqueueCheckerTest { private lateinit var appInstallDownloadUrlRefresher: AppInstallDownloadUrlRefresher private lateinit var downloadUrlRefresher: DownloadUrlRefresher private lateinit var appManagerWrapper: AppManagerWrapper private lateinit var ageLimitGate: AgeLimitGate private lateinit var devicePreconditions: DevicePreconditions Loading @@ -47,12 +47,12 @@ class AppInstallPreEnqueueCheckerTest { @Before fun setup() { appInstallDownloadUrlRefresher = mockk(relaxed = true) downloadUrlRefresher = mockk(relaxed = true) appManagerWrapper = mockk(relaxed = true) ageLimitGate = mockk(relaxed = true) devicePreconditions = mockk(relaxed = true) checker = AppInstallPreEnqueueChecker( appInstallDownloadUrlRefresher, downloadUrlRefresher, appManagerWrapper, ageLimitGate, devicePreconditions Loading @@ -70,14 +70,14 @@ class AppInstallPreEnqueueCheckerTest { assertTrue(result) coVerify(exactly = 0) { appInstallDownloadUrlRefresher.updateDownloadUrls(any(), any()) downloadUrlRefresher.updateDownloadUrls(any(), any()) } } @Test fun canEnqueue_stopsWhenDownloadRefreshFails() = runTest { val appInstall = createNativeInstall() coEvery { appInstallDownloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns false coEvery { downloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns false val result = checker.canEnqueue(appInstall) Loading @@ -90,7 +90,7 @@ class AppInstallPreEnqueueCheckerTest { @Test fun canEnqueue_stopsWhenAddingDownloadFails() = runTest { val appInstall = createNativeInstall() coEvery { appInstallDownloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns true coEvery { downloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns true coEvery { appManagerWrapper.addDownload(appInstall) } returns false val result = checker.canEnqueue(appInstall) Loading @@ -103,7 +103,7 @@ class AppInstallPreEnqueueCheckerTest { @Test fun canEnqueue_stopsWhenAgeLimitRejectsInstall() = runTest { val appInstall = createNativeInstall() coEvery { appInstallDownloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns true coEvery { downloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns true coEvery { appManagerWrapper.addDownload(appInstall) } returns true coEvery { ageLimitGate.allow(appInstall) } returns false Loading @@ -116,7 +116,7 @@ class AppInstallPreEnqueueCheckerTest { @Test fun canEnqueue_returnsTrueWhenAllChecksPass() = runTest { val appInstall = createNativeInstall() coEvery { appInstallDownloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns true coEvery { downloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns true coEvery { appManagerWrapper.addDownload(appInstall) } returns true coEvery { ageLimitGate.allow(appInstall) } returns true coEvery { devicePreconditions.canProceed(appInstall) } returns true Loading app/src/test/java/foundation/e/apps/installProcessor/AppInstallStartCoordinatorTest.kt +3 −3 Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ import foundation.e.apps.data.install.models.AppInstall import foundation.e.apps.data.install.notification.StorageNotificationManager 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.AppInstallDownloadUrlRefresher import foundation.e.apps.data.install.core.helper.DownloadUrlRefresher import foundation.e.apps.data.install.core.helper.AppInstallPreEnqueueChecker import foundation.e.apps.data.install.core.helper.AppInstallStartCoordinator import foundation.e.apps.data.install.workmanager.InstallWorkManager Loading Loading @@ -74,7 +74,7 @@ class AppInstallStartCoordinatorTest { private lateinit var networkStatusChecker: NetworkStatusChecker private lateinit var appManager: AppManager private lateinit var devicePreconditions: DevicePreconditions private lateinit var downloadUrlRefresher: AppInstallDownloadUrlRefresher private lateinit var downloadUrlRefresher: DownloadUrlRefresher private lateinit var preflightChecker: AppInstallPreEnqueueChecker private lateinit var coordinator: AppInstallStartCoordinator Loading @@ -94,7 +94,7 @@ class AppInstallStartCoordinatorTest { appManager = mockk(relaxed = true) coEvery { sessionRepository.awaitUser() } returns User.NO_GOOGLE coEvery { playStoreAuthStore.awaitAuthData() } returns null downloadUrlRefresher = AppInstallDownloadUrlRefresher( downloadUrlRefresher = DownloadUrlRefresher( applicationRepository, appInstallRepository, appManagerWrapper, Loading app/src/test/java/foundation/e/apps/installProcessor/AppInstallDownloadUrlRefresherTest.kt→app/src/test/java/foundation/e/apps/installProcessor/DownloadUrlRefresherTest.kt +4 −4 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ import foundation.e.apps.data.install.AppInstallRepository import foundation.e.apps.data.install.AppManager import foundation.e.apps.data.install.AppManagerWrapper import foundation.e.apps.data.install.models.AppInstall import foundation.e.apps.data.install.core.helper.AppInstallDownloadUrlRefresher import foundation.e.apps.data.install.core.helper.DownloadUrlRefresher import foundation.e.apps.data.playstore.utils.GplayHttpRequestException import foundation.e.apps.domain.model.install.Status import io.mockk.coEvery Loading @@ -43,13 +43,13 @@ import org.junit.Before import org.junit.Test @OptIn(ExperimentalCoroutinesApi::class) class AppInstallDownloadUrlRefresherTest { class DownloadUrlRefresherTest { private lateinit var applicationRepository: ApplicationRepository private lateinit var appInstallRepository: AppInstallRepository private lateinit var appManagerWrapper: AppManagerWrapper private lateinit var appEventDispatcher: FakeAppEventDispatcher private lateinit var appManager: AppManager private lateinit var refresher: AppInstallDownloadUrlRefresher private lateinit var refresher: DownloadUrlRefresher @Before fun setup() { Loading @@ -58,7 +58,7 @@ class AppInstallDownloadUrlRefresherTest { appManagerWrapper = mockk(relaxed = true) appEventDispatcher = FakeAppEventDispatcher() appManager = mockk(relaxed = true) refresher = AppInstallDownloadUrlRefresher( refresher = DownloadUrlRefresher( applicationRepository, appInstallRepository, appManagerWrapper, Loading Loading
app/src/main/java/foundation/e/apps/data/install/core/helper/AppInstallPreEnqueueChecker.kt +2 −2 Original line number Diff line number Diff line Loading @@ -25,14 +25,14 @@ import timber.log.Timber import javax.inject.Inject class AppInstallPreEnqueueChecker @Inject constructor( private val appInstallDownloadUrlRefresher: AppInstallDownloadUrlRefresher, private val downloadUrlRefresher: DownloadUrlRefresher, private val appManagerWrapper: AppManagerWrapper, private val ageLimitGate: AgeLimitGate, private val devicePreconditions: DevicePreconditions, ) { suspend fun canEnqueue(appInstall: AppInstall, isAnUpdate: Boolean = false): Boolean { val hasUpdatedDownloadUrls = appInstall.type == Type.PWA || appInstallDownloadUrlRefresher.updateDownloadUrls(appInstall, isAnUpdate) downloadUrlRefresher.updateDownloadUrls(appInstall, isAnUpdate) val isDownloadAdded = hasUpdatedDownloadUrls && addDownload(appInstall) val isAgeLimitAllowed = isDownloadAdded && ageLimitGate.allow(appInstall) Loading
app/src/main/java/foundation/e/apps/data/install/core/helper/AppInstallDownloadUrlRefresher.kt→app/src/main/java/foundation/e/apps/data/install/core/helper/DownloadUrlRefresher.kt +1 −1 Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ import kotlinx.coroutines.CancellationException import timber.log.Timber import javax.inject.Inject class AppInstallDownloadUrlRefresher @Inject constructor( class DownloadUrlRefresher @Inject constructor( private val applicationRepository: ApplicationRepository, private val appInstallRepository: AppInstallRepository, private val appManagerWrapper: AppManagerWrapper, Loading
app/src/test/java/foundation/e/apps/installProcessor/AppInstallPreEnqueueCheckerTest.kt +9 −9 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ import foundation.e.apps.data.install.AppManagerWrapper import foundation.e.apps.data.install.models.AppInstall 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.AppInstallDownloadUrlRefresher import foundation.e.apps.data.install.core.helper.DownloadUrlRefresher import foundation.e.apps.data.install.core.helper.AppInstallPreEnqueueChecker import foundation.e.apps.domain.model.install.Status import io.mockk.coEvery Loading @@ -39,7 +39,7 @@ import org.junit.Test @OptIn(ExperimentalCoroutinesApi::class) class AppInstallPreEnqueueCheckerTest { private lateinit var appInstallDownloadUrlRefresher: AppInstallDownloadUrlRefresher private lateinit var downloadUrlRefresher: DownloadUrlRefresher private lateinit var appManagerWrapper: AppManagerWrapper private lateinit var ageLimitGate: AgeLimitGate private lateinit var devicePreconditions: DevicePreconditions Loading @@ -47,12 +47,12 @@ class AppInstallPreEnqueueCheckerTest { @Before fun setup() { appInstallDownloadUrlRefresher = mockk(relaxed = true) downloadUrlRefresher = mockk(relaxed = true) appManagerWrapper = mockk(relaxed = true) ageLimitGate = mockk(relaxed = true) devicePreconditions = mockk(relaxed = true) checker = AppInstallPreEnqueueChecker( appInstallDownloadUrlRefresher, downloadUrlRefresher, appManagerWrapper, ageLimitGate, devicePreconditions Loading @@ -70,14 +70,14 @@ class AppInstallPreEnqueueCheckerTest { assertTrue(result) coVerify(exactly = 0) { appInstallDownloadUrlRefresher.updateDownloadUrls(any(), any()) downloadUrlRefresher.updateDownloadUrls(any(), any()) } } @Test fun canEnqueue_stopsWhenDownloadRefreshFails() = runTest { val appInstall = createNativeInstall() coEvery { appInstallDownloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns false coEvery { downloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns false val result = checker.canEnqueue(appInstall) Loading @@ -90,7 +90,7 @@ class AppInstallPreEnqueueCheckerTest { @Test fun canEnqueue_stopsWhenAddingDownloadFails() = runTest { val appInstall = createNativeInstall() coEvery { appInstallDownloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns true coEvery { downloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns true coEvery { appManagerWrapper.addDownload(appInstall) } returns false val result = checker.canEnqueue(appInstall) Loading @@ -103,7 +103,7 @@ class AppInstallPreEnqueueCheckerTest { @Test fun canEnqueue_stopsWhenAgeLimitRejectsInstall() = runTest { val appInstall = createNativeInstall() coEvery { appInstallDownloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns true coEvery { downloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns true coEvery { appManagerWrapper.addDownload(appInstall) } returns true coEvery { ageLimitGate.allow(appInstall) } returns false Loading @@ -116,7 +116,7 @@ class AppInstallPreEnqueueCheckerTest { @Test fun canEnqueue_returnsTrueWhenAllChecksPass() = runTest { val appInstall = createNativeInstall() coEvery { appInstallDownloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns true coEvery { downloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns true coEvery { appManagerWrapper.addDownload(appInstall) } returns true coEvery { ageLimitGate.allow(appInstall) } returns true coEvery { devicePreconditions.canProceed(appInstall) } returns true Loading
app/src/test/java/foundation/e/apps/installProcessor/AppInstallStartCoordinatorTest.kt +3 −3 Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ import foundation.e.apps.data.install.models.AppInstall import foundation.e.apps.data.install.notification.StorageNotificationManager 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.AppInstallDownloadUrlRefresher import foundation.e.apps.data.install.core.helper.DownloadUrlRefresher import foundation.e.apps.data.install.core.helper.AppInstallPreEnqueueChecker import foundation.e.apps.data.install.core.helper.AppInstallStartCoordinator import foundation.e.apps.data.install.workmanager.InstallWorkManager Loading Loading @@ -74,7 +74,7 @@ class AppInstallStartCoordinatorTest { private lateinit var networkStatusChecker: NetworkStatusChecker private lateinit var appManager: AppManager private lateinit var devicePreconditions: DevicePreconditions private lateinit var downloadUrlRefresher: AppInstallDownloadUrlRefresher private lateinit var downloadUrlRefresher: DownloadUrlRefresher private lateinit var preflightChecker: AppInstallPreEnqueueChecker private lateinit var coordinator: AppInstallStartCoordinator Loading @@ -94,7 +94,7 @@ class AppInstallStartCoordinatorTest { appManager = mockk(relaxed = true) coEvery { sessionRepository.awaitUser() } returns User.NO_GOOGLE coEvery { playStoreAuthStore.awaitAuthData() } returns null downloadUrlRefresher = AppInstallDownloadUrlRefresher( downloadUrlRefresher = DownloadUrlRefresher( applicationRepository, appInstallRepository, appManagerWrapper, Loading
app/src/test/java/foundation/e/apps/installProcessor/AppInstallDownloadUrlRefresherTest.kt→app/src/test/java/foundation/e/apps/installProcessor/DownloadUrlRefresherTest.kt +4 −4 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ import foundation.e.apps.data.install.AppInstallRepository import foundation.e.apps.data.install.AppManager import foundation.e.apps.data.install.AppManagerWrapper import foundation.e.apps.data.install.models.AppInstall import foundation.e.apps.data.install.core.helper.AppInstallDownloadUrlRefresher import foundation.e.apps.data.install.core.helper.DownloadUrlRefresher import foundation.e.apps.data.playstore.utils.GplayHttpRequestException import foundation.e.apps.domain.model.install.Status import io.mockk.coEvery Loading @@ -43,13 +43,13 @@ import org.junit.Before import org.junit.Test @OptIn(ExperimentalCoroutinesApi::class) class AppInstallDownloadUrlRefresherTest { class DownloadUrlRefresherTest { private lateinit var applicationRepository: ApplicationRepository private lateinit var appInstallRepository: AppInstallRepository private lateinit var appManagerWrapper: AppManagerWrapper private lateinit var appEventDispatcher: FakeAppEventDispatcher private lateinit var appManager: AppManager private lateinit var refresher: AppInstallDownloadUrlRefresher private lateinit var refresher: DownloadUrlRefresher @Before fun setup() { Loading @@ -58,7 +58,7 @@ class AppInstallDownloadUrlRefresherTest { appManagerWrapper = mockk(relaxed = true) appEventDispatcher = FakeAppEventDispatcher() appManager = mockk(relaxed = true) refresher = AppInstallDownloadUrlRefresher( refresher = DownloadUrlRefresher( applicationRepository, appInstallRepository, appManagerWrapper, Loading