From 6bccd3639942ccc401cf1e802f609c8026ae6067 Mon Sep 17 00:00:00 2001 From: Jeremy Goldman Date: Tue, 23 Feb 2021 13:57:52 +0800 Subject: [PATCH] HardwareInfoPreferenceControllerTest migrated to JUnit. ResourcesUtils used to get boolean resource id. Test: atest -c HardwareInfoPreferenceControllerTest Change-Id: I55aad63d8fbab5a70dafd49f2f79965dce5049b6 --- .../HardwareInfoPreferenceControllerTest.java | 33 +++++++++++++++---- 1 file changed, 26 insertions(+), 7 deletions(-) rename tests/{robotests => unit}/src/com/android/settings/deviceinfo/hardwareinfo/HardwareInfoPreferenceControllerTest.java (70%) diff --git a/tests/robotests/src/com/android/settings/deviceinfo/hardwareinfo/HardwareInfoPreferenceControllerTest.java b/tests/unit/src/com/android/settings/deviceinfo/hardwareinfo/HardwareInfoPreferenceControllerTest.java similarity index 70% rename from tests/robotests/src/com/android/settings/deviceinfo/hardwareinfo/HardwareInfoPreferenceControllerTest.java rename to tests/unit/src/com/android/settings/deviceinfo/hardwareinfo/HardwareInfoPreferenceControllerTest.java index c7c7669c86e..7262615fc42 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/hardwareinfo/HardwareInfoPreferenceControllerTest.java +++ b/tests/unit/src/com/android/settings/deviceinfo/hardwareinfo/HardwareInfoPreferenceControllerTest.java @@ -17,41 +17,53 @@ package com.android.settings.deviceinfo.hardwareinfo; import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.when; + import android.content.Context; +import android.content.res.Resources; import android.os.Build; +import android.os.Looper; import androidx.preference.Preference; import androidx.preference.PreferenceManager; import androidx.preference.PreferenceScreen; +import androidx.test.core.app.ApplicationProvider; +import androidx.test.ext.junit.runners.AndroidJUnit4; import com.android.settings.core.BasePreferenceController; import com.android.settings.deviceinfo.HardwareInfoPreferenceController; +import com.android.settings.testutils.ResourcesUtils; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; -import org.robolectric.annotation.Config; -@RunWith(RobolectricTestRunner.class) +@RunWith(AndroidJUnit4.class) public class HardwareInfoPreferenceControllerTest { - private final String KEY = "device_model"; + private static final String KEY = "device_model"; private Preference mPreference; private PreferenceScreen mPreferenceScreen; private Context mContext; + @Mock + private Resources mResources; private HardwareInfoPreferenceController mController; @Before public void setUp() { MockitoAnnotations.initMocks(this); - mContext = RuntimeEnvironment.application; + mContext = spy(ApplicationProvider.getApplicationContext()); + when(mContext.getResources()).thenReturn(mResources); mController = new HardwareInfoPreferenceController(mContext, KEY); mPreference = new Preference(mContext); mPreference.setKey(KEY); + if (Looper.myLooper() == null) { + Looper.prepare(); + } final PreferenceManager preferenceManager = new PreferenceManager(mContext); mPreferenceScreen = preferenceManager.createPreferenceScreen(mContext); mPreferenceScreen.addPreference(mPreference); @@ -59,13 +71,20 @@ public class HardwareInfoPreferenceControllerTest { @Test public void isAvailable_returnTrueIfVisible() { + final int boolId = ResourcesUtils.getResourcesId( + ApplicationProvider.getApplicationContext(), "bool", "config_show_device_model"); + + when(mResources.getBoolean(boolId)).thenReturn(true); assertThat(mController.getAvailabilityStatus()).isEqualTo( BasePreferenceController.AVAILABLE); } @Test - @Config(qualifiers = "mcc999") public void isAvailable_returnFalseIfNotVisible() { + final int boolId = ResourcesUtils.getResourcesId( + ApplicationProvider.getApplicationContext(), "bool", "config_show_device_model"); + + when(mResources.getBoolean(boolId)).thenReturn(false); assertThat(mController.getAvailabilityStatus()).isEqualTo( BasePreferenceController.UNSUPPORTED_ON_DEVICE); }