summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/Android.bp2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/domain/interactor/WifiInteractorImplTest.kt50
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelTest.kt240
3 files changed, 92 insertions, 200 deletions
diff --git a/packages/SystemUI/Android.bp b/packages/SystemUI/Android.bp
index e2599a3583c7..17037b0d94a2 100644
--- a/packages/SystemUI/Android.bp
+++ b/packages/SystemUI/Android.bp
@@ -307,6 +307,8 @@ filegroup {
"tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/WifiRepositorySwitcherTest.kt",
"tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/DisabledWifiRepositoryTest.kt",
"tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/WifiRepositoryImplTest.kt",
+ "tests/src/com/android/systemui/statusbar/pipeline/wifi/domain/interactor/WifiInteractorImplTest.kt",
+ "tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelTest.kt",
],
path: "tests/src",
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/domain/interactor/WifiInteractorImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/domain/interactor/WifiInteractorImplTest.kt
index fc2277b9c803..6fe88c100fdc 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/domain/interactor/WifiInteractorImplTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/domain/interactor/WifiInteractorImplTest.kt
@@ -17,7 +17,9 @@
package com.android.systemui.statusbar.pipeline.wifi.domain.interactor
import android.net.wifi.WifiManager
+import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
+import com.android.systemui.RoboPilotTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.statusbar.pipeline.shared.data.model.ConnectivitySlot
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
@@ -25,18 +27,22 @@ import com.android.systemui.statusbar.pipeline.shared.data.repository.FakeConnec
import com.android.systemui.statusbar.pipeline.wifi.data.repository.FakeWifiRepository
import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
-import kotlinx.coroutines.runBlocking
+import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.runCurrent
+import kotlinx.coroutines.test.runTest
import kotlinx.coroutines.yield
import org.junit.Before
import org.junit.Test
+import org.junit.runner.RunWith
@OptIn(ExperimentalCoroutinesApi::class)
@Suppress("EXPERIMENTAL_IS_NOT_ENABLED")
@SmallTest
+@RoboPilotTest
+@RunWith(AndroidJUnit4::class)
class WifiInteractorImplTest : SysuiTestCase() {
private lateinit var underTest: WifiInteractor
@@ -44,6 +50,8 @@ class WifiInteractorImplTest : SysuiTestCase() {
private lateinit var connectivityRepository: FakeConnectivityRepository
private lateinit var wifiRepository: FakeWifiRepository
+ private val testScope = TestScope()
+
@Before
fun setUp() {
connectivityRepository = FakeConnectivityRepository()
@@ -53,11 +61,12 @@ class WifiInteractorImplTest : SysuiTestCase() {
@Test
fun ssid_unavailableNetwork_outputsNull() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
wifiRepository.setWifiNetwork(WifiNetworkModel.Unavailable)
var latest: String? = "default"
val job = underTest.ssid.onEach { latest = it }.launchIn(this)
+ runCurrent()
assertThat(latest).isNull()
@@ -66,11 +75,12 @@ class WifiInteractorImplTest : SysuiTestCase() {
@Test
fun ssid_inactiveNetwork_outputsNull() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
wifiRepository.setWifiNetwork(WifiNetworkModel.Inactive)
var latest: String? = "default"
val job = underTest.ssid.onEach { latest = it }.launchIn(this)
+ runCurrent()
assertThat(latest).isNull()
@@ -79,13 +89,14 @@ class WifiInteractorImplTest : SysuiTestCase() {
@Test
fun ssid_carrierMergedNetwork_outputsNull() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
wifiRepository.setWifiNetwork(
WifiNetworkModel.CarrierMerged(networkId = 1, subscriptionId = 2, level = 1)
)
var latest: String? = "default"
val job = underTest.ssid.onEach { latest = it }.launchIn(this)
+ runCurrent()
assertThat(latest).isNull()
@@ -94,7 +105,7 @@ class WifiInteractorImplTest : SysuiTestCase() {
@Test
fun ssid_isPasspointAccessPoint_outputsPasspointName() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
wifiRepository.setWifiNetwork(
WifiNetworkModel.Active(
networkId = 1,
@@ -106,6 +117,7 @@ class WifiInteractorImplTest : SysuiTestCase() {
var latest: String? = null
val job = underTest.ssid.onEach { latest = it }.launchIn(this)
+ runCurrent()
assertThat(latest).isEqualTo("friendly")
@@ -114,7 +126,7 @@ class WifiInteractorImplTest : SysuiTestCase() {
@Test
fun ssid_isOnlineSignUpForPasspoint_outputsPasspointName() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
wifiRepository.setWifiNetwork(
WifiNetworkModel.Active(
networkId = 1,
@@ -126,6 +138,7 @@ class WifiInteractorImplTest : SysuiTestCase() {
var latest: String? = null
val job = underTest.ssid.onEach { latest = it }.launchIn(this)
+ runCurrent()
assertThat(latest).isEqualTo("friendly")
@@ -134,7 +147,7 @@ class WifiInteractorImplTest : SysuiTestCase() {
@Test
fun ssid_unknownSsid_outputsNull() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
wifiRepository.setWifiNetwork(
WifiNetworkModel.Active(
networkId = 1,
@@ -145,6 +158,7 @@ class WifiInteractorImplTest : SysuiTestCase() {
var latest: String? = "default"
val job = underTest.ssid.onEach { latest = it }.launchIn(this)
+ runCurrent()
assertThat(latest).isNull()
@@ -153,7 +167,7 @@ class WifiInteractorImplTest : SysuiTestCase() {
@Test
fun ssid_validSsid_outputsSsid() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
wifiRepository.setWifiNetwork(
WifiNetworkModel.Active(
networkId = 1,
@@ -164,6 +178,7 @@ class WifiInteractorImplTest : SysuiTestCase() {
var latest: String? = null
val job = underTest.ssid.onEach { latest = it }.launchIn(this)
+ runCurrent()
assertThat(latest).isEqualTo("MyAwesomeWifiNetwork")
@@ -172,7 +187,7 @@ class WifiInteractorImplTest : SysuiTestCase() {
@Test
fun isEnabled_matchesRepoIsEnabled() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: Boolean? = null
val job = underTest.isEnabled.onEach { latest = it }.launchIn(this)
@@ -193,7 +208,7 @@ class WifiInteractorImplTest : SysuiTestCase() {
@Test
fun isDefault_matchesRepoIsDefault() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: Boolean? = null
val job = underTest.isDefault.onEach { latest = it }.launchIn(this)
@@ -214,7 +229,7 @@ class WifiInteractorImplTest : SysuiTestCase() {
@Test
fun wifiNetwork_matchesRepoWifiNetwork() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
val wifiNetwork =
WifiNetworkModel.Active(
networkId = 45,
@@ -227,6 +242,7 @@ class WifiInteractorImplTest : SysuiTestCase() {
var latest: WifiNetworkModel? = null
val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ runCurrent()
assertThat(latest).isEqualTo(wifiNetwork)
@@ -235,7 +251,7 @@ class WifiInteractorImplTest : SysuiTestCase() {
@Test
fun activity_matchesRepoWifiActivity() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: DataActivityModel? = null
val job = underTest.activity.onEach { latest = it }.launchIn(this)
@@ -259,11 +275,12 @@ class WifiInteractorImplTest : SysuiTestCase() {
@Test
fun isForceHidden_repoHasWifiHidden_outputsTrue() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
connectivityRepository.setForceHiddenIcons(setOf(ConnectivitySlot.WIFI))
var latest: Boolean? = null
val job = underTest.isForceHidden.onEach { latest = it }.launchIn(this)
+ runCurrent()
assertThat(latest).isTrue()
@@ -272,16 +289,15 @@ class WifiInteractorImplTest : SysuiTestCase() {
@Test
fun isForceHidden_repoDoesNotHaveWifiHidden_outputsFalse() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
connectivityRepository.setForceHiddenIcons(setOf())
var latest: Boolean? = null
val job = underTest.isForceHidden.onEach { latest = it }.launchIn(this)
+ runCurrent()
assertThat(latest).isFalse()
job.cancel()
}
}
-
-private val IMMEDIATE = Dispatchers.Main.immediate
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelTest.kt
index cb469ead83cb..bdeba2a2f4c8 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelTest.kt
@@ -16,8 +16,11 @@
package com.android.systemui.statusbar.pipeline.wifi.ui.viewmodel
+import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
+import com.android.systemui.RoboPilotTest
import com.android.systemui.SysuiTestCase
+import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.log.table.TableLogBuffer
import com.android.systemui.statusbar.phone.StatusBarLocation
import com.android.systemui.statusbar.pipeline.airplane.data.repository.FakeAirplaneModeRepository
@@ -36,23 +39,19 @@ import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkMode
import com.android.systemui.statusbar.pipeline.wifi.ui.model.WifiIcon
import com.android.systemui.statusbar.pipeline.wifi.ui.viewmodel.LocationBasedWifiViewModel.Companion.viewModelForLocation
import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.cancel
import kotlinx.coroutines.flow.MutableStateFlow
-import kotlinx.coroutines.flow.launchIn
-import kotlinx.coroutines.flow.onEach
-import kotlinx.coroutines.runBlocking
-import kotlinx.coroutines.yield
-import org.junit.After
+import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.runTest
import org.junit.Before
import org.junit.Test
+import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.Mockito.`when` as whenever
import org.mockito.MockitoAnnotations
-@Suppress("EXPERIMENTAL_IS_NOT_ENABLED")
@SmallTest
+@RoboPilotTest
+@RunWith(AndroidJUnit4::class)
class WifiViewModelTest : SysuiTestCase() {
private lateinit var underTest: WifiViewModel
@@ -66,7 +65,7 @@ class WifiViewModelTest : SysuiTestCase() {
private lateinit var interactor: WifiInteractor
private lateinit var airplaneModeViewModel: AirplaneModeViewModel
private val shouldShowSignalSpacerProviderFlow = MutableStateFlow(false)
- private lateinit var scope: CoroutineScope
+ private val testScope = TestScope()
@Before
fun setUp() {
@@ -76,7 +75,6 @@ class WifiViewModelTest : SysuiTestCase() {
wifiRepository = FakeWifiRepository()
wifiRepository.setIsWifiEnabled(true)
interactor = WifiInteractorImpl(connectivityRepository, wifiRepository)
- scope = CoroutineScope(IMMEDIATE)
airplaneModeViewModel =
AirplaneModeViewModelImpl(
AirplaneModeInteractor(
@@ -84,17 +82,12 @@ class WifiViewModelTest : SysuiTestCase() {
connectivityRepository,
),
tableLogBuffer,
- scope,
+ testScope.backgroundScope,
)
createAndSetViewModel()
}
- @After
- fun tearDown() {
- scope.cancel()
- }
-
// See [WifiViewModelIconParameterizedTest] for additional view model tests.
// Note on testing: [WifiViewModel] exposes 3 different instances of
@@ -104,104 +97,65 @@ class WifiViewModelTest : SysuiTestCase() {
@Test
fun wifiIcon_allLocationViewModelsReceiveSameData() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
val home = viewModelForLocation(underTest, StatusBarLocation.HOME)
val keyguard = viewModelForLocation(underTest, StatusBarLocation.KEYGUARD)
val qs = viewModelForLocation(underTest, StatusBarLocation.QS)
- var latestHome: WifiIcon? = null
- val jobHome = home.wifiIcon.onEach { latestHome = it }.launchIn(this)
-
- var latestKeyguard: WifiIcon? = null
- val jobKeyguard = keyguard.wifiIcon.onEach { latestKeyguard = it }.launchIn(this)
-
- var latestQs: WifiIcon? = null
- val jobQs = qs.wifiIcon.onEach { latestQs = it }.launchIn(this)
+ val latestHome by collectLastValue(home.wifiIcon)
+ val latestKeyguard by collectLastValue(keyguard.wifiIcon)
+ val latestQs by collectLastValue(qs.wifiIcon)
wifiRepository.setWifiNetwork(
WifiNetworkModel.Active(NETWORK_ID, isValidated = true, level = 1)
)
- yield()
assertThat(latestHome).isInstanceOf(WifiIcon.Visible::class.java)
assertThat(latestHome).isEqualTo(latestKeyguard)
assertThat(latestKeyguard).isEqualTo(latestQs)
-
- jobHome.cancel()
- jobKeyguard.cancel()
- jobQs.cancel()
}
@Test
fun activity_showActivityConfigFalse_outputsFalse() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(false)
createAndSetViewModel()
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
- var activityIn: Boolean? = null
- val activityInJob =
- underTest.isActivityInViewVisible.onEach { activityIn = it }.launchIn(this)
-
- var activityOut: Boolean? = null
- val activityOutJob =
- underTest.isActivityOutViewVisible.onEach { activityOut = it }.launchIn(this)
-
- var activityContainer: Boolean? = null
- val activityContainerJob =
- underTest.isActivityContainerVisible
- .onEach { activityContainer = it }
- .launchIn(this)
+ val activityIn by collectLastValue(underTest.isActivityInViewVisible)
+ val activityOut by collectLastValue(underTest.isActivityOutViewVisible)
+ val activityContainer by collectLastValue(underTest.isActivityContainerVisible)
// Verify that on launch, we receive false.
assertThat(activityIn).isFalse()
assertThat(activityOut).isFalse()
assertThat(activityContainer).isFalse()
-
- activityInJob.cancel()
- activityOutJob.cancel()
- activityContainerJob.cancel()
}
@Test
fun activity_showActivityConfigFalse_noUpdatesReceived() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(false)
createAndSetViewModel()
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
- var activityIn: Boolean? = null
- val activityInJob =
- underTest.isActivityInViewVisible.onEach { activityIn = it }.launchIn(this)
-
- var activityOut: Boolean? = null
- val activityOutJob =
- underTest.isActivityOutViewVisible.onEach { activityOut = it }.launchIn(this)
-
- var activityContainer: Boolean? = null
- val activityContainerJob =
- underTest.isActivityContainerVisible
- .onEach { activityContainer = it }
- .launchIn(this)
+ val activityIn by collectLastValue(underTest.isActivityInViewVisible)
+ val activityOut by collectLastValue(underTest.isActivityOutViewVisible)
+ val activityContainer by collectLastValue(underTest.isActivityContainerVisible)
// WHEN we update the repo to have activity
val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = true)
wifiRepository.setWifiActivity(activity)
- yield()
// THEN we didn't update to the new activity (because our config is false)
assertThat(activityIn).isFalse()
assertThat(activityOut).isFalse()
assertThat(activityContainer).isFalse()
-
- activityInJob.cancel()
- activityOutJob.cancel()
- activityContainerJob.cancel()
}
@Test
fun activity_nullSsid_outputsFalse() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
createAndSetViewModel()
@@ -209,38 +163,23 @@ class WifiViewModelTest : SysuiTestCase() {
WifiNetworkModel.Active(NETWORK_ID, ssid = null, level = 1)
)
- var activityIn: Boolean? = null
- val activityInJob =
- underTest.isActivityInViewVisible.onEach { activityIn = it }.launchIn(this)
-
- var activityOut: Boolean? = null
- val activityOutJob =
- underTest.isActivityOutViewVisible.onEach { activityOut = it }.launchIn(this)
-
- var activityContainer: Boolean? = null
- val activityContainerJob =
- underTest.isActivityContainerVisible
- .onEach { activityContainer = it }
- .launchIn(this)
+ val activityIn by collectLastValue(underTest.isActivityInViewVisible)
+ val activityOut by collectLastValue(underTest.isActivityOutViewVisible)
+ val activityContainer by collectLastValue(underTest.isActivityContainerVisible)
// WHEN we update the repo to have activity
val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = true)
wifiRepository.setWifiActivity(activity)
- yield()
// THEN we still output false because our network's SSID is null
assertThat(activityIn).isFalse()
assertThat(activityOut).isFalse()
assertThat(activityContainer).isFalse()
-
- activityInJob.cancel()
- activityOutJob.cancel()
- activityContainerJob.cancel()
}
@Test
fun activity_allLocationViewModelsReceiveSameData() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
createAndSetViewModel()
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
@@ -249,250 +188,187 @@ class WifiViewModelTest : SysuiTestCase() {
val keyguard = viewModelForLocation(underTest, StatusBarLocation.KEYGUARD)
val qs = viewModelForLocation(underTest, StatusBarLocation.QS)
- var latestHome: Boolean? = null
- val jobHome = home.isActivityInViewVisible.onEach { latestHome = it }.launchIn(this)
-
- var latestKeyguard: Boolean? = null
- val jobKeyguard =
- keyguard.isActivityInViewVisible.onEach { latestKeyguard = it }.launchIn(this)
-
- var latestQs: Boolean? = null
- val jobQs = qs.isActivityInViewVisible.onEach { latestQs = it }.launchIn(this)
+ val latestHome by collectLastValue(home.isActivityInViewVisible)
+ val latestKeyguard by collectLastValue(keyguard.isActivityInViewVisible)
+ val latestQs by collectLastValue(qs.isActivityInViewVisible)
val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = true)
wifiRepository.setWifiActivity(activity)
- yield()
assertThat(latestHome).isTrue()
assertThat(latestKeyguard).isTrue()
assertThat(latestQs).isTrue()
-
- jobHome.cancel()
- jobKeyguard.cancel()
- jobQs.cancel()
}
@Test
fun activityIn_hasActivityInTrue_outputsTrue() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
createAndSetViewModel()
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
- var latest: Boolean? = null
- val job = underTest.isActivityInViewVisible.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.isActivityInViewVisible)
val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = false)
wifiRepository.setWifiActivity(activity)
- yield()
assertThat(latest).isTrue()
-
- job.cancel()
}
@Test
fun activityIn_hasActivityInFalse_outputsFalse() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
createAndSetViewModel()
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
- var latest: Boolean? = null
- val job = underTest.isActivityInViewVisible.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.isActivityInViewVisible)
val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = true)
wifiRepository.setWifiActivity(activity)
- yield()
assertThat(latest).isFalse()
-
- job.cancel()
}
@Test
fun activityOut_hasActivityOutTrue_outputsTrue() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
createAndSetViewModel()
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
- var latest: Boolean? = null
- val job = underTest.isActivityOutViewVisible.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.isActivityOutViewVisible)
val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = true)
wifiRepository.setWifiActivity(activity)
- yield()
assertThat(latest).isTrue()
-
- job.cancel()
}
@Test
fun activityOut_hasActivityOutFalse_outputsFalse() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
createAndSetViewModel()
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
- var latest: Boolean? = null
- val job = underTest.isActivityOutViewVisible.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.isActivityOutViewVisible)
val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = false)
wifiRepository.setWifiActivity(activity)
- yield()
assertThat(latest).isFalse()
-
- job.cancel()
}
@Test
fun activityContainer_hasActivityInTrue_outputsTrue() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
createAndSetViewModel()
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
- var latest: Boolean? = null
- val job = underTest.isActivityContainerVisible.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.isActivityContainerVisible)
val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = false)
wifiRepository.setWifiActivity(activity)
- yield()
assertThat(latest).isTrue()
-
- job.cancel()
}
@Test
fun activityContainer_hasActivityOutTrue_outputsTrue() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
createAndSetViewModel()
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
- var latest: Boolean? = null
- val job = underTest.isActivityContainerVisible.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.isActivityContainerVisible)
val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = true)
wifiRepository.setWifiActivity(activity)
- yield()
assertThat(latest).isTrue()
-
- job.cancel()
}
@Test
fun activityContainer_inAndOutTrue_outputsTrue() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
createAndSetViewModel()
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
- var latest: Boolean? = null
- val job = underTest.isActivityContainerVisible.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.isActivityContainerVisible)
val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = true)
wifiRepository.setWifiActivity(activity)
- yield()
assertThat(latest).isTrue()
-
- job.cancel()
}
@Test
fun activityContainer_inAndOutFalse_outputsFalse() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
createAndSetViewModel()
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
- var latest: Boolean? = null
- val job = underTest.isActivityContainerVisible.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.isActivityContainerVisible)
val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = false)
wifiRepository.setWifiActivity(activity)
- yield()
assertThat(latest).isFalse()
-
- job.cancel()
}
@Test
fun airplaneSpacer_notAirplaneMode_outputsFalse() =
- runBlocking(IMMEDIATE) {
- var latest: Boolean? = null
- val job = underTest.isAirplaneSpacerVisible.onEach { latest = it }.launchIn(this)
+ testScope.runTest {
+ val latest by collectLastValue(underTest.isAirplaneSpacerVisible)
airplaneModeRepository.setIsAirplaneMode(false)
- yield()
assertThat(latest).isFalse()
-
- job.cancel()
}
@Test
fun airplaneSpacer_airplaneForceHidden_outputsFalse() =
- runBlocking(IMMEDIATE) {
- var latest: Boolean? = null
- val job = underTest.isAirplaneSpacerVisible.onEach { latest = it }.launchIn(this)
+ testScope.runTest {
+ val latest by collectLastValue(underTest.isAirplaneSpacerVisible)
airplaneModeRepository.setIsAirplaneMode(true)
connectivityRepository.setForceHiddenIcons(setOf(ConnectivitySlot.AIRPLANE))
- yield()
assertThat(latest).isFalse()
-
- job.cancel()
}
@Test
fun airplaneSpacer_airplaneIconVisible_outputsTrue() =
- runBlocking(IMMEDIATE) {
- var latest: Boolean? = null
- val job = underTest.isAirplaneSpacerVisible.onEach { latest = it }.launchIn(this)
+ testScope.runTest {
+ val latest by collectLastValue(underTest.isAirplaneSpacerVisible)
airplaneModeRepository.setIsAirplaneMode(true)
- yield()
assertThat(latest).isTrue()
-
- job.cancel()
}
@Test
fun signalSpacer_firstSubNotShowingNetworkTypeIcon_outputsFalse() =
- runBlocking(IMMEDIATE) {
- var latest: Boolean? = null
- val job = underTest.isSignalSpacerVisible.onEach { latest = it }.launchIn(this)
+ testScope.runTest {
+ val latest by collectLastValue(underTest.isSignalSpacerVisible)
shouldShowSignalSpacerProviderFlow.value = false
- yield()
assertThat(latest).isFalse()
-
- job.cancel()
}
@Test
fun signalSpacer_firstSubIsShowingNetworkTypeIcon_outputsTrue() =
- runBlocking(IMMEDIATE) {
- var latest: Boolean? = null
- val job = underTest.isSignalSpacerVisible.onEach { latest = it }.launchIn(this)
+ testScope.runTest {
+ val latest by collectLastValue(underTest.isSignalSpacerVisible)
shouldShowSignalSpacerProviderFlow.value = true
- yield()
assertThat(latest).isTrue()
-
- job.cancel()
}
private fun createAndSetViewModel() {
@@ -507,7 +383,7 @@ class WifiViewModelTest : SysuiTestCase() {
context,
tableLogBuffer,
interactor,
- scope,
+ testScope.backgroundScope,
wifiConstants,
)
}
@@ -518,5 +394,3 @@ class WifiViewModelTest : SysuiTestCase() {
WifiNetworkModel.Active(NETWORK_ID, ssid = "AB", level = 1)
}
}
-
-private val IMMEDIATE = Dispatchers.Main.immediate