summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Caitlin Shkuratov <caitlinshk@google.com> 2023-07-24 19:25:34 +0000
committer Caitlin Shkuratov <caitlinshk@google.com> 2023-07-24 19:58:33 +0000
commit1cf4791b0fe12f9e15d054af910d22c29510f47e (patch)
tree4761be57e760fd60e9a9169ceb565805757a4838
parent872d54fb4d66c02a0207955af016aca4208cd0a1 (diff)
[Status Bar] Move WifiRepositoryImplTest to newer test APIs.
Bug: 292534484 Test: atest WifiRepositoryImplTest Change-Id: I4fb5b8b5ec7b9812af8f837e4cacb9467a8b236b
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/WifiRepositoryImplTest.kt327
1 files changed, 96 insertions, 231 deletions
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/WifiRepositoryImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/WifiRepositoryImplTest.kt
index 7007345c175c..e874a00865d0 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/WifiRepositoryImplTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/WifiRepositoryImplTest.kt
@@ -34,6 +34,7 @@ import android.net.wifi.WifiManager.UNKNOWN_SSID
import android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
+import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.log.table.TableLogBuffer
import com.android.systemui.statusbar.pipeline.shared.data.model.ConnectivitySlots
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
@@ -46,20 +47,19 @@ import com.android.systemui.util.concurrency.FakeExecutor
import com.android.systemui.util.mockito.any
import com.android.systemui.util.mockito.argumentCaptor
import com.android.systemui.util.mockito.mock
+import com.android.systemui.util.mockito.whenever
import com.android.systemui.util.time.FakeSystemClock
import com.google.common.truth.Truth.assertThat
import java.util.concurrent.Executor
import kotlinx.coroutines.ExperimentalCoroutinesApi
-import kotlinx.coroutines.flow.launchIn
-import kotlinx.coroutines.flow.onEach
+import kotlinx.coroutines.test.StandardTestDispatcher
import kotlinx.coroutines.test.TestScope
-import kotlinx.coroutines.test.UnconfinedTestDispatcher
+import kotlinx.coroutines.test.runCurrent
import kotlinx.coroutines.test.runTest
import org.junit.Before
import org.junit.Test
import org.mockito.Mock
import org.mockito.Mockito.verify
-import org.mockito.Mockito.`when` as whenever
import org.mockito.MockitoAnnotations
@Suppress("EXPERIMENTAL_IS_NOT_ENABLED")
@@ -76,7 +76,7 @@ class WifiRepositoryImplTest : SysuiTestCase() {
private lateinit var executor: Executor
private lateinit var connectivityRepository: ConnectivityRepository
- private val dispatcher = UnconfinedTestDispatcher()
+ private val dispatcher = StandardTestDispatcher()
private val testScope = TestScope(dispatcher)
@Before
@@ -104,6 +104,7 @@ class WifiRepositoryImplTest : SysuiTestCase() {
whenever(wifiManager.isWifiEnabled).thenReturn(true)
underTest = createRepo()
+ testScope.runCurrent()
assertThat(underTest.isWifiEnabled.value).isTrue()
}
@@ -111,53 +112,43 @@ class WifiRepositoryImplTest : SysuiTestCase() {
@Test
fun isWifiEnabled_networkCapabilitiesChanged_valueUpdated() =
testScope.runTest {
- // We need to call launch on the flows so that they start updating
- val networkJob = underTest.wifiNetwork.launchIn(this)
- val enabledJob = underTest.isWifiEnabled.launchIn(this)
+ collectLastValue(underTest.wifiNetwork)
+ val latest by collectLastValue(underTest.isWifiEnabled)
whenever(wifiManager.isWifiEnabled).thenReturn(true)
getNetworkCallback()
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
- assertThat(underTest.isWifiEnabled.value).isTrue()
+ assertThat(latest).isTrue()
whenever(wifiManager.isWifiEnabled).thenReturn(false)
getNetworkCallback()
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
- assertThat(underTest.isWifiEnabled.value).isFalse()
-
- networkJob.cancel()
- enabledJob.cancel()
+ assertThat(latest).isFalse()
}
@Test
fun isWifiEnabled_networkLost_valueUpdated() =
testScope.runTest {
- // We need to call launch on the flows so that they start updating
- val networkJob = underTest.wifiNetwork.launchIn(this)
- val enabledJob = underTest.isWifiEnabled.launchIn(this)
+ collectLastValue(underTest.wifiNetwork)
+ val latest by collectLastValue(underTest.isWifiEnabled)
whenever(wifiManager.isWifiEnabled).thenReturn(true)
getNetworkCallback().onLost(NETWORK)
- assertThat(underTest.isWifiEnabled.value).isTrue()
+ assertThat(latest).isTrue()
whenever(wifiManager.isWifiEnabled).thenReturn(false)
getNetworkCallback().onLost(NETWORK)
- assertThat(underTest.isWifiEnabled.value).isFalse()
-
- networkJob.cancel()
- enabledJob.cancel()
+ assertThat(latest).isFalse()
}
@Test
fun isWifiEnabled_intentsReceived_valueUpdated() =
testScope.runTest {
- underTest = createRepo()
-
- val job = underTest.isWifiEnabled.launchIn(this)
+ val latest by collectLastValue(underTest.isWifiEnabled)
whenever(wifiManager.isWifiEnabled).thenReturn(true)
fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(
@@ -165,7 +156,7 @@ class WifiRepositoryImplTest : SysuiTestCase() {
Intent(WifiManager.WIFI_STATE_CHANGED_ACTION),
)
- assertThat(underTest.isWifiEnabled.value).isTrue()
+ assertThat(latest).isTrue()
whenever(wifiManager.isWifiEnabled).thenReturn(false)
fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(
@@ -173,76 +164,61 @@ class WifiRepositoryImplTest : SysuiTestCase() {
Intent(WifiManager.WIFI_STATE_CHANGED_ACTION),
)
- assertThat(underTest.isWifiEnabled.value).isFalse()
-
- job.cancel()
+ assertThat(latest).isFalse()
}
@Test
fun isWifiEnabled_bothIntentAndNetworkUpdates_valueAlwaysUpdated() =
testScope.runTest {
- underTest = createRepo()
-
- val networkJob = underTest.wifiNetwork.launchIn(this)
- val enabledJob = underTest.isWifiEnabled.launchIn(this)
+ collectLastValue(underTest.wifiNetwork)
+ val latest by collectLastValue(underTest.isWifiEnabled)
whenever(wifiManager.isWifiEnabled).thenReturn(false)
fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(
context,
Intent(WifiManager.WIFI_STATE_CHANGED_ACTION),
)
- assertThat(underTest.isWifiEnabled.value).isFalse()
+ assertThat(latest).isFalse()
whenever(wifiManager.isWifiEnabled).thenReturn(true)
getNetworkCallback().onLost(NETWORK)
- assertThat(underTest.isWifiEnabled.value).isTrue()
+ assertThat(latest).isTrue()
whenever(wifiManager.isWifiEnabled).thenReturn(false)
getNetworkCallback()
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
- assertThat(underTest.isWifiEnabled.value).isFalse()
+ assertThat(latest).isFalse()
whenever(wifiManager.isWifiEnabled).thenReturn(true)
fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(
context,
Intent(WifiManager.WIFI_STATE_CHANGED_ACTION),
)
- assertThat(underTest.isWifiEnabled.value).isTrue()
-
- networkJob.cancel()
- enabledJob.cancel()
+ assertThat(latest).isTrue()
}
@Test
fun isWifiDefault_initiallyGetsDefault() =
- testScope.runTest {
- val job = underTest.isWifiDefault.launchIn(this)
-
- assertThat(underTest.isWifiDefault.value).isFalse()
-
- job.cancel()
- }
+ testScope.runTest { assertThat(underTest.isWifiDefault.value).isFalse() }
@Test
fun isWifiDefault_wifiNetwork_isTrue() =
testScope.runTest {
- val job = underTest.isWifiDefault.launchIn(this)
+ val latest by collectLastValue(underTest.isWifiDefault)
val wifiInfo = mock<WifiInfo>().apply { whenever(this.ssid).thenReturn(SSID) }
getDefaultNetworkCallback()
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(wifiInfo))
- assertThat(underTest.isWifiDefault.value).isTrue()
-
- job.cancel()
+ assertThat(latest).isTrue()
}
/** Regression test for b/266628069. */
@Test
fun isWifiDefault_transportInfoIsNotWifi_andNoWifiTransport_false() =
testScope.runTest {
- val job = underTest.isWifiDefault.launchIn(this)
+ val latest by collectLastValue(underTest.isWifiDefault)
val transportInfo =
VpnTransportInfo(
@@ -259,16 +235,14 @@ class WifiRepositoryImplTest : SysuiTestCase() {
getDefaultNetworkCallback().onCapabilitiesChanged(NETWORK, networkCapabilities)
- assertThat(underTest.isWifiDefault.value).isFalse()
-
- job.cancel()
+ assertThat(latest).isFalse()
}
/** Regression test for b/266628069. */
@Test
fun isWifiDefault_transportInfoIsNotWifi_butHasWifiTransport_true() =
testScope.runTest {
- val job = underTest.isWifiDefault.launchIn(this)
+ val latest by collectLastValue(underTest.isWifiDefault)
val transportInfo =
VpnTransportInfo(
@@ -285,15 +259,13 @@ class WifiRepositoryImplTest : SysuiTestCase() {
getDefaultNetworkCallback().onCapabilitiesChanged(NETWORK, networkCapabilities)
- assertThat(underTest.isWifiDefault.value).isTrue()
-
- job.cancel()
+ assertThat(latest).isTrue()
}
@Test
fun isWifiDefault_carrierMergedViaCellular_isTrue() =
testScope.runTest {
- val job = underTest.isWifiDefault.launchIn(this)
+ val latest by collectLastValue(underTest.isWifiDefault)
val carrierMergedInfo =
mock<WifiInfo>().apply { whenever(this.isCarrierMerged).thenReturn(true) }
@@ -307,15 +279,13 @@ class WifiRepositoryImplTest : SysuiTestCase() {
getDefaultNetworkCallback().onCapabilitiesChanged(NETWORK, capabilities)
- assertThat(underTest.isWifiDefault.value).isTrue()
-
- job.cancel()
+ assertThat(latest).isTrue()
}
@Test
fun isWifiDefault_carrierMergedViaCellular_withVcnTransport_isTrue() =
testScope.runTest {
- val job = underTest.isWifiDefault.launchIn(this)
+ val latest by collectLastValue(underTest.isWifiDefault)
val capabilities =
mock<NetworkCapabilities>().apply {
@@ -326,15 +296,13 @@ class WifiRepositoryImplTest : SysuiTestCase() {
getDefaultNetworkCallback().onCapabilitiesChanged(NETWORK, capabilities)
- assertThat(underTest.isWifiDefault.value).isTrue()
-
- job.cancel()
+ assertThat(latest).isTrue()
}
@Test
fun isWifiDefault_carrierMergedViaWifi_isTrue() =
testScope.runTest {
- val job = underTest.isWifiDefault.launchIn(this)
+ val latest by collectLastValue(underTest.isWifiDefault)
val carrierMergedInfo =
mock<WifiInfo>().apply { whenever(this.isCarrierMerged).thenReturn(true) }
@@ -348,15 +316,13 @@ class WifiRepositoryImplTest : SysuiTestCase() {
getDefaultNetworkCallback().onCapabilitiesChanged(NETWORK, capabilities)
- assertThat(underTest.isWifiDefault.value).isTrue()
-
- job.cancel()
+ assertThat(latest).isTrue()
}
@Test
fun isWifiDefault_carrierMergedViaWifi_withVcnTransport_isTrue() =
testScope.runTest {
- val job = underTest.isWifiDefault.launchIn(this)
+ val latest by collectLastValue(underTest.isWifiDefault)
val capabilities =
mock<NetworkCapabilities>().apply {
@@ -367,15 +333,13 @@ class WifiRepositoryImplTest : SysuiTestCase() {
getDefaultNetworkCallback().onCapabilitiesChanged(NETWORK, capabilities)
- assertThat(underTest.isWifiDefault.value).isTrue()
-
- job.cancel()
+ assertThat(latest).isTrue()
}
@Test
fun isWifiDefault_cellularAndWifiTransports_usesCellular_isTrue() =
testScope.runTest {
- val job = underTest.isWifiDefault.launchIn(this)
+ val latest by collectLastValue(underTest.isWifiDefault)
val capabilities =
mock<NetworkCapabilities>().apply {
@@ -386,15 +350,13 @@ class WifiRepositoryImplTest : SysuiTestCase() {
getDefaultNetworkCallback().onCapabilitiesChanged(NETWORK, capabilities)
- assertThat(underTest.isWifiDefault.value).isTrue()
-
- job.cancel()
+ assertThat(latest).isTrue()
}
@Test
fun isWifiDefault_cellularNotVcnNetwork_isFalse() =
testScope.runTest {
- val job = underTest.isWifiDefault.launchIn(this)
+ val latest by collectLastValue(underTest.isWifiDefault)
val capabilities =
mock<NetworkCapabilities>().apply {
@@ -404,15 +366,13 @@ class WifiRepositoryImplTest : SysuiTestCase() {
getDefaultNetworkCallback().onCapabilitiesChanged(NETWORK, capabilities)
- assertThat(underTest.isWifiDefault.value).isFalse()
-
- job.cancel()
+ assertThat(latest).isFalse()
}
@Test
fun isWifiDefault_isCarrierMergedViaUnderlyingWifi_isTrue() =
testScope.runTest {
- val job = underTest.isWifiDefault.launchIn(this)
+ val latest by collectLastValue(underTest.isWifiDefault)
val underlyingNetwork = mock<Network>()
val carrierMergedInfo =
@@ -439,15 +399,13 @@ class WifiRepositoryImplTest : SysuiTestCase() {
getDefaultNetworkCallback().onCapabilitiesChanged(NETWORK, mainCapabilities)
// THEN the wifi network is carrier merged, so wifi is default
- assertThat(underTest.isWifiDefault.value).isTrue()
-
- job.cancel()
+ assertThat(latest).isTrue()
}
@Test
fun isWifiDefault_isCarrierMergedViaUnderlyingCellular_isTrue() =
testScope.runTest {
- val job = underTest.isWifiDefault.launchIn(this)
+ val latest by collectLastValue(underTest.isWifiDefault)
val underlyingCarrierMergedNetwork = mock<Network>()
val carrierMergedInfo =
@@ -473,46 +431,38 @@ class WifiRepositoryImplTest : SysuiTestCase() {
getDefaultNetworkCallback().onCapabilitiesChanged(NETWORK, mainCapabilities)
// THEN the wifi network is carrier merged, so wifi is default
- assertThat(underTest.isWifiDefault.value).isTrue()
-
- job.cancel()
+ assertThat(latest).isTrue()
}
@Test
fun isWifiDefault_wifiNetworkLost_isFalse() =
testScope.runTest {
- val job = underTest.isWifiDefault.launchIn(this)
+ val latest by collectLastValue(underTest.isWifiDefault)
// First, add a network
getDefaultNetworkCallback()
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
- assertThat(underTest.isWifiDefault.value).isTrue()
+ assertThat(latest).isTrue()
// WHEN the network is lost
getDefaultNetworkCallback().onLost(NETWORK)
// THEN we update to false
- assertThat(underTest.isWifiDefault.value).isFalse()
-
- job.cancel()
+ assertThat(latest).isFalse()
}
@Test
fun wifiNetwork_initiallyGetsDefault() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
assertThat(latest).isEqualTo(WIFI_NETWORK_DEFAULT)
-
- job.cancel()
}
@Test
fun wifiNetwork_primaryWifiNetworkAdded_flowHasNetwork() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
val wifiInfo =
mock<WifiInfo>().apply {
@@ -528,15 +478,12 @@ class WifiRepositoryImplTest : SysuiTestCase() {
val latestActive = latest as WifiNetworkModel.Active
assertThat(latestActive.networkId).isEqualTo(NETWORK_ID)
assertThat(latestActive.ssid).isEqualTo(SSID)
-
- job.cancel()
}
@Test
fun wifiNetwork_isCarrierMerged_flowHasCarrierMerged() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
val wifiInfo =
mock<WifiInfo>().apply {
@@ -548,15 +495,12 @@ class WifiRepositoryImplTest : SysuiTestCase() {
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(wifiInfo))
assertThat(latest is WifiNetworkModel.CarrierMerged).isTrue()
-
- job.cancel()
}
@Test
fun wifiNetwork_isCarrierMergedViaUnderlyingWifi_flowHasCarrierMerged() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
val underlyingNetwork = mock<Network>()
val carrierMergedInfo =
@@ -585,15 +529,12 @@ class WifiRepositoryImplTest : SysuiTestCase() {
// THEN the wifi network is carrier merged
assertThat(latest is WifiNetworkModel.CarrierMerged).isTrue()
-
- job.cancel()
}
@Test
fun wifiNetwork_isCarrierMergedViaUnderlyingCellular_flowHasCarrierMerged() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
val underlyingCarrierMergedNetwork = mock<Network>()
val carrierMergedInfo =
@@ -623,15 +564,12 @@ class WifiRepositoryImplTest : SysuiTestCase() {
// THEN the wifi network is carrier merged
assertThat(latest is WifiNetworkModel.CarrierMerged).isTrue()
-
- job.cancel()
}
@Test
fun wifiNetwork_carrierMergedButInvalidSubId_flowHasInvalid() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
val wifiInfo =
mock<WifiInfo>().apply {
@@ -647,15 +585,12 @@ class WifiRepositoryImplTest : SysuiTestCase() {
)
assertThat(latest).isInstanceOf(WifiNetworkModel.Invalid::class.java)
-
- job.cancel()
}
@Test
fun wifiNetwork_isCarrierMerged_getsCorrectValues() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
val rssi = -57
val wifiInfo =
@@ -682,15 +617,12 @@ class WifiRepositoryImplTest : SysuiTestCase() {
assertThat(latestCarrierMerged.level).isEqualTo(2)
// numberOfLevels = maxSignalLevel + 1
assertThat(latestCarrierMerged.numberOfLevels).isEqualTo(6)
-
- job.cancel()
}
@Test
fun wifiNetwork_notValidated_networkNotValidated() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
getNetworkCallback()
.onCapabilitiesChanged(
@@ -699,15 +631,12 @@ class WifiRepositoryImplTest : SysuiTestCase() {
)
assertThat((latest as WifiNetworkModel.Active).isValidated).isFalse()
-
- job.cancel()
}
@Test
fun wifiNetwork_validated_networkValidated() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
getNetworkCallback()
.onCapabilitiesChanged(
@@ -716,15 +645,12 @@ class WifiRepositoryImplTest : SysuiTestCase() {
)
assertThat((latest as WifiNetworkModel.Active).isValidated).isTrue()
-
- job.cancel()
}
@Test
fun wifiNetwork_nonPrimaryWifiNetworkAdded_flowHasNoNetwork() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
val wifiInfo =
mock<WifiInfo>().apply {
@@ -736,16 +662,13 @@ class WifiRepositoryImplTest : SysuiTestCase() {
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(wifiInfo))
assertThat(latest is WifiNetworkModel.Inactive).isTrue()
-
- job.cancel()
}
/** Regression test for b/266628069. */
@Test
fun wifiNetwork_transportInfoIsNotWifi_flowHasNoNetwork() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
val transportInfo =
VpnTransportInfo(
@@ -756,15 +679,12 @@ class WifiRepositoryImplTest : SysuiTestCase() {
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(transportInfo))
assertThat(latest is WifiNetworkModel.Inactive).isTrue()
-
- job.cancel()
}
@Test
fun wifiNetwork_cellularVcnNetworkAdded_flowHasNetwork() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
val capabilities =
mock<NetworkCapabilities>().apply {
@@ -778,15 +698,12 @@ class WifiRepositoryImplTest : SysuiTestCase() {
val latestActive = latest as WifiNetworkModel.Active
assertThat(latestActive.networkId).isEqualTo(NETWORK_ID)
assertThat(latestActive.ssid).isEqualTo(SSID)
-
- job.cancel()
}
@Test
fun wifiNetwork_nonPrimaryCellularVcnNetworkAdded_flowHasNoNetwork() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
val wifiInfo =
mock<WifiInfo>().apply {
@@ -802,15 +719,12 @@ class WifiRepositoryImplTest : SysuiTestCase() {
getNetworkCallback().onCapabilitiesChanged(NETWORK, capabilities)
assertThat(latest is WifiNetworkModel.Inactive).isTrue()
-
- job.cancel()
}
@Test
fun wifiNetwork_cellularNotVcnNetworkAdded_flowHasNoNetwork() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
val capabilities =
mock<NetworkCapabilities>().apply {
@@ -821,15 +735,12 @@ class WifiRepositoryImplTest : SysuiTestCase() {
getNetworkCallback().onCapabilitiesChanged(NETWORK, capabilities)
assertThat(latest is WifiNetworkModel.Inactive).isTrue()
-
- job.cancel()
}
@Test
fun wifiNetwork_cellularAndWifiTransports_usesCellular() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
val capabilities =
mock<NetworkCapabilities>().apply {
@@ -844,15 +755,12 @@ class WifiRepositoryImplTest : SysuiTestCase() {
val latestActive = latest as WifiNetworkModel.Active
assertThat(latestActive.networkId).isEqualTo(NETWORK_ID)
assertThat(latestActive.ssid).isEqualTo(SSID)
-
- job.cancel()
}
@Test
fun wifiNetwork_newPrimaryWifiNetwork_flowHasNewNetwork() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
// Start with the original network
getNetworkCallback()
@@ -877,15 +785,12 @@ class WifiRepositoryImplTest : SysuiTestCase() {
val latestActive = latest as WifiNetworkModel.Active
assertThat(latestActive.networkId).isEqualTo(newNetworkId)
assertThat(latestActive.ssid).isEqualTo(newSsid)
-
- job.cancel()
}
@Test
fun wifiNetwork_newNonPrimaryWifiNetwork_flowHasOldNetwork() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
// Start with the original network
getNetworkCallback()
@@ -910,15 +815,12 @@ class WifiRepositoryImplTest : SysuiTestCase() {
val latestActive = latest as WifiNetworkModel.Active
assertThat(latestActive.networkId).isEqualTo(NETWORK_ID)
assertThat(latestActive.ssid).isEqualTo(SSID)
-
- job.cancel()
}
@Test
fun wifiNetwork_newNetworkCapabilities_flowHasNewData() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
val wifiInfo =
mock<WifiInfo>().apply {
@@ -953,30 +855,24 @@ class WifiRepositoryImplTest : SysuiTestCase() {
assertThat(latestActive.networkId).isEqualTo(NETWORK_ID)
assertThat(latestActive.ssid).isEqualTo(newSsid)
assertThat(latestActive.isValidated).isFalse()
-
- job.cancel()
}
@Test
fun wifiNetwork_noCurrentNetwork_networkLost_flowHasNoNetwork() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
// WHEN we receive #onLost without any #onCapabilitiesChanged beforehand
getNetworkCallback().onLost(NETWORK)
// THEN there's no crash and we still have no network
assertThat(latest is WifiNetworkModel.Inactive).isTrue()
-
- job.cancel()
}
@Test
fun wifiNetwork_currentActiveNetworkLost_flowHasNoNetwork() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
getNetworkCallback()
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
@@ -987,16 +883,13 @@ class WifiRepositoryImplTest : SysuiTestCase() {
// THEN we update to no network
assertThat(latest is WifiNetworkModel.Inactive).isTrue()
-
- job.cancel()
}
/** Possible regression test for b/278618530. */
@Test
fun wifiNetwork_currentCarrierMergedNetworkLost_flowHasNoNetwork() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
val wifiInfo =
mock<WifiInfo>().apply {
@@ -1014,15 +907,12 @@ class WifiRepositoryImplTest : SysuiTestCase() {
// THEN we update to no network
assertThat(latest is WifiNetworkModel.Inactive).isTrue()
-
- job.cancel()
}
@Test
fun wifiNetwork_unknownNetworkLost_flowHasPreviousNetwork() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
getNetworkCallback()
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
@@ -1037,15 +927,12 @@ class WifiRepositoryImplTest : SysuiTestCase() {
val latestActive = latest as WifiNetworkModel.Active
assertThat(latestActive.networkId).isEqualTo(NETWORK_ID)
assertThat(latestActive.ssid).isEqualTo(SSID)
-
- job.cancel()
}
@Test
fun wifiNetwork_notCurrentNetworkLost_flowHasCurrentNetwork() =
testScope.runTest {
- var latest: WifiNetworkModel? = null
- val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiNetwork)
getNetworkCallback()
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
@@ -1062,16 +949,13 @@ class WifiRepositoryImplTest : SysuiTestCase() {
// THEN we still have the new network
assertThat((latest as WifiNetworkModel.Active).networkId).isEqualTo(newNetworkId)
-
- job.cancel()
}
/** Regression test for b/244173280. */
@Test
fun wifiNetwork_multipleSubscribers_newSubscribersGetCurrentValue() =
testScope.runTest {
- var latest1: WifiNetworkModel? = null
- val job1 = underTest.wifiNetwork.onEach { latest1 = it }.launchIn(this)
+ val latest1 by collectLastValue(underTest.wifiNetwork)
getNetworkCallback()
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
@@ -1082,23 +966,19 @@ class WifiRepositoryImplTest : SysuiTestCase() {
assertThat(latest1Active.ssid).isEqualTo(SSID)
// WHEN we add a second subscriber after having already emitted a value
- var latest2: WifiNetworkModel? = null
- val job2 = underTest.wifiNetwork.onEach { latest2 = it }.launchIn(this)
+ val latest2 by collectLastValue(underTest.wifiNetwork)
// THEN the second subscribe receives the already-emitted value
assertThat(latest2 is WifiNetworkModel.Active).isTrue()
val latest2Active = latest2 as WifiNetworkModel.Active
assertThat(latest2Active.networkId).isEqualTo(NETWORK_ID)
assertThat(latest2Active.ssid).isEqualTo(SSID)
-
- job1.cancel()
- job2.cancel()
}
@Test
fun isWifiConnectedWithValidSsid_inactiveNetwork_false() =
testScope.runTest {
- val job = underTest.wifiNetwork.launchIn(this)
+ collectLastValue(underTest.wifiNetwork)
val wifiInfo =
mock<WifiInfo>().apply {
@@ -1111,14 +991,12 @@ class WifiRepositoryImplTest : SysuiTestCase() {
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(wifiInfo))
assertThat(underTest.isWifiConnectedWithValidSsid()).isFalse()
-
- job.cancel()
}
@Test
fun isWifiConnectedWithValidSsid_carrierMergedNetwork_false() =
testScope.runTest {
- val job = underTest.wifiNetwork.launchIn(this)
+ collectLastValue(underTest.wifiNetwork)
val wifiInfo =
mock<WifiInfo>().apply {
@@ -1128,16 +1006,15 @@ class WifiRepositoryImplTest : SysuiTestCase() {
getNetworkCallback()
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(wifiInfo))
+ testScope.runCurrent()
assertThat(underTest.isWifiConnectedWithValidSsid()).isFalse()
-
- job.cancel()
}
@Test
fun isWifiConnectedWithValidSsid_invalidNetwork_false() =
testScope.runTest {
- val job = underTest.wifiNetwork.launchIn(this)
+ collectLastValue(underTest.wifiNetwork)
val wifiInfo =
mock<WifiInfo>().apply {
@@ -1151,16 +1028,15 @@ class WifiRepositoryImplTest : SysuiTestCase() {
NETWORK,
createWifiNetworkCapabilities(wifiInfo),
)
+ testScope.runCurrent()
assertThat(underTest.isWifiConnectedWithValidSsid()).isFalse()
-
- job.cancel()
}
@Test
fun isWifiConnectedWithValidSsid_activeNetwork_nullSsid_false() =
testScope.runTest {
- val job = underTest.wifiNetwork.launchIn(this)
+ collectLastValue(underTest.wifiNetwork)
val wifiInfo =
mock<WifiInfo>().apply {
@@ -1170,16 +1046,15 @@ class WifiRepositoryImplTest : SysuiTestCase() {
getNetworkCallback()
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(wifiInfo))
+ testScope.runCurrent()
assertThat(underTest.isWifiConnectedWithValidSsid()).isFalse()
-
- job.cancel()
}
@Test
fun isWifiConnectedWithValidSsid_activeNetwork_unknownSsid_false() =
testScope.runTest {
- val job = underTest.wifiNetwork.launchIn(this)
+ collectLastValue(underTest.wifiNetwork)
val wifiInfo =
mock<WifiInfo>().apply {
@@ -1189,16 +1064,15 @@ class WifiRepositoryImplTest : SysuiTestCase() {
getNetworkCallback()
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(wifiInfo))
+ testScope.runCurrent()
assertThat(underTest.isWifiConnectedWithValidSsid()).isFalse()
-
- job.cancel()
}
@Test
fun isWifiConnectedWithValidSsid_activeNetwork_validSsid_true() =
testScope.runTest {
- val job = underTest.wifiNetwork.launchIn(this)
+ collectLastValue(underTest.wifiNetwork)
val wifiInfo =
mock<WifiInfo>().apply {
@@ -1208,16 +1082,15 @@ class WifiRepositoryImplTest : SysuiTestCase() {
getNetworkCallback()
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(wifiInfo))
+ testScope.runCurrent()
assertThat(underTest.isWifiConnectedWithValidSsid()).isTrue()
-
- job.cancel()
}
@Test
fun isWifiConnectedWithValidSsid_activeToInactive_trueToFalse() =
testScope.runTest {
- val job = underTest.wifiNetwork.launchIn(this)
+ collectLastValue(underTest.wifiNetwork)
// Start with active
val wifiInfo =
@@ -1227,71 +1100,60 @@ class WifiRepositoryImplTest : SysuiTestCase() {
}
getNetworkCallback()
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(wifiInfo))
+ testScope.runCurrent()
+
assertThat(underTest.isWifiConnectedWithValidSsid()).isTrue()
// WHEN the network is lost
getNetworkCallback().onLost(NETWORK)
+ testScope.runCurrent()
// THEN the isWifiConnected updates
assertThat(underTest.isWifiConnectedWithValidSsid()).isFalse()
-
- job.cancel()
}
@Test
fun wifiActivity_callbackGivesNone_activityFlowHasNone() =
testScope.runTest {
- var latest: DataActivityModel? = null
- val job = underTest.wifiActivity.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiActivity)
getTrafficStateCallback().onStateChanged(TrafficStateCallback.DATA_ACTIVITY_NONE)
assertThat(latest)
.isEqualTo(DataActivityModel(hasActivityIn = false, hasActivityOut = false))
-
- job.cancel()
}
@Test
fun wifiActivity_callbackGivesIn_activityFlowHasIn() =
testScope.runTest {
- var latest: DataActivityModel? = null
- val job = underTest.wifiActivity.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiActivity)
getTrafficStateCallback().onStateChanged(TrafficStateCallback.DATA_ACTIVITY_IN)
assertThat(latest)
.isEqualTo(DataActivityModel(hasActivityIn = true, hasActivityOut = false))
-
- job.cancel()
}
@Test
fun wifiActivity_callbackGivesOut_activityFlowHasOut() =
testScope.runTest {
- var latest: DataActivityModel? = null
- val job = underTest.wifiActivity.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiActivity)
getTrafficStateCallback().onStateChanged(TrafficStateCallback.DATA_ACTIVITY_OUT)
assertThat(latest)
.isEqualTo(DataActivityModel(hasActivityIn = false, hasActivityOut = true))
-
- job.cancel()
}
@Test
fun wifiActivity_callbackGivesInout_activityFlowHasInAndOut() =
testScope.runTest {
- var latest: DataActivityModel? = null
- val job = underTest.wifiActivity.onEach { latest = it }.launchIn(this)
+ val latest by collectLastValue(underTest.wifiActivity)
getTrafficStateCallback().onStateChanged(TrafficStateCallback.DATA_ACTIVITY_INOUT)
assertThat(latest)
.isEqualTo(DataActivityModel(hasActivityIn = true, hasActivityOut = true))
-
- job.cancel()
}
private fun createRepo(): WifiRepositoryImpl {
@@ -1309,18 +1171,21 @@ class WifiRepositoryImplTest : SysuiTestCase() {
}
private fun getTrafficStateCallback(): TrafficStateCallback {
+ testScope.runCurrent()
val callbackCaptor = argumentCaptor<TrafficStateCallback>()
verify(wifiManager).registerTrafficStateCallback(any(), callbackCaptor.capture())
return callbackCaptor.value!!
}
private fun getNetworkCallback(): ConnectivityManager.NetworkCallback {
+ testScope.runCurrent()
val callbackCaptor = argumentCaptor<ConnectivityManager.NetworkCallback>()
verify(connectivityManager).registerNetworkCallback(any(), callbackCaptor.capture())
return callbackCaptor.value!!
}
private fun getDefaultNetworkCallback(): ConnectivityManager.NetworkCallback {
+ testScope.runCurrent()
val callbackCaptor = argumentCaptor<ConnectivityManager.NetworkCallback>()
verify(connectivityManager).registerDefaultNetworkCallback(callbackCaptor.capture())
return callbackCaptor.value!!