Merge "Catch exception in telephonyRepository.isDataEnabledFlow" into main
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user