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

Commit f2f7fd6a authored by Grace Cheng's avatar Grace Cheng
Browse files

Refactor DeviceEntrySideFpsOverlayInteractorTest

Refactor DeviceEntrySideFpsOverlayInteractorTest to use Kosmos

Flag: EXEMPT test only
Test: N/A test only
Change-Id: I6d93519e0d17d99df30fbb189bde960306db4430
parent b98e09df
Loading
Loading
Loading
Loading
+7 −89
Original line number Original line Diff line number Diff line
@@ -16,37 +16,21 @@


package com.android.systemui.keyguard.domain.interactor
package com.android.systemui.keyguard.domain.interactor


import android.os.Handler
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import androidx.test.filters.SmallTest
import com.android.keyguard.KeyguardSecurityModel
import com.android.keyguard.keyguardUpdateMonitor
import com.android.keyguard.KeyguardUpdateMonitor
import com.android.systemui.SysuiTestCase
import com.android.systemui.SysuiTestCase
import com.android.systemui.biometrics.data.repository.FakeFingerprintPropertyRepository
import com.android.systemui.bouncer.data.repository.keyguardBouncerRepository
import com.android.systemui.bouncer.data.repository.FakeKeyguardBouncerRepository
import com.android.systemui.bouncer.domain.interactor.AlternateBouncerInteractor
import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerCallbackInteractor
import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerInteractor
import com.android.systemui.bouncer.ui.BouncerView
import com.android.systemui.classifier.FalsingCollector
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.coroutines.collectValues
import com.android.systemui.coroutines.collectValues
import com.android.systemui.deviceentry.domain.interactor.DeviceEntryBiometricsAllowedInteractor
import com.android.systemui.deviceentry.domain.interactor.DeviceEntryFaceAuthInteractor
import com.android.systemui.flags.EnableSceneContainer
import com.android.systemui.flags.EnableSceneContainer
import com.android.systemui.keyguard.DismissCallbackRegistry
import com.android.systemui.keyguard.data.repository.deviceEntryFingerprintAuthRepository
import com.android.systemui.keyguard.data.repository.FakeBiometricSettingsRepository
import com.android.systemui.keyguard.data.repository.FakeDeviceEntryFingerprintAuthRepository
import com.android.systemui.keyguard.data.repository.FakeTrustRepository
import com.android.systemui.kosmos.testScope
import com.android.systemui.kosmos.testScope
import com.android.systemui.res.R
import com.android.systemui.res.R
import com.android.systemui.scene.domain.interactor.sceneInteractor
import com.android.systemui.scene.domain.interactor.sceneInteractor
import com.android.systemui.scene.shared.model.Overlays
import com.android.systemui.scene.shared.model.Overlays
import com.android.systemui.statusbar.policy.KeyguardStateController
import com.android.systemui.testKosmos
import com.android.systemui.testKosmos
import com.android.systemui.user.domain.interactor.SelectedUserInteractor
import com.android.systemui.util.mockito.whenever
import com.android.systemui.util.mockito.whenever
import com.android.systemui.util.time.FakeSystemClock
import com.google.common.truth.Truth.assertThat
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.test.runCurrent
import kotlinx.coroutines.test.runCurrent
@@ -55,8 +39,6 @@ import org.junit.Before
import org.junit.Rule
import org.junit.Rule
import org.junit.Test
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.Mockito.mock
import org.mockito.junit.MockitoJUnit
import org.mockito.junit.MockitoJUnit
import org.mockito.junit.MockitoRule
import org.mockito.junit.MockitoRule


@@ -65,62 +47,18 @@ import org.mockito.junit.MockitoRule
class DeviceEntrySideFpsOverlayInteractorTest : SysuiTestCase() {
class DeviceEntrySideFpsOverlayInteractorTest : SysuiTestCase() {
    @JvmField @Rule var mockitoRule: MockitoRule = MockitoJUnit.rule()
    @JvmField @Rule var mockitoRule: MockitoRule = MockitoJUnit.rule()


    @Mock private lateinit var faceAuthInteractor: DeviceEntryFaceAuthInteractor
    @Mock private lateinit var keyguardUpdateMonitor: KeyguardUpdateMonitor
    @Mock private lateinit var mSelectedUserInteractor: SelectedUserInteractor

    private val kosmos = testKosmos()
    private val kosmos = testKosmos()
    private val testScope = kosmos.testScope
    private val testScope = kosmos.testScope
    private val bouncerRepository = FakeKeyguardBouncerRepository()
    private val biometricSettingsRepository = FakeBiometricSettingsRepository()
    private val deviceEntryFingerprintAuthRepository = FakeDeviceEntryFingerprintAuthRepository()


    private lateinit var primaryBouncerInteractor: PrimaryBouncerInteractor
    private val bouncerRepository = kosmos.keyguardBouncerRepository
    private lateinit var alternateBouncerInteractor: AlternateBouncerInteractor
    private val deviceEntryFingerprintAuthRepository = kosmos.deviceEntryFingerprintAuthRepository
    private val keyguardUpdateMonitor = kosmos.keyguardUpdateMonitor


    private lateinit var underTest: DeviceEntrySideFpsOverlayInteractor
    private lateinit var underTest: DeviceEntrySideFpsOverlayInteractor


    @Before
    @Before
    fun setup() {
    fun setup() {
        primaryBouncerInteractor =
        underTest = kosmos.deviceEntrySideFpsOverlayInteractor
            PrimaryBouncerInteractor(
                bouncerRepository,
                mock(BouncerView::class.java),
                mock(Handler::class.java),
                mock(KeyguardStateController::class.java),
                mock(KeyguardSecurityModel::class.java),
                mock(PrimaryBouncerCallbackInteractor::class.java),
                mock(FalsingCollector::class.java),
                mock(DismissCallbackRegistry::class.java),
                mContext,
                keyguardUpdateMonitor,
                FakeTrustRepository(),
                testScope.backgroundScope,
                mSelectedUserInteractor,
                faceAuthInteractor,
            )

        alternateBouncerInteractor =
            AlternateBouncerInteractor(
                bouncerRepository,
                FakeFingerprintPropertyRepository(),
                FakeSystemClock(),
                { mock(DeviceEntryBiometricsAllowedInteractor::class.java) },
                { mock(KeyguardInteractor::class.java) },
                { mock(KeyguardTransitionInteractor::class.java) },
                { kosmos.sceneInteractor },
                testScope.backgroundScope,
            )

        underTest =
            DeviceEntrySideFpsOverlayInteractor(
                mContext,
                deviceEntryFingerprintAuthRepository,
                kosmos.sceneInteractor,
                primaryBouncerInteractor,
                alternateBouncerInteractor,
                keyguardUpdateMonitor,
            )
    }
    }


    @Test
    @Test
@@ -159,16 +97,6 @@ class DeviceEntrySideFpsOverlayInteractorTest : SysuiTestCase() {
    @EnableSceneContainer
    @EnableSceneContainer
    fun updatesShowIndicatorForDeviceEntry_onBouncerSceneActive() =
    fun updatesShowIndicatorForDeviceEntry_onBouncerSceneActive() =
        testScope.runTest {
        testScope.runTest {
            underTest =
                DeviceEntrySideFpsOverlayInteractor(
                    mContext,
                    deviceEntryFingerprintAuthRepository,
                    kosmos.sceneInteractor,
                    primaryBouncerInteractor,
                    alternateBouncerInteractor,
                    keyguardUpdateMonitor,
                )

            val showIndicatorForDeviceEntry by
            val showIndicatorForDeviceEntry by
                collectLastValue(underTest.showIndicatorForDeviceEntry)
                collectLastValue(underTest.showIndicatorForDeviceEntry)
            runCurrent()
            runCurrent()
@@ -185,16 +113,6 @@ class DeviceEntrySideFpsOverlayInteractorTest : SysuiTestCase() {
    @EnableSceneContainer
    @EnableSceneContainer
    fun updatesShowIndicatorForDeviceEntry_onBouncerSceneInactive() =
    fun updatesShowIndicatorForDeviceEntry_onBouncerSceneInactive() =
        testScope.runTest {
        testScope.runTest {
            underTest =
                DeviceEntrySideFpsOverlayInteractor(
                    mContext,
                    deviceEntryFingerprintAuthRepository,
                    kosmos.sceneInteractor,
                    primaryBouncerInteractor,
                    alternateBouncerInteractor,
                    keyguardUpdateMonitor,
                )

            val showIndicatorForDeviceEntry by
            val showIndicatorForDeviceEntry by
                collectLastValue(underTest.showIndicatorForDeviceEntry)
                collectLastValue(underTest.showIndicatorForDeviceEntry)
            runCurrent()
            runCurrent()