Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0f37f72c authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add getMaxAllowedDataMode() on SatelliteController" into main

parents c73bbdcb 9ae6c6d3
Loading
Loading
Loading
Loading
+112 −8
Original line number Diff line number Diff line
@@ -6086,6 +6086,57 @@ public class SatelliteController extends Handler {
        }
    }

    @NonNull
    private int getMaxAllowedDataModeDeviceConfigOverlay() {
        int maxAllowedDataMode = CarrierConfigManager.SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED;
        try {
            maxAllowedDataMode =
                    mContext.getResources().getInteger(R.integer.max_allowed_data_mode);
        } catch (Resources.NotFoundException ex) {
            ploge(
                    "getMaxAllowedDataModeDeviceConfigOverlay: max_allowed_data_mode resource not"
                            + " found. ex="
                            + ex);
        }
        logd("getMaxAllowedDataModeDeviceConfigOverlay: " + maxAllowedDataMode);
        return maxAllowedDataMode;
    }

    /**
     * @return An integer representing the maximum allowed data mode. This will be the value from
     *     the configupdater configuration if available and valid, otherwise the value from the
     *     device configuration overlay.
     */
    @VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
    public int getMaxAllowedDataMode() {
        int maxAllowedDataMode = getMaxAllowedDataModeDeviceConfigOverlay();
        logd("getMaxAllowedDataMode: device config=" + maxAllowedDataMode);

        SatelliteConfig satelliteConfig = getSatelliteConfig();
        if (satelliteConfig == null) {
            logd(
                    "getMaxAllowedDataMode: satelliteConfig is null: "
                            + "return "
                            + maxAllowedDataMode);
            return maxAllowedDataMode;
        }

        if (satelliteConfig.getSatelliteMaxAllowedDataMode() == null) {
            logd(
                    "getMaxAllowedDataMode: getSatelliteMaxAllowedDataMode() is null: "
                            + "return "
                            + maxAllowedDataMode);
            return maxAllowedDataMode;
        }

        maxAllowedDataMode = satelliteConfig.getSatelliteMaxAllowedDataMode();
        logd(
                "getMaxAllowedDataMode: "
                        + "satelliteConfig.getSatelliteMaxAllowedDataMode()="
                        + maxAllowedDataMode);
        return maxAllowedDataMode;
    }

    @NonNull
    private List<String> readSatellitePlmnsFromOverlayConfig() {
        String[] devicePlmns = readStringArrayFromOverlayConfig(
@@ -9741,18 +9792,30 @@ public class SatelliteController extends Handler {

    /**
     * Method to return the current satellite data service policy supported mode for the registered
     * plmn based on entitlement provisioning information. Note: If no information at
     * provisioning is supported this is overridden with operator carrier config information
     * if available satellite services support data else data service policy is marked as
     * restricted.
     * plmn based on entitlement provisioning information. Note: If no information at provisioning
     * is supported this is overridden with operator carrier config information if available
     * satellite services support data else data service policy is marked as restricted. Note that
     * the data service policy is capped at maxAllowedDataMode which is configured by OEMs through
     * {@link R.integer.max_allowed_data_mode} or through {@link SatelliteConfig}
     *
     * @param subId current subscription id
     * @param plmn current registered plmn information
     *
     * @return Supported modes {@link CarrierConfigManager.SATELLITE_DATA_SUPPORT_MODE}
     */
    public int getSatelliteDataServicePolicyForPlmn(int subId, String plmn) {
        plogd("getSatelliteDataServicePolicyForPlmn: subId=" + subId + " plmn=" + plmn);
        int maxAllowedDataMode = getMaxAllowedDataMode();
        plogd("getSatelliteDataServicePolicyForPlmn: maxAllowedDataMode=" + maxAllowedDataMode);

        if (maxAllowedDataMode == CarrierConfigManager.SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED) {
            plogd(
                    "maxAllowedDataMode is "
                            + CarrierConfigManager.SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED
                            + ", the least possible value. Data service policy cannot go below"
                            + " that. Therefore, returning this");
            return maxAllowedDataMode;
        }

        if (isValidSubscriptionId(subId)) {
            Map<String, Integer> dataServicePolicy;
            synchronized (mSupportedSatelliteServicesLock) {
@@ -9767,6 +9830,18 @@ public class SatelliteController extends Handler {
                if (!TextUtils.isEmpty(plmn) && dataServicePolicy.containsKey(plmn)) {
                    plogd("getSatelliteDataServicePolicyForPlmn: "
                            + "return policy using dataServicePolicy map");
                    if (dataServicePolicy.get(plmn) > maxAllowedDataMode) {
                        plogd(
                                "getSatelliteDataServicePolicyForPlmn: dataServicePolicy shouldn't "
                                        + "be bigger than maxAllowedDataMode: "
                                        + maxAllowedDataMode);
                        return maxAllowedDataMode;
                    }

                    plogd(
                            "getSatelliteDataServicePolicyForPlmn: "
                                    + "return policy using dataServicePolicy map: "
                                    + dataServicePolicy.get(plmn));
                    return dataServicePolicy.get(plmn);
                } else if (TextUtils.isEmpty(plmn)) {
                    int preferredPolicy =
@@ -9786,8 +9861,23 @@ public class SatelliteController extends Handler {
                    // subscription id.
                    if (preferredPolicy
                            > CarrierConfigManager.SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED) {
                        plogd("getSatelliteDataServicePolicyForPlmn: "
                                + "return preferredPolicy=" + preferredPolicy);
                        plogd(
                                "getSatelliteDataServicePolicyForPlmn: "
                                        + "preferredPolicy="
                                        + preferredPolicy);

                        if (preferredPolicy > maxAllowedDataMode) {
                            plogd(
                                    "getSatelliteDataServicePolicyForPlmn: preferredPolicy"
                                            + " shouldn't be bigger than maxAllowedDataMode: "
                                            + maxAllowedDataMode);
                            return maxAllowedDataMode;
                        }

                        plogd(
                                "getSatelliteDataServicePolicyForPlmn: "
                                        + "returning preferredPolicy="
                                        + preferredPolicy);
                        return preferredPolicy;
                    }
                }
@@ -9795,7 +9885,21 @@ public class SatelliteController extends Handler {

            if (isSatelliteDataServicesAllowed(subId, plmn)) {
                plogd("getSatelliteDataServicePolicyForPlmn: return data support mode from config");
                return getCarrierSatelliteDataSupportedModeFromConfig(subId);
                int carrierSatelliteDataSupportedMode =
                        getCarrierSatelliteDataSupportedModeFromConfig(subId);
                if (carrierSatelliteDataSupportedMode > maxAllowedDataMode) {
                    plogd(
                            "getSatelliteDataServicePolicyForPlmn:"
                                    + " carrierSatelliteDataSupportedMode shouldn't be bigger than"
                                    + " maxAllowedDataMode: "
                                    + maxAllowedDataMode);
                    return maxAllowedDataMode;
                }
                plogd(
                        "getSatelliteDataServicePolicyForPlmn: return data support mode from"
                                + " config: "
                                + carrierSatelliteDataSupportedMode);
                return carrierSatelliteDataSupportedMode;
            }
        }

+289 −0
Original line number Diff line number Diff line
@@ -4261,6 +4261,50 @@ public class SatelliteControllerTest extends TelephonyTest {
        assertTrue(mSatelliteControllerUT.isFoldable(mContext, foldableDeviceStateList));
    }

    @Test
    public void testGetMaxAllowedDataMode() {
        logd("testGetMaxAllowedDataMode");
        doReturn(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED)
                .when(mResources)
                .getInteger(eq(R.integer.max_allowed_data_mode));

        // case mMockConfigParser is null
        doReturn(null).when(mMockConfigParser).getConfig();
        assertEquals(
                "Check satelliteConfig is null case",
                SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED,
                mSatelliteControllerUT.getMaxAllowedDataMode());

        // case mMockConfig.getSatelliteMaxAllowedDataMode is null
        doReturn(mMockConfig).when(mMockConfigParser).getConfig();
        doReturn(null).when(mMockConfig).getSatelliteMaxAllowedDataMode();
        assertEquals(
                "Check getSatelliteMaxAllowedDataMode() is null case",
                SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED,
                mSatelliteControllerUT.getMaxAllowedDataMode());

        // case mMockConfig.getSatelliteMaxAllowedDataMode is bigger than device config
        doReturn(SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED)
                .when(mMockConfig)
                .getSatelliteMaxAllowedDataMode();
        assertEquals(
                "Check satelliteConfig value is 'bandwidth constrained' case",
                SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED,
                mSatelliteControllerUT.getMaxAllowedDataMode());

        // case mMockConfig.getSatelliteMaxAllowedDataMode is smaller than device config
        doReturn(SATELLITE_DATA_SUPPORT_ALL)
                .when(mResources)
                .getInteger(eq(R.integer.max_allowed_data_mode));
        doReturn(SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED)
                .when(mMockConfig)
                .getSatelliteMaxAllowedDataMode();
        assertEquals(
                "Check satelliteConfig value should override device config",
                SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED,
                mSatelliteControllerUT.getMaxAllowedDataMode());
    }

    @Test
    public void testTerrestrialNetworkAvailableChangedCallback() {
        when(mFeatureFlags.carrierRoamingNbIotNtn()).thenReturn(true);
@@ -6613,6 +6657,10 @@ public class SatelliteControllerTest extends TelephonyTest {
    public void testGetSupportedSatelliteDataModeForPlmn_WithEntitlement() throws Exception {
        logd("testGetSupportedSatelliteDataModeForPlmn_WithEntitlement");

        mContextFixture.putIntResource(
                com.android.internal.R.integer.max_allowed_data_mode, SATELLITE_DATA_SUPPORT_ALL);
        doReturn(SATELLITE_DATA_SUPPORT_ALL).when(mMockConfig).getSatelliteMaxAllowedDataMode();

        replaceInstance(SatelliteController.class, "mMergedPlmnListPerCarrier",
                mSatelliteControllerUT, new SparseArray<>());
        List<String> overlayConfigPlmnList = new ArrayList<>();
@@ -6694,10 +6742,126 @@ public class SatelliteControllerTest extends TelephonyTest {
        assertEquals(SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED, dataSupportModeForPlmn);
    }

    @Test
    public void testGetSupportedSatelliteDataModeForPlmn_WithEntitlement_AllMaxAllowedDataMode()
            throws Exception {
        logd("testGetSupportedSatelliteDataModeForPlmn_WithEntitlement_AllMaxAllowedDataMode");

        replaceInstance(
                SatelliteController.class,
                "mMergedPlmnListPerCarrier",
                mSatelliteControllerUT,
                new SparseArray<>());
        List<String> overlayConfigPlmnList = new ArrayList<>();
        replaceInstance(
                SatelliteController.class,
                "mSatellitePlmnListFromOverlayConfig",
                mSatelliteControllerUT,
                overlayConfigPlmnList);
        mCarrierConfigBundle.putBoolean(
                CarrierConfigManager.KEY_SATELLITE_ATTACH_SUPPORTED_BOOL, true);

        // With Satellite entitlement support bool true with entitlement data service policy map
        mCarrierConfigBundle.putBoolean(
                CarrierConfigManager.KEY_SATELLITE_ENTITLEMENT_SUPPORTED_BOOL, true);

        List<String> entitlementPlmnList =
                Arrays.stream(new String[] {"00101", "00102", "00103", "00104"}).toList();
        List<String> barredPlmnList = new ArrayList<>();
        Map<String, Integer> dataServicePolicyMap =
                Map.of(
                        "00101", SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED,
                        "00102", SATELLITE_DATA_SUPPORT_ALL);
        mSatelliteControllerUT.onSatelliteEntitlementStatusUpdated(
                SUB_ID,
                false,
                entitlementPlmnList,
                barredPlmnList,
                new HashMap<>(),
                new HashMap<>(),
                dataServicePolicyMap,
                new HashMap<>(),
                mIIntegerConsumer);

        // Cap maxAllowedDataMode to SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED
        mContextFixture.putIntResource(
                com.android.internal.R.integer.max_allowed_data_mode,
                SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED);
        doReturn(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED)
                .when(mMockConfig)
                .getSatelliteMaxAllowedDataMode();

        int dataSupportModeForPlmn;
        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, "00101");
        assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn);

        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, "00102");
        assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn);

        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, "");
        assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn);

        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, null);
        assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn);

        // Cap maxAllowedDataMode to SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED
        mContextFixture.putIntResource(
                com.android.internal.R.integer.max_allowed_data_mode,
                SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED);
        doReturn(SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED)
                .when(mMockConfig)
                .getSatelliteMaxAllowedDataMode();

        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, "00101");
        assertEquals(SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED, dataSupportModeForPlmn);

        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, "00102");
        assertEquals(SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED, dataSupportModeForPlmn);

        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, "");
        assertEquals(SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED, dataSupportModeForPlmn);

        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, null);
        assertEquals(SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED, dataSupportModeForPlmn);

        // Cap maxAllowedDataMode to SATELLITE_DATA_SUPPORT_ALL
        mContextFixture.putIntResource(
                com.android.internal.R.integer.max_allowed_data_mode, SATELLITE_DATA_SUPPORT_ALL);
        doReturn(SATELLITE_DATA_SUPPORT_ALL).when(mMockConfig).getSatelliteMaxAllowedDataMode();

        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, "00101");
        assertEquals(SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED, dataSupportModeForPlmn);

        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, "00102");
        assertEquals(SATELLITE_DATA_SUPPORT_ALL, dataSupportModeForPlmn);

        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, "");
        assertEquals(SATELLITE_DATA_SUPPORT_ALL, dataSupportModeForPlmn);

        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, null);
        assertEquals(SATELLITE_DATA_SUPPORT_ALL, dataSupportModeForPlmn);
    }

    @Test
    public void testGetSupportedSatelliteDataModeForPlmn_WithoutEntitlement() throws Exception {
        logd("testGetSupportedSatelliteDataModeForPlmn_WithoutEntitlement");

        mContextFixture.putIntResource(
                com.android.internal.R.integer.max_allowed_data_mode, SATELLITE_DATA_SUPPORT_ALL);
        doReturn(SATELLITE_DATA_SUPPORT_ALL).when(mMockConfig).getSatelliteMaxAllowedDataMode();

        replaceInstance(SatelliteController.class, "mMergedPlmnListPerCarrier",
                mSatelliteControllerUT, new SparseArray<>());
        List<String> overlayConfigPlmnList = new ArrayList<>();
@@ -6753,6 +6917,131 @@ public class SatelliteControllerTest extends TelephonyTest {
                .getSatelliteDataServicePolicyForPlmn(SUB_ID, "");
        assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn);

        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, null);
        assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn);
    }

    @Test
    public void testGetSupportedSatelliteDataModeForPlmn_WithoutEntitlement_AllMaxAllowedDataMode()
            throws Exception {
        logd("testGetSupportedSatelliteDataModeForPlmn_WithoutEntitlement_AllMaxAllowedDataMode");

        replaceInstance(
                SatelliteController.class,
                "mMergedPlmnListPerCarrier",
                mSatelliteControllerUT,
                new SparseArray<>());
        List<String> overlayConfigPlmnList = new ArrayList<>();
        replaceInstance(
                SatelliteController.class,
                "mSatellitePlmnListFromOverlayConfig",
                mSatelliteControllerUT,
                overlayConfigPlmnList);
        mCarrierConfigBundle.putBoolean(
                CarrierConfigManager.KEY_SATELLITE_ATTACH_SUPPORTED_BOOL, true);

        // Without entitlement
        mCarrierConfigBundle.putBoolean(
                CarrierConfigManager.KEY_SATELLITE_ENTITLEMENT_SUPPORTED_BOOL, false);

        List<String> entitlementPlmnList =
                Arrays.stream(new String[] {"00101", "00102", "00103", "00104"}).toList();
        List<String> barredPlmnList = new ArrayList<>();
        Map<String, Integer> dataServicePolicyMap = new HashMap<>();
        mSatelliteControllerUT.onSatelliteEntitlementStatusUpdated(
                SUB_ID,
                false,
                entitlementPlmnList,
                barredPlmnList,
                new HashMap<>(),
                new HashMap<>(),
                dataServicePolicyMap,
                new HashMap<>(),
                mIIntegerConsumer);

        // when Available satellite services is not configured with data service
        mCarrierConfigBundle.putInt(
                CarrierConfigManager.KEY_SATELLITE_DATA_SUPPORT_MODE_INT,
                SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED);
        int dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, "00101");
        assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn);

        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, "");
        assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn);

        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, null);
        assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn);

        setConfigData(new ArrayList<>());
        PersistableBundle carrierSupportedSatelliteServicesPerProvider = new PersistableBundle();
        List<String> carrierConfigPlmnList = List.of("00101");
        carrierSupportedSatelliteServicesPerProvider.putIntArray(
                carrierConfigPlmnList.get(0), new int[] {2, 3, 5});
        mCarrierConfigBundle.putPersistableBundle(
                CarrierConfigManager.KEY_CARRIER_SUPPORTED_SATELLITE_SERVICES_PER_PROVIDER_BUNDLE,
                carrierSupportedSatelliteServicesPerProvider);
        invokeCarrierConfigChanged();

        // when Available satellite services support data service
        // And maxAllowedDataMode capped to SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED
        mContextFixture.putIntResource(
                com.android.internal.R.integer.max_allowed_data_mode,
                SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED);
        doReturn(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED)
                .when(mMockConfig)
                .getSatelliteMaxAllowedDataMode();

        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, "00101");
        assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn);

        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, "");
        assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn);

        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, null);
        assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn);

        // when Available satellite services support data service
        // And maxAllowedDataMode capped to SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED
        mContextFixture.putIntResource(
                com.android.internal.R.integer.max_allowed_data_mode,
                SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED);
        doReturn(SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED)
                .when(mMockConfig)
                .getSatelliteMaxAllowedDataMode();

        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, "00101");
        assertEquals(SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED, dataSupportModeForPlmn);

        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, "");
        assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn);

        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, null);
        assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn);

        // when Available satellite services support data service
        // And maxAllowedDataMode capped to SATELLITE_DATA_SUPPORT_ALL
        mContextFixture.putIntResource(
                com.android.internal.R.integer.max_allowed_data_mode, SATELLITE_DATA_SUPPORT_ALL);
        doReturn(SATELLITE_DATA_SUPPORT_ALL).when(mMockConfig).getSatelliteMaxAllowedDataMode();

        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, "00101");
        assertEquals(SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED, dataSupportModeForPlmn);

        dataSupportModeForPlmn =
                mSatelliteControllerUT.getSatelliteDataServicePolicyForPlmn(SUB_ID, "");
        assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn);

        dataSupportModeForPlmn = mSatelliteControllerUT
                .getSatelliteDataServicePolicyForPlmn(SUB_ID, null);
        assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn);