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

Commit fbc19564 authored by Darrell Shi's avatar Darrell Shi
Browse files

Kosmos for communal interactor and widget repo tests

Test: atest CommunalWidgetRepositoryImplTest
Test: atest CommunalInteractorTest
Bug: 319335645
Flag: n/a
Change-Id: Iabd1f967fc155c9bf6f6e60b9a4eb49330a2eb29
parent d39747f2
Loading
Loading
Loading
Loading
+11 −10
Original line number Diff line number Diff line
@@ -33,10 +33,13 @@ import com.android.systemui.communal.shared.CommunalWidgetHost
import com.android.systemui.communal.shared.model.CommunalWidgetContentModel
import com.android.systemui.communal.widgets.CommunalAppWidgetHost
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.kosmos.testDispatcher
import com.android.systemui.kosmos.testScope
import com.android.systemui.log.LogBuffer
import com.android.systemui.log.core.FakeLogBuffer
import com.android.systemui.log.logcatLogBuffer
import com.android.systemui.res.R
import com.android.systemui.settings.UserTracker
import com.android.systemui.testKosmos
import com.android.systemui.util.mockito.any
import com.android.systemui.util.mockito.whenever
import com.google.common.truth.Truth.assertThat
@@ -44,8 +47,6 @@ import java.util.Optional
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.test.StandardTestDispatcher
import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.test.runCurrent
import kotlinx.coroutines.test.runTest
import org.junit.Before
@@ -81,13 +82,13 @@ class CommunalWidgetRepositoryImplTest : SysuiTestCase() {

    @Mock private lateinit var communalWidgetDao: CommunalWidgetDao

    private lateinit var communalRepository: FakeCommunalRepository
    private val kosmos = testKosmos()

    private lateinit var logBuffer: LogBuffer
    private val testScope = kosmos.testScope

    private val testDispatcher = StandardTestDispatcher()
    private lateinit var communalRepository: FakeCommunalRepository

    private val testScope = TestScope(testDispatcher)
    private lateinit var logBuffer: LogBuffer

    private val fakeAllowlist =
        listOf(
@@ -100,8 +101,8 @@ class CommunalWidgetRepositoryImplTest : SysuiTestCase() {
    fun setUp() {
        MockitoAnnotations.initMocks(this)

        logBuffer = FakeLogBuffer.Factory.create()
        communalRepository = FakeCommunalRepository()
        logBuffer = logcatLogBuffer(name = "CommunalWidgetRepoImplTest")
        communalRepository = kosmos.fakeCommunalRepository

        communalEnabled(true)
        setAppWidgetIds(emptyList())
@@ -355,7 +356,7 @@ class CommunalWidgetRepositoryImplTest : SysuiTestCase() {
            appWidgetManagerOptional,
            appWidgetHost,
            testScope.backgroundScope,
            testDispatcher,
            kosmos.testDispatcher,
            fakeBroadcastDispatcher,
            communalRepository,
            communalWidgetHost,
+23 −20
Original line number Diff line number Diff line
@@ -28,6 +28,11 @@ import com.android.systemui.communal.data.repository.FakeCommunalPrefsRepository
import com.android.systemui.communal.data.repository.FakeCommunalRepository
import com.android.systemui.communal.data.repository.FakeCommunalTutorialRepository
import com.android.systemui.communal.data.repository.FakeCommunalWidgetRepository
import com.android.systemui.communal.data.repository.fakeCommunalMediaRepository
import com.android.systemui.communal.data.repository.fakeCommunalPrefsRepository
import com.android.systemui.communal.data.repository.fakeCommunalRepository
import com.android.systemui.communal.data.repository.fakeCommunalTutorialRepository
import com.android.systemui.communal.data.repository.fakeCommunalWidgetRepository
import com.android.systemui.communal.domain.model.CommunalContentModel
import com.android.systemui.communal.shared.model.CommunalContentSize
import com.android.systemui.communal.shared.model.CommunalSceneKey
@@ -36,15 +41,19 @@ import com.android.systemui.communal.shared.model.ObservableCommunalTransitionSt
import com.android.systemui.communal.widgets.EditWidgetsActivityStarter
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository
import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository
import com.android.systemui.keyguard.domain.interactor.communalInteractor
import com.android.systemui.keyguard.domain.interactor.editWidgetsActivityStarter
import com.android.systemui.kosmos.testScope
import com.android.systemui.smartspace.data.repository.FakeSmartspaceRepository
import com.android.systemui.smartspace.data.repository.fakeSmartspaceRepository
import com.android.systemui.testKosmos
import com.android.systemui.util.mockito.mock
import com.android.systemui.util.mockito.whenever
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.test.StandardTestDispatcher
import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.test.runCurrent
import kotlinx.coroutines.test.runTest
import org.junit.Before
@@ -52,13 +61,13 @@ import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mockito.mock
import org.mockito.Mockito.verify
import org.mockito.MockitoAnnotations

@SmallTest
@OptIn(ExperimentalCoroutinesApi::class)
@RunWith(AndroidJUnit4::class)
class CommunalInteractorTest : SysuiTestCase() {
    private lateinit var testScope: TestScope
    private val kosmos = testKosmos()
    private val testScope = kosmos.testScope

    private lateinit var tutorialRepository: FakeCommunalTutorialRepository
    private lateinit var communalRepository: FakeCommunalRepository
@@ -73,22 +82,16 @@ class CommunalInteractorTest : SysuiTestCase() {

    @Before
    fun setUp() {
        MockitoAnnotations.initMocks(this)

        testScope = TestScope(StandardTestDispatcher())

        val withDeps = CommunalInteractorFactory.create(testScope)

        tutorialRepository = withDeps.tutorialRepository
        communalRepository = withDeps.communalRepository
        mediaRepository = withDeps.mediaRepository
        widgetRepository = withDeps.widgetRepository
        smartspaceRepository = withDeps.smartspaceRepository
        keyguardRepository = withDeps.keyguardRepository
        editWidgetsActivityStarter = withDeps.editWidgetsActivityStarter
        communalPrefsRepository = withDeps.communalPrefsRepository

        underTest = withDeps.communalInteractor
        tutorialRepository = kosmos.fakeCommunalTutorialRepository
        communalRepository = kosmos.fakeCommunalRepository
        mediaRepository = kosmos.fakeCommunalMediaRepository
        widgetRepository = kosmos.fakeCommunalWidgetRepository
        smartspaceRepository = kosmos.fakeSmartspaceRepository
        keyguardRepository = kosmos.fakeKeyguardRepository
        editWidgetsActivityStarter = kosmos.editWidgetsActivityStarter
        communalPrefsRepository = kosmos.fakeCommunalPrefsRepository

        underTest = kosmos.communalInteractor
    }

    @Test
+4 −3
Original line number Diff line number Diff line
@@ -104,18 +104,19 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
    private lateinit var dreamOverlayCallback:
        ArgumentCaptor<(DreamOverlayStateController.Callback)>
    @JvmField @Rule val mockito = MockitoJUnit.rule()
    private val testDispatcher = StandardTestDispatcher()
    private val testScope = TestScope(testDispatcher)
    private lateinit var mediaHierarchyManager: MediaHierarchyManager
    private lateinit var isQsBypassingShade: MutableStateFlow<Boolean>
    private lateinit var mediaFrame: ViewGroup
    private val configurationController = FakeConfigurationController()
    private val communalRepository = FakeCommunalRepository(isCommunalEnabled = true)
    private val communalRepository =
        FakeCommunalRepository(applicationScope = testScope.backgroundScope)
    private val communalInteractor =
        CommunalInteractorFactory.create(communalRepository = communalRepository).communalInteractor
    private val settings = FakeSettings()
    private lateinit var testableLooper: TestableLooper
    private lateinit var fakeHandler: FakeHandler
    private val testDispatcher = StandardTestDispatcher()
    private val testScope = TestScope(testDispatcher)

    @Before
    fun setup() {
+4 −1
Original line number Diff line number Diff line
@@ -18,7 +18,10 @@ package com.android.systemui.communal.data.repository

import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.Kosmos.Fixture
import com.android.systemui.kosmos.applicationCoroutineScope

val Kosmos.fakeCommunalRepository by Fixture { FakeCommunalRepository() }
val Kosmos.fakeCommunalRepository by Fixture {
    FakeCommunalRepository(applicationScope = applicationCoroutineScope)
}

val Kosmos.communalRepository by Fixture<CommunalRepository> { fakeCommunalRepository }
+23 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2024 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.systemui.communal.data.repository

import com.android.systemui.kosmos.Kosmos

val Kosmos.communalTutorialRepository by
    Kosmos.Fixture<CommunalTutorialRepository> { fakeCommunalTutorialRepository }
val Kosmos.fakeCommunalTutorialRepository by Kosmos.Fixture { FakeCommunalTutorialRepository() }
Loading