[Status Bar] Update WifiInteractorTest to TestScope; add to robolectric
Bug: 291916037 Test: Run WifiInteractorImplTest in SysUI Studio Test: atest SystemUiRoboTests Change-Id: I0d5d100a30956ab6706adc3da82770b1c96ed9dc
This commit is contained in:
@@ -307,6 +307,7 @@ 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",
|
||||
],
|
||||
path: "tests/src",
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user