Mock SystemProperties in CDMA JUnit test

Bug: 170608563
Test: atest -c CdmaSubscriptionPreferenceControllerTest
Change-Id: Ibeca5e508d8277a9b84e26829e085c43ce7c26cc
This commit is contained in:
Jeremy Goldman
2020-10-27 06:53:16 +00:00
parent 167362d0ca
commit 1d068385c6
2 changed files with 9 additions and 11 deletions

View File

@@ -79,7 +79,7 @@ public class CdmaSubscriptionPreferenceController extends CdmaBasePreferenceCont
@VisibleForTesting @VisibleForTesting
boolean deviceSupportsNvAndRuim() { boolean deviceSupportsNvAndRuim() {
// retrieve the list of subscription types supported by device. // retrieve the list of subscription types supported by device.
final String subscriptionsSupported = SystemProperties.get("ril.subscription.types"); final String subscriptionsSupported = getRilSubscriptionTypes();
boolean nvSupported = false; boolean nvSupported = false;
boolean ruimSupported = false; boolean ruimSupported = false;
@@ -98,4 +98,9 @@ public class CdmaSubscriptionPreferenceController extends CdmaBasePreferenceCont
return (nvSupported && ruimSupported); return (nvSupported && ruimSupported);
} }
@VisibleForTesting
protected String getRilSubscriptionTypes() {
return SystemProperties.get("ril.subscription.types");
}
} }

View File

@@ -24,7 +24,6 @@ import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.os.SystemProperties;
import android.provider.Settings; import android.provider.Settings;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
@@ -64,7 +63,7 @@ public class CdmaSubscriptionPreferenceControllerTest {
doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID); doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
mPreference = new ListPreference(mContext); mPreference = new ListPreference(mContext);
mController = new CdmaSubscriptionPreferenceController(mContext, "mobile_data"); mController = spy(new CdmaSubscriptionPreferenceController(mContext, "mobile_data"));
mController.init(mPreferenceManager, SUB_ID); mController.init(mPreferenceManager, SUB_ID);
mController.mPreference = mPreference; mController.mPreference = mPreference;
mPreference.setKey(mController.getPreferenceKey()); mPreference.setKey(mController.getPreferenceKey());
@@ -72,16 +71,12 @@ public class CdmaSubscriptionPreferenceControllerTest {
mCdmaMode = Settings.Global.getInt(mContext.getContentResolver(), mCdmaMode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.CDMA_SUBSCRIPTION_MODE, Settings.Global.CDMA_SUBSCRIPTION_MODE,
TelephonyManager.CDMA_SUBSCRIPTION_RUIM_SIM); TelephonyManager.CDMA_SUBSCRIPTION_RUIM_SIM);
mSubscriptionsSupported = SystemProperties.get("ril.subscription.types");
} }
@After @After
public void tearDown() { public void tearDown() {
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.CDMA_SUBSCRIPTION_MODE, mCdmaMode); Settings.Global.CDMA_SUBSCRIPTION_MODE, mCdmaMode);
SystemProperties.set("ril.subscription.types", mSubscriptionsSupported);
} }
@Test @Test
@@ -123,11 +118,9 @@ public class CdmaSubscriptionPreferenceControllerTest {
@Test @Test
public void deviceSupportsNvAndRuim() { public void deviceSupportsNvAndRuim() {
SystemProperties.set("ril.subscription.types", "NV,RUIM"); doReturn("NV,RUIM").when(mController).getRilSubscriptionTypes();
assertThat(mController.deviceSupportsNvAndRuim()).isTrue(); assertThat(mController.deviceSupportsNvAndRuim()).isTrue();
doReturn("").when(mController).getRilSubscriptionTypes();
SystemProperties.set("ril.subscription.types", "");
assertThat(mController.deviceSupportsNvAndRuim()).isFalse(); assertThat(mController.deviceSupportsNvAndRuim()).isFalse();
} }
} }