From 6290ad950990a823d5df569d8265265feef65ca0 Mon Sep 17 00:00:00 2001 From: Chiachang Wang Date: Thu, 18 Mar 2021 14:13:17 +0800 Subject: [PATCH] Update mocking to correct target methods The correct target context should use the mActivity in MobileNetworkSettingsTest, so that the mocking for telephony service could correctly applied. Both AutoTimeZonePreferenceControllerTest and BasebandVersionPreferenceControllerTest refer to the lib implemented shadow Connectivitymanager but that does not the correct reference after utils class being updated. Update the test logic inside to refer to correct method. The reference to ShadowConnectivityManager does not needed anymore so remove it from the test. Fix: 183068151 Fix: 183067742 Fix: 183068139 Test: make RunSettingsRoboTests ROBOTEST_FILTER=\ com.android.settings.network.telephony.MobileNetworkSettingsTest Test: make RunSettingsRoboTests ROBOTEST_FILTER=\ com.android.settings.datetime.AutoTimeZonePreferenceControllerTest Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings\ .deviceinfo.firmwareversion.BasebandVersionPreferenceControllerTest Change-Id: I15ecc6aab7d530d20cd23b06267cc184a2c62b40 --- .../AutoTimeZonePreferenceControllerTest.java | 28 +++++++++---------- ...sebandVersionPreferenceControllerTest.java | 27 ++++++++---------- .../telephony/MobileNetworkSettingsTest.java | 2 +- 3 files changed, 25 insertions(+), 32 deletions(-) diff --git a/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java index 8a68f38fcfe..eb29b7ca76e 100644 --- a/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java @@ -18,17 +18,16 @@ package com.android.settings.datetime; import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; -import static org.robolectric.shadow.api.Shadow.extract; +import static org.mockito.Mockito.when; import android.content.Context; -import android.net.ConnectivityManager; import android.provider.Settings; +import android.telephony.TelephonyManager; import androidx.preference.Preference; -import com.android.settings.testutils.shadow.ShadowConnectivityManager; - import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -36,27 +35,28 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; -import org.robolectric.annotation.Config; @RunWith(RobolectricTestRunner.class) -@Config(shadows = ShadowConnectivityManager.class) public class AutoTimeZonePreferenceControllerTest { @Mock private UpdateTimeAndDateCallback mCallback; - + @Mock private Context mContext; private AutoTimeZonePreferenceController mController; private Preference mPreference; - private ShadowConnectivityManager connectivityManager; + @Mock + private TelephonyManager mTelephonyManager; @Before public void setUp() { MockitoAnnotations.initMocks(this); - mContext = RuntimeEnvironment.application; + mContext = spy(RuntimeEnvironment.application); + mPreference = new Preference(mContext); - connectivityManager = extract(mContext.getSystemService(ConnectivityManager.class)); - connectivityManager.setNetworkSupported(ConnectivityManager.TYPE_MOBILE, true); + + when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager); + when(mTelephonyManager.isDataCapable()).thenReturn(true); } @Test @@ -77,8 +77,7 @@ public class AutoTimeZonePreferenceControllerTest { @Test public void isWifiOnly_notAvailable() { - connectivityManager.setNetworkSupported(ConnectivityManager.TYPE_MOBILE, false); - + when(mTelephonyManager.isDataCapable()).thenReturn(false); mController = new AutoTimeZonePreferenceController( mContext, null /* callback */, false /* fromSUW */); @@ -95,8 +94,7 @@ public class AutoTimeZonePreferenceControllerTest { @Test public void isWifiOnly_notEnable() { - connectivityManager.setNetworkSupported(ConnectivityManager.TYPE_MOBILE, false); - + when(mTelephonyManager.isDataCapable()).thenReturn(false); mController = new AutoTimeZonePreferenceController( mContext, null /* callback */, false /* fromSUW */); diff --git a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceControllerTest.java index 79df2215545..87fdb222c42 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceControllerTest.java @@ -21,44 +21,42 @@ import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_ import static com.google.common.truth.Truth.assertThat; -import static org.robolectric.shadow.api.Shadow.extract; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.when; import android.content.Context; -import android.net.ConnectivityManager; import android.sysprop.TelephonyProperties; - -import com.android.settings.testutils.shadow.ShadowConnectivityManager; +import android.telephony.TelephonyManager; 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; import java.util.Arrays; @RunWith(RobolectricTestRunner.class) -@Config(shadows = ShadowConnectivityManager.class) public class BasebandVersionPreferenceControllerTest { - + @Mock private Context mContext; private BasebandVersionPreferenceController mController; + @Mock + private TelephonyManager mTelephonyManager; @Before public void setup() { MockitoAnnotations.initMocks(this); - mContext = RuntimeEnvironment.application; + mContext = spy(RuntimeEnvironment.application); mController = new BasebandVersionPreferenceController(mContext, "key"); + when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager); } @Test public void getAvailability_wifiOnly_unavailable() { - final ShadowConnectivityManager connectivityManager = - extract(mContext.getSystemService(ConnectivityManager.class)); - connectivityManager.setNetworkSupported(ConnectivityManager.TYPE_MOBILE, false); - + when(mTelephonyManager.isDataCapable()).thenReturn(false); assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); } @@ -66,10 +64,7 @@ public class BasebandVersionPreferenceControllerTest { public void getAvailability_hasMobile_available() { final String text = "test"; TelephonyProperties.baseband_version(Arrays.asList(new String[]{text})); - ShadowConnectivityManager connectivityManager = - extract(mContext.getSystemService(ConnectivityManager.class)); - connectivityManager.setNetworkSupported(ConnectivityManager.TYPE_MOBILE, true); - + when(mTelephonyManager.isDataCapable()).thenReturn(true); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); } } diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java index ea908602e24..44611cec616 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java @@ -74,7 +74,7 @@ public class MobileNetworkSettingsTest { public void setUp() { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); - when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager); + when(mActivity.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager); when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager); when(mContext.getSystemService(NetworkStatsManager.class)).thenReturn(mNetworkStatsManager); ShadowEntityHeaderController.setUseMock(mock(EntityHeaderController.class));