Merge "Use Mockito Kotlin" into main

This commit is contained in:
Treehugger Robot
2023-08-21 11:26:14 +00:00
committed by Android (Google) Code Review
2 changed files with 28 additions and 31 deletions

View File

@@ -31,9 +31,8 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settings.R import com.android.settings.R
import com.android.settingslib.spa.framework.compose.stateOf import com.android.settingslib.spa.framework.compose.stateOf
import com.android.settingslib.spa.testutils.FakeNavControllerWrapper import com.android.settingslib.spa.testutils.FakeNavControllerWrapper
import com.android.settingslib.spa.testutils.any
import com.android.settingslib.spaprivileged.template.app.AppListItemModel import com.android.settingslib.spaprivileged.template.app.AppListItemModel
import com.google.common.truth.Truth import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.test.runTest import kotlinx.coroutines.test.runTest
@@ -41,12 +40,13 @@ import org.junit.Before
import org.junit.Rule import org.junit.Rule
import org.junit.Test import org.junit.Test
import org.junit.runner.RunWith import org.junit.runner.RunWith
import org.mockito.ArgumentCaptor
import org.mockito.ArgumentMatchers.eq
import org.mockito.Mock import org.mockito.Mock
import org.mockito.Mockito
import org.mockito.junit.MockitoJUnit import org.mockito.junit.MockitoJUnit
import org.mockito.junit.MockitoRule import org.mockito.junit.MockitoRule
import org.mockito.kotlin.any
import org.mockito.kotlin.argumentCaptor
import org.mockito.kotlin.eq
import org.mockito.kotlin.whenever
@RunWith(AndroidJUnit4::class) @RunWith(AndroidJUnit4::class)
class BackgroundInstalledAppsPageProviderTest { class BackgroundInstalledAppsPageProviderTest {
@@ -67,26 +67,25 @@ class BackgroundInstalledAppsPageProviderTest {
@Mock @Mock
private lateinit var mockBackgroundInstallControlService: IBackgroundInstallControlService private lateinit var mockBackgroundInstallControlService: IBackgroundInstallControlService
private var packageInfoFlagsCaptor = private var packageInfoFlagsCaptor = argumentCaptor<PackageManager.PackageInfoFlags>()
ArgumentCaptor.forClass(PackageManager.PackageInfoFlags::class.java)
private val fakeNavControllerWrapper = FakeNavControllerWrapper() private val fakeNavControllerWrapper = FakeNavControllerWrapper()
@Before @Before
fun setup() { fun setup() {
Mockito.`when`(mockContext.packageManager).thenReturn(mockPackageManager) whenever(mockContext.packageManager).thenReturn(mockPackageManager)
} }
@Test @Test
fun allAppListPageProvider_name() { fun allAppListPageProvider_name() {
Truth.assertThat(BackgroundInstalledAppsPageProvider.name) assertThat(BackgroundInstalledAppsPageProvider.name)
.isEqualTo(EXPECTED_PROVIDER_NAME) .isEqualTo(EXPECTED_PROVIDER_NAME)
} }
@Test @Test
fun injectEntry_title() { fun injectEntry_title() {
Mockito.`when`(mockBackgroundInstallControlService whenever(mockBackgroundInstallControlService.getBackgroundInstalledPackages(any(), any()))
.getBackgroundInstalledPackages(any(Long::class.java), any(Int::class.java)))
.thenReturn(ParceledListSlice(listOf())) .thenReturn(ParceledListSlice(listOf()))
setInjectEntry(false) setInjectEntry(false)
composeTestRule.onNodeWithText( composeTestRule.onNodeWithText(
@@ -103,9 +102,9 @@ class BackgroundInstalledAppsPageProviderTest {
@Test @Test
fun injectEntry_summary() { fun injectEntry_summary() {
Mockito.`when`(mockBackgroundInstallControlService whenever(mockBackgroundInstallControlService.getBackgroundInstalledPackages(any(), any()))
.getBackgroundInstalledPackages(any(Long::class.java), any(Int::class.java)))
.thenReturn(ParceledListSlice(listOf())) .thenReturn(ParceledListSlice(listOf()))
setInjectEntry(false) setInjectEntry(false)
composeTestRule.onNodeWithText("0 apps").assertIsDisplayed() composeTestRule.onNodeWithText("0 apps").assertIsDisplayed()
@@ -120,15 +119,14 @@ class BackgroundInstalledAppsPageProviderTest {
@Test @Test
fun injectEntry_onClick_navigate() { fun injectEntry_onClick_navigate() {
Mockito.`when`(mockBackgroundInstallControlService whenever(mockBackgroundInstallControlService.getBackgroundInstalledPackages(any(), any()))
.getBackgroundInstalledPackages(any(Long::class.java), any(Int::class.java)))
.thenReturn(ParceledListSlice(listOf())) .thenReturn(ParceledListSlice(listOf()))
setInjectEntry(false) setInjectEntry(false)
composeTestRule.onNodeWithText( composeTestRule.onNodeWithText(
context.getString(R.string.background_install_title)).performClick() context.getString(R.string.background_install_title)).performClick()
Truth.assertThat(fakeNavControllerWrapper.navigateCalledWith) assertThat(fakeNavControllerWrapper.navigateCalledWith)
.isEqualTo(EXPECTED_PROVIDER_NAME) .isEqualTo(EXPECTED_PROVIDER_NAME)
} }
@@ -166,7 +164,7 @@ class BackgroundInstalledAppsPageProviderTest {
composeTestRule.onNodeWithText(TEST_LABEL).performClick() composeTestRule.onNodeWithText(TEST_LABEL).performClick()
Truth.assertThat(fakeNavControllerWrapper.navigateCalledWith) assertThat(fakeNavControllerWrapper.navigateCalledWith)
.isEqualTo("AppInfoSettings/package.name/0") .isEqualTo("AppInfoSettings/package.name/0")
} }
@@ -181,7 +179,7 @@ class BackgroundInstalledAppsPageProviderTest {
System.currentTimeMillis() System.currentTimeMillis()
)) ))
Truth.assertThat(actualGroupTitle).isEqualTo("Apps installed in the last 6 months") assertThat(actualGroupTitle).isEqualTo("Apps installed in the last 6 months")
} }
@Test @Test
@@ -195,13 +193,13 @@ class BackgroundInstalledAppsPageProviderTest {
0L 0L
)) ))
Truth.assertThat(actualGroupTitle).isEqualTo("Apps installed more than 6 months ago") assertThat(actualGroupTitle).isEqualTo("Apps installed more than 6 months ago")
} }
@Test @Test
fun backgroundInstalledAppsWithGroupingListModel_transform() = runTest { fun backgroundInstalledAppsWithGroupingListModel_transform() = runTest {
val listModel = BackgroundInstalledAppsWithGroupingListModel(mockContext) val listModel = BackgroundInstalledAppsWithGroupingListModel(mockContext)
Mockito.`when`(mockPackageManager.getPackageInfoAsUser( whenever(mockPackageManager.getPackageInfoAsUser(
eq(TEST_PACKAGE_NAME), eq(TEST_PACKAGE_NAME),
packageInfoFlagsCaptor.capture(), packageInfoFlagsCaptor.capture(),
eq(TEST_USER_ID)) eq(TEST_USER_ID))
@@ -211,16 +209,16 @@ class BackgroundInstalledAppsPageProviderTest {
val recordList = recordListFlow.first() val recordList = recordListFlow.first()
Truth.assertThat(recordList).hasSize(1) assertThat(recordList).hasSize(1)
Truth.assertThat(recordList[0].app).isSameInstanceAs(APP) assertThat(recordList[0].app).isSameInstanceAs(APP)
Truth.assertThat(packageInfoFlagsCaptor.value.value).isEqualTo(EXPECTED_PACKAGE_INFO_FLAG) assertThat(packageInfoFlagsCaptor.firstValue.value).isEqualTo(EXPECTED_PACKAGE_INFO_FLAG)
} }
@Test @Test
fun backgroundInstalledAppsWithGroupingListModel_filter() = runTest { fun backgroundInstalledAppsWithGroupingListModel_filter() = runTest {
val listModel = BackgroundInstalledAppsWithGroupingListModel(mockContext) val listModel = BackgroundInstalledAppsWithGroupingListModel(mockContext)
listModel.setBackgroundInstallControlService(mockBackgroundInstallControlService) listModel.setBackgroundInstallControlService(mockBackgroundInstallControlService)
Mockito.`when`(mockBackgroundInstallControlService.getBackgroundInstalledPackages( whenever(mockBackgroundInstallControlService.getBackgroundInstalledPackages(
PackageManager.MATCH_ALL.toLong(), PackageManager.MATCH_ALL.toLong(),
TEST_USER_ID TEST_USER_ID
)).thenReturn(ParceledListSlice(listOf(PACKAGE_INFO))) )).thenReturn(ParceledListSlice(listOf(PACKAGE_INFO)))
@@ -231,10 +229,9 @@ class BackgroundInstalledAppsPageProviderTest {
flowOf(listOf(APP_RECORD_WITH_PACKAGE_MATCH, APP_RECORD_WITHOUT_PACKAGE_MATCH)) flowOf(listOf(APP_RECORD_WITH_PACKAGE_MATCH, APP_RECORD_WITHOUT_PACKAGE_MATCH))
) )
val recordList = recordListFlow.first() val recordList = recordListFlow.first()
Truth.assertThat(recordList).hasSize(1) assertThat(recordList).hasSize(1)
Truth.assertThat(recordList[0]).isSameInstanceAs(APP_RECORD_WITH_PACKAGE_MATCH) assertThat(recordList[0]).isSameInstanceAs(APP_RECORD_WITH_PACKAGE_MATCH)
} }
private fun setItemContent() { private fun setItemContent() {

View File

@@ -30,7 +30,6 @@ import android.os.Build
import androidx.test.core.app.ApplicationProvider import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settings.R import com.android.settings.R
import com.android.settingslib.spa.testutils.any
import com.android.settingslib.spaprivileged.model.app.IPackageManagers import com.android.settingslib.spaprivileged.model.app.IPackageManagers
import com.android.settingslib.spaprivileged.model.app.userId import com.android.settingslib.spaprivileged.model.app.userId
import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat
@@ -42,11 +41,12 @@ import org.junit.Rule
import org.junit.Test import org.junit.Test
import org.junit.runner.RunWith import org.junit.runner.RunWith
import org.mockito.Mock import org.mockito.Mock
import org.mockito.Mockito.eq
import org.mockito.Mockito.verify
import org.mockito.junit.MockitoJUnit import org.mockito.junit.MockitoJUnit
import org.mockito.junit.MockitoRule import org.mockito.junit.MockitoRule
import org.mockito.Mockito.`when` as whenever import org.mockito.kotlin.any
import org.mockito.kotlin.eq
import org.mockito.kotlin.verify
import org.mockito.kotlin.whenever
@RunWith(AndroidJUnit4::class) @RunWith(AndroidJUnit4::class)
class AppNotificationRepositoryTest { class AppNotificationRepositoryTest {