Do not crash when duplication found in merged imsi list

For some unknown reason, the merged imsi list might contain
duplicated items. Deduplication for better error handling.

Test: make RunSettingsRoboTests
Fix: 271298466
Change-Id: I3cbe8f9441769963a16720fc5128db173fa0868b
This commit is contained in:
Junyu Lai
2023-03-09 13:57:19 +08:00
parent 5bb798f518
commit 8005bc8f5b
2 changed files with 15 additions and 5 deletions

View File

@@ -103,11 +103,14 @@ public class DataUsageLibTest {
public void getMobileTemplate_groupUuidExist_returnMobileMerged() {
when(mSubscriptionManager.getActiveSubscriptionInfo(SUB_ID)).thenReturn(mInfo1);
when(mInfo1.getGroupUuid()).thenReturn(mParcelUuid);
// In some rare cases (e.g. b/243015487), merged subscriberId list might contain
// duplicated items. The implementation should perform deduplication.
when(mTelephonyManager.getMergedImsisFromGroup())
.thenReturn(new String[] {SUBSCRIBER_ID, SUBSCRIBER_ID_2});
.thenReturn(new String[] {SUBSCRIBER_ID, SUBSCRIBER_ID, SUBSCRIBER_ID_2});
final NetworkTemplate networkTemplate = DataUsageLib.getMobileTemplate(mContext, SUB_ID);
assertThat(networkTemplate.getSubscriberIds().contains(SUBSCRIBER_ID)).isTrue();
assertThat(networkTemplate.getSubscriberIds().contains(SUBSCRIBER_ID_2)).isTrue();
assertThat(networkTemplate.getSubscriberIds().size() == 2).isTrue();
}
}