Fix simOnboardingLabelSimImpl_showItem_show3Items
Bug: 318310357 Test: unit test Change-Id: I189f71d49a866660a1055576b39841db09fa1520
This commit is contained in:
@@ -18,19 +18,29 @@ package com.android.settings.spa.network
|
||||
|
||||
import android.content.Context
|
||||
import android.telephony.SubscriptionInfo
|
||||
import android.telephony.SubscriptionManager
|
||||
import androidx.compose.runtime.CompositionLocalProvider
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.platform.LocalLifecycleOwner
|
||||
import androidx.compose.ui.test.assertIsDisplayed
|
||||
import androidx.compose.ui.test.hasText
|
||||
import androidx.compose.ui.test.junit4.createComposeRule
|
||||
import androidx.compose.ui.test.onNodeWithText
|
||||
import androidx.compose.ui.test.performClick
|
||||
import androidx.lifecycle.testing.TestLifecycleOwner
|
||||
import androidx.test.core.app.ApplicationProvider
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import com.android.settings.R
|
||||
import com.android.settings.network.SimOnboardingService
|
||||
import com.android.settingslib.spa.testutils.waitUntilExists
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.mockito.kotlin.any
|
||||
import org.mockito.kotlin.doAnswer
|
||||
import org.mockito.kotlin.doReturn
|
||||
import org.mockito.kotlin.mock
|
||||
import org.mockito.kotlin.spy
|
||||
import org.mockito.kotlin.stub
|
||||
import org.mockito.kotlin.verify
|
||||
|
||||
@@ -39,7 +49,20 @@ class SimOnboardingLabelSimTest {
|
||||
@get:Rule
|
||||
val composeTestRule = createComposeRule()
|
||||
|
||||
private val context: Context = ApplicationProvider.getApplicationContext()
|
||||
private val mockSubscriptionManager = mock<SubscriptionManager> {
|
||||
on { addOnSubscriptionsChangedListener(any(), any()) } doAnswer {
|
||||
val listener = it.arguments[1] as SubscriptionManager.OnSubscriptionsChangedListener
|
||||
listener.onSubscriptionsChanged()
|
||||
}
|
||||
on { getPhoneNumber(SUB_ID_1) } doReturn NUMBER_1
|
||||
on { getPhoneNumber(SUB_ID_2) } doReturn NUMBER_2
|
||||
on { getPhoneNumber(SUB_ID_3) } doReturn NUMBER_3
|
||||
}
|
||||
|
||||
private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
|
||||
on { getSystemService(SubscriptionManager::class.java) } doReturn mockSubscriptionManager
|
||||
}
|
||||
|
||||
private var mockSimOnboardingService = mock<SimOnboardingService> {
|
||||
on { targetSubId }.doReturn(-1)
|
||||
on { targetSubInfo }.doReturn(null)
|
||||
@@ -85,7 +108,7 @@ class SimOnboardingLabelSimTest {
|
||||
composeTestRule.onNodeWithText(context.getString(R.string.sim_onboarding_next))
|
||||
.performClick()
|
||||
|
||||
verify(nextAction)
|
||||
verify(nextAction)()
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -97,7 +120,7 @@ class SimOnboardingLabelSimTest {
|
||||
composeTestRule.onNodeWithText(context.getString(R.string.cancel))
|
||||
.performClick()
|
||||
|
||||
verify(cancelAction)
|
||||
verify(cancelAction)()
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -120,15 +143,20 @@ class SimOnboardingLabelSimTest {
|
||||
}
|
||||
|
||||
composeTestRule.setContent {
|
||||
SimOnboardingLabelSimImpl(nextAction, cancelAction, mockSimOnboardingService)
|
||||
CompositionLocalProvider(
|
||||
LocalContext provides context,
|
||||
LocalLifecycleOwner provides TestLifecycleOwner(),
|
||||
) {
|
||||
SimOnboardingLabelSimImpl(nextAction, cancelAction, mockSimOnboardingService)
|
||||
}
|
||||
}
|
||||
|
||||
composeTestRule.onNodeWithText(DISPLAY_NAME_1).assertIsDisplayed()
|
||||
composeTestRule.onNodeWithText(NUMBER_1).assertIsDisplayed()
|
||||
composeTestRule.waitUntilExists(hasText(NUMBER_1))
|
||||
composeTestRule.onNodeWithText(DISPLAY_NAME_2).assertIsDisplayed()
|
||||
composeTestRule.onNodeWithText(NUMBER_2).assertIsDisplayed()
|
||||
composeTestRule.waitUntilExists(hasText(NUMBER_2))
|
||||
composeTestRule.onNodeWithText(DISPLAY_NAME_3).assertIsDisplayed()
|
||||
composeTestRule.onNodeWithText(NUMBER_3).assertIsDisplayed()
|
||||
composeTestRule.waitUntilExists(hasText(NUMBER_3))
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -173,24 +201,25 @@ class SimOnboardingLabelSimTest {
|
||||
const val NUMBER_1 = "000000001"
|
||||
const val NUMBER_2 = "000000002"
|
||||
const val NUMBER_3 = "000000003"
|
||||
const val MCC = "310"
|
||||
const val PRIMARY_SIM_ASK_EVERY_TIME = -1
|
||||
|
||||
val SUB_INFO_1: SubscriptionInfo = SubscriptionInfo.Builder().apply {
|
||||
setId(SUB_ID_1)
|
||||
setDisplayName(DISPLAY_NAME_1)
|
||||
setNumber(NUMBER_1)
|
||||
setMcc(MCC)
|
||||
}.build()
|
||||
|
||||
val SUB_INFO_2: SubscriptionInfo = SubscriptionInfo.Builder().apply {
|
||||
setId(SUB_ID_2)
|
||||
setDisplayName(DISPLAY_NAME_2)
|
||||
setNumber(NUMBER_2)
|
||||
setMcc(MCC)
|
||||
}.build()
|
||||
|
||||
val SUB_INFO_3: SubscriptionInfo = SubscriptionInfo.Builder().apply {
|
||||
setId(SUB_ID_3)
|
||||
setDisplayName(DISPLAY_NAME_3)
|
||||
setNumber(NUMBER_3)
|
||||
setMcc(MCC)
|
||||
}.build()
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user