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
boolean deviceSupportsNvAndRuim() {
// 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 ruimSupported = false;
@@ -98,4 +98,9 @@ public class CdmaSubscriptionPreferenceController extends CdmaBasePreferenceCont
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 android.content.Context;
import android.os.SystemProperties;
import android.provider.Settings;
import android.telephony.TelephonyManager;
@@ -64,7 +63,7 @@ public class CdmaSubscriptionPreferenceControllerTest {
doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
mPreference = new ListPreference(mContext);
mController = new CdmaSubscriptionPreferenceController(mContext, "mobile_data");
mController = spy(new CdmaSubscriptionPreferenceController(mContext, "mobile_data"));
mController.init(mPreferenceManager, SUB_ID);
mController.mPreference = mPreference;
mPreference.setKey(mController.getPreferenceKey());
@@ -72,16 +71,12 @@ public class CdmaSubscriptionPreferenceControllerTest {
mCdmaMode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.CDMA_SUBSCRIPTION_MODE,
TelephonyManager.CDMA_SUBSCRIPTION_RUIM_SIM);
mSubscriptionsSupported = SystemProperties.get("ril.subscription.types");
}
@After
public void tearDown() {
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.CDMA_SUBSCRIPTION_MODE, mCdmaMode);
SystemProperties.set("ril.subscription.types", mSubscriptionsSupported);
}
@Test
@@ -123,11 +118,9 @@ public class CdmaSubscriptionPreferenceControllerTest {
@Test
public void deviceSupportsNvAndRuim() {
SystemProperties.set("ril.subscription.types", "NV,RUIM");
doReturn("NV,RUIM").when(mController).getRilSubscriptionTypes();
assertThat(mController.deviceSupportsNvAndRuim()).isTrue();
SystemProperties.set("ril.subscription.types", "");
doReturn("").when(mController).getRilSubscriptionTypes();
assertThat(mController.deviceSupportsNvAndRuim()).isFalse();
}
}