Merge "Catch exception in telephonyRepository.isDataEnabledFlow" into main

This commit is contained in:
Chaohui Wang
2024-05-10 03:02:34 +00:00
committed by Android (Google) Code Review
8 changed files with 52 additions and 45 deletions

View File

@@ -27,6 +27,8 @@ import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settings.R
import com.android.settings.datausage.lib.BillingCycleRepository
import kotlinx.coroutines.flow.emptyFlow
import kotlinx.coroutines.flow.flowOf
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
@@ -39,7 +41,9 @@ class BillingCyclePreferenceTest {
@get:Rule
val composeTestRule = createComposeRule()
private val mockBillingCycleRepository = mock<BillingCycleRepository>()
private val mockBillingCycleRepository = mock<BillingCycleRepository> {
on { isModifiableFlow(SUB_ID) } doReturn emptyFlow()
}
private val context: Context = ApplicationProvider.getApplicationContext()
@@ -56,7 +60,7 @@ class BillingCyclePreferenceTest {
@Test
fun setTemplate_modifiable_enabled() {
mockBillingCycleRepository.stub {
on { isModifiable(SUB_ID) } doReturn true
on { isModifiableFlow(SUB_ID) } doReturn flowOf(true)
}
setTemplate()
@@ -67,7 +71,7 @@ class BillingCyclePreferenceTest {
@Test
fun setTemplate_notModifiable_notEnabled() {
mockBillingCycleRepository.stub {
on { isModifiable(SUB_ID) } doReturn false
on { isModifiableFlow(SUB_ID) } doReturn flowOf(false)
}
setTemplate()

View File

@@ -22,8 +22,10 @@ import android.os.UserManager
import android.telephony.TelephonyManager
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settingslib.spa.testutils.firstWithTimeoutOrNull
import com.android.settingslib.spaprivileged.framework.common.userManager
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.runBlocking
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.kotlin.doReturn
@@ -55,43 +57,43 @@ class BillingCycleRepositoryTest {
private val repository = BillingCycleRepository(context, mockNetworkManagementService)
@Test
fun isModifiable_bandwidthControlDisabled_returnFalse() {
fun isModifiable_bandwidthControlDisabled_returnFalse() = runBlocking {
whenever(mockNetworkManagementService.isBandwidthControlEnabled).thenReturn(false)
val modifiable = repository.isModifiable(SUB_ID)
val modifiable = repository.isModifiableFlow(SUB_ID).firstWithTimeoutOrNull()
assertThat(modifiable).isFalse()
}
@Test
fun isModifiable_notAdminUser_returnFalse() {
fun isModifiable_notAdminUser_returnFalse() = runBlocking {
whenever(mockUserManager.isAdminUser).thenReturn(false)
val modifiable = repository.isModifiable(SUB_ID)
val modifiable = repository.isModifiableFlow(SUB_ID).firstWithTimeoutOrNull()
assertThat(modifiable).isFalse()
}
@Test
fun isModifiable_dataDisabled_returnFalse() {
fun isModifiable_dataDisabled_returnFalse() = runBlocking {
whenever(
mockTelephonyManager.isDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER)
).thenReturn(false)
val modifiable = repository.isModifiable(SUB_ID)
val modifiable = repository.isModifiableFlow(SUB_ID).firstWithTimeoutOrNull()
assertThat(modifiable).isFalse()
}
@Test
fun isModifiable_meetAllRequirements_returnTrue() {
fun isModifiable_meetAllRequirements_returnTrue() = runBlocking {
whenever(mockNetworkManagementService.isBandwidthControlEnabled).thenReturn(true)
whenever(mockUserManager.isAdminUser).thenReturn(true)
whenever(
mockTelephonyManager.isDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER)
).thenReturn(true)
val modifiable = repository.isModifiable(SUB_ID)
val modifiable = repository.isModifiableFlow(SUB_ID).firstWithTimeoutOrNull()
assertThat(modifiable).isTrue()
}

View File

@@ -93,7 +93,7 @@ class TelephonyRepositoryTest {
@Test
fun isDataEnabled_invalidSub_returnFalse() = runBlocking {
val state = repository.isDataEnabled(
val state = repository.isDataEnabledFlow(
subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID,
)
@@ -108,9 +108,7 @@ class TelephonyRepositoryTest {
} doReturn true
}
val state = repository.isDataEnabled(
subId = SUB_ID,
)
val state = repository.isDataEnabledFlow(subId = SUB_ID)
assertThat(state.firstWithTimeoutOrNull()).isTrue()
}