summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt86
1 files changed, 41 insertions, 45 deletions
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt
index 04da99433d6d..4ce422685dfa 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt
@@ -75,14 +75,13 @@ import com.android.systemui.util.mockito.any
import com.android.systemui.util.mockito.mock
import com.android.systemui.util.mockito.whenever
import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
-import kotlinx.coroutines.cancel
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
-import kotlinx.coroutines.runBlocking
-import org.junit.After
+import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.UnconfinedTestDispatcher
+import kotlinx.coroutines.test.runTest
import org.junit.Before
import org.junit.Test
import org.mockito.Mock
@@ -99,7 +98,6 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Mock private lateinit var logger: MobileInputLogger
@Mock private lateinit var tableLogger: TableLogBuffer
- private val scope = CoroutineScope(IMMEDIATE)
private val mobileMappings = FakeMobileMappingsProxy()
private val systemUiCarrierConfig =
SystemUiCarrierConfig(
@@ -107,6 +105,9 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
createTestConfig(),
)
+ private val testDispatcher = UnconfinedTestDispatcher()
+ private val testScope = TestScope(testDispatcher)
+
@Before
fun setUp() {
MockitoAnnotations.initMocks(this)
@@ -127,18 +128,13 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
IMMEDIATE,
logger,
tableLogger,
- scope,
+ testScope.backgroundScope,
)
}
- @After
- fun tearDown() {
- scope.cancel()
- }
-
@Test
fun emergencyOnly() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: Boolean? = null
val job = underTest.isEmergencyOnly.onEach { latest = it }.launchIn(this)
@@ -154,7 +150,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun emergencyOnly_toggles() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: Boolean? = null
val job = underTest.isEmergencyOnly.onEach { latest = it }.launchIn(this)
@@ -174,7 +170,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun cdmaLevelUpdates() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: Int? = null
val job = underTest.cdmaLevel.onEach { latest = it }.launchIn(this)
@@ -194,7 +190,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun gsmLevelUpdates() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: Int? = null
val job = underTest.primaryLevel.onEach { latest = it }.launchIn(this)
@@ -214,7 +210,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun isGsm() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: Boolean? = null
val job = underTest.isGsm.onEach { latest = it }.launchIn(this)
@@ -234,7 +230,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun dataConnectionState_connected() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: DataConnectionState? = null
val job = underTest.dataConnectionState.onEach { latest = it }.launchIn(this)
@@ -249,7 +245,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun dataConnectionState_connecting() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: DataConnectionState? = null
val job = underTest.dataConnectionState.onEach { latest = it }.launchIn(this)
@@ -264,7 +260,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun dataConnectionState_disconnected() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: DataConnectionState? = null
val job = underTest.dataConnectionState.onEach { latest = it }.launchIn(this)
@@ -279,7 +275,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun dataConnectionState_disconnecting() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: DataConnectionState? = null
val job = underTest.dataConnectionState.onEach { latest = it }.launchIn(this)
@@ -294,7 +290,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun dataConnectionState_suspended() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: DataConnectionState? = null
val job = underTest.dataConnectionState.onEach { latest = it }.launchIn(this)
@@ -309,7 +305,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun dataConnectionState_handoverInProgress() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: DataConnectionState? = null
val job = underTest.dataConnectionState.onEach { latest = it }.launchIn(this)
@@ -324,7 +320,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun dataConnectionState_unknown() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: DataConnectionState? = null
val job = underTest.dataConnectionState.onEach { latest = it }.launchIn(this)
@@ -339,7 +335,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun dataConnectionState_invalid() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: DataConnectionState? = null
val job = underTest.dataConnectionState.onEach { latest = it }.launchIn(this)
@@ -354,7 +350,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun dataActivity() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: DataActivityModel? = null
val job = underTest.dataActivityDirection.onEach { latest = it }.launchIn(this)
@@ -368,7 +364,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun carrierNetworkChange() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: Boolean? = null
val job = underTest.carrierNetworkChangeActive.onEach { latest = it }.launchIn(this)
@@ -382,7 +378,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun networkType_default() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: ResolvedNetworkType? = null
val job = underTest.resolvedNetworkType.onEach { latest = it }.launchIn(this)
@@ -395,7 +391,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun networkType_unknown_hasCorrectKey() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: ResolvedNetworkType? = null
val job = underTest.resolvedNetworkType.onEach { latest = it }.launchIn(this)
@@ -413,7 +409,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun networkType_updatesUsingDefault() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: ResolvedNetworkType? = null
val job = underTest.resolvedNetworkType.onEach { latest = it }.launchIn(this)
@@ -430,7 +426,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun networkType_updatesUsingOverride() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: ResolvedNetworkType? = null
val job = underTest.resolvedNetworkType.onEach { latest = it }.launchIn(this)
@@ -451,7 +447,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun dataEnabled_initial_false() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
whenever(telephonyManager.isDataConnectionAllowed).thenReturn(false)
assertThat(underTest.dataEnabled.value).isFalse()
@@ -459,7 +455,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun isDataEnabled_tracksTelephonyCallback() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: Boolean? = null
val job = underTest.dataEnabled.onEach { latest = it }.launchIn(this)
@@ -479,7 +475,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun numberOfLevels_isDefault() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: Int? = null
val job = underTest.numberOfLevels.onEach { latest = it }.launchIn(this)
@@ -490,7 +486,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun roaming_cdma_queriesTelephonyManager() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: Boolean? = null
val job = underTest.cdmaRoaming.onEach { latest = it }.launchIn(this)
@@ -520,7 +516,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
*/
@Test
fun cdmaRoaming_ignoresNegativeOne() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: Boolean? = null
val job = underTest.cdmaRoaming.onEach { latest = it }.launchIn(this)
@@ -540,7 +536,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun roaming_gsm_queriesServiceState() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: Boolean? = null
val job = underTest.isRoaming.onEach { latest = it }.launchIn(this)
@@ -566,7 +562,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun activity_updatesFromCallback() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: DataActivityModel? = null
val job = underTest.dataActivityDirection.onEach { latest = it }.launchIn(this)
@@ -603,7 +599,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun networkName_default() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: NetworkNameModel? = null
val job = underTest.networkName.onEach { latest = it }.launchIn(this)
@@ -614,7 +610,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun networkName_usesBroadcastInfo_returnsDerived() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: NetworkNameModel? = null
val job = underTest.networkName.onEach { latest = it }.launchIn(this)
@@ -631,7 +627,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun networkName_broadcastNotForThisSubId_keepsOldValue() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: NetworkNameModel? = null
val job = underTest.networkName.onEach { latest = it }.launchIn(this)
@@ -656,7 +652,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun networkName_broadcastHasNoData_updatesToDefault() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: NetworkNameModel? = null
val job = underTest.networkName.onEach { latest = it }.launchIn(this)
@@ -683,7 +679,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun operatorAlphaShort_tracked() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: String? = null
val job = underTest.operatorAlphaShort.onEach { latest = it }.launchIn(this)
@@ -705,7 +701,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun isInService_notIwlan() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: Boolean? = null
val job = underTest.isInService.onEach { latest = it }.launchIn(this)
@@ -730,7 +726,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun isInService_isIwlan_voiceOutOfService_dataInService() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: Boolean? = null
val job = underTest.isInService.onEach { latest = it }.launchIn(this)
@@ -755,7 +751,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
@Test
fun numberOfLevels_usesCarrierConfig() =
- runBlocking(IMMEDIATE) {
+ testScope.runTest {
var latest: Int? = null
val job = underTest.numberOfLevels.onEach { latest = it }.launchIn(this)