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

Commit 507f5640 authored by Caitlin Shkuratov's avatar Caitlin Shkuratov
Browse files

[SB][Call] Update CallChipInteractorTest to use helper methods.

Also formats CallChipInteractor.

Bug: 372657935
Flag: com.android.systemui.status_bar_chips_modernization
Test: atest CallChipInteractorTest
Change-Id: Ic53a5147dfc640e373a206bc137f27d395cde211
parent cd9fba82
Loading
Loading
Loading
Loading
+13 −12
Original line number Diff line number Diff line
@@ -20,11 +20,14 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.testScope
import com.android.systemui.kosmos.collectLastValue
import com.android.systemui.kosmos.runTest
import com.android.systemui.kosmos.useUnconfinedTestDispatcher
import com.android.systemui.statusbar.phone.ongoingcall.data.repository.ongoingCallRepository
import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallModel
import com.android.systemui.statusbar.phone.ongoingcall.shared.model.inCallModel
import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallTestHelper.addOngoingCallState
import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallTestHelper.removeOngoingCallState
import com.android.systemui.testKosmos
import com.google.common.truth.Truth.assertThat
import kotlin.test.Test
import kotlinx.coroutines.test.runTest
@@ -33,22 +36,20 @@ import org.junit.runner.RunWith
@SmallTest
@RunWith(AndroidJUnit4::class)
class CallChipInteractorTest : SysuiTestCase() {
    val kosmos = Kosmos()
    val kosmos = testKosmos().useUnconfinedTestDispatcher()
    val repo = kosmos.ongoingCallRepository

    val underTest = kosmos.callChipInteractor

    @Test
    fun ongoingCallState_matchesRepo() =
        kosmos.testScope.runTest {
    fun ongoingCallState_matchesState() =
        kosmos.runTest {
            val latest by collectLastValue(underTest.ongoingCallState)

            val inCall = inCallModel(startTimeMs = 1000)
            repo.setOngoingCallState(inCall)
            assertThat(latest).isEqualTo(inCall)
            addOngoingCallState(key = "testKey")
            assertThat(latest).isInstanceOf(OngoingCallModel.InCall::class.java)

            val noCall = OngoingCallModel.NoCall
            repo.setOngoingCallState(noCall)
            assertThat(latest).isEqualTo(noCall)
            removeOngoingCallState(key = "testKey")
            assertThat(latest).isEqualTo(OngoingCallModel.NoCall)
        }
}
+9 −17
Original line number Diff line number Diff line
@@ -22,9 +22,9 @@ import com.android.systemui.log.LogBuffer
import com.android.systemui.log.core.LogLevel
import com.android.systemui.statusbar.chips.StatusBarChipLogTags.pad
import com.android.systemui.statusbar.chips.StatusBarChipsLog
import com.android.systemui.statusbar.phone.ongoingcall.StatusBarChipsModernization
import com.android.systemui.statusbar.phone.ongoingcall.data.repository.OngoingCallRepository
import com.android.systemui.statusbar.phone.ongoingcall.domain.interactor.OngoingCallInteractor
import com.android.systemui.statusbar.phone.ongoingcall.StatusBarChipsModernization
import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallModel
import javax.inject.Inject
import kotlinx.coroutines.CoroutineScope
@@ -44,23 +44,15 @@ constructor(
    @StatusBarChipsLog private val logger: LogBuffer,
) {
    val ongoingCallState: StateFlow<OngoingCallModel> =
        (if (StatusBarChipsModernization.isEnabled)
        (if (StatusBarChipsModernization.isEnabled) {
                ongoingCallInteractor.ongoingCallState
        else
            repository.ongoingCallState)
            } else {
                repository.ongoingCallState
            })
            .onEach {
                logger.log(
                    TAG,
                    LogLevel.INFO,
                    { str1 = it::class.simpleName },
                    { "State: $str1" }
                )
                logger.log(TAG, LogLevel.INFO, { str1 = it::class.simpleName }, { "State: $str1" })
            }
            .stateIn(
                scope,
                SharingStarted.Lazily,
                OngoingCallModel.NoCall
            )
            .stateIn(scope, SharingStarted.Lazily, OngoingCallModel.NoCall)

    companion object {
        private val TAG = "OngoingCall".pad()