Merge "Tempates with different subscriber ID should be not equal"

This commit is contained in:
Aaron Huang
2023-02-10 08:06:07 +00:00
committed by Gerrit Code Review
2 changed files with 33 additions and 2 deletions

View File

@@ -383,8 +383,9 @@ public final class NetworkTemplate implements Parcelable {
@Override
public int hashCode() {
return Objects.hash(mMatchRule, Arrays.hashCode(mMatchWifiNetworkKeys),
mMetered, mRoaming, mDefaultNetwork, mRatType, mOemManaged);
return Objects.hash(mMatchRule, Arrays.hashCode(mMatchSubscriberIds),
Arrays.hashCode(mMatchWifiNetworkKeys), mMetered, mRoaming, mDefaultNetwork,
mRatType, mOemManaged);
}
@Override
@@ -397,6 +398,7 @@ public final class NetworkTemplate implements Parcelable {
&& mDefaultNetwork == other.mDefaultNetwork
&& mRatType == other.mRatType
&& mOemManaged == other.mOemManaged
&& Arrays.equals(mMatchSubscriberIds, other.mMatchSubscriberIds)
&& Arrays.equals(mMatchWifiNetworkKeys, other.mMatchWifiNetworkKeys);
}
return false;

View File

@@ -442,6 +442,35 @@ class NetworkTemplateTest {
templateUnknownNonMetered.assertDoesNotMatch(identWifi)
}
@Test
fun testEquals() {
val templateImsi1 = NetworkTemplate.Builder(MATCH_MOBILE).setMeteredness(METERED_YES)
.setSubscriberIds(setOf(TEST_IMSI1)).setRatType(TelephonyManager.NETWORK_TYPE_UMTS)
.build()
val dupTemplateImsi1 = NetworkTemplate(MATCH_MOBILE, arrayOf(TEST_IMSI1),
emptyArray<String>(), METERED_YES, ROAMING_ALL, DEFAULT_NETWORK_ALL,
TelephonyManager.NETWORK_TYPE_UMTS, OEM_MANAGED_ALL)
val templateImsi2 = NetworkTemplate.Builder(MATCH_MOBILE).setMeteredness(METERED_YES)
.setSubscriberIds(setOf(TEST_IMSI2)).setRatType(TelephonyManager.NETWORK_TYPE_UMTS)
.build()
assertEquals(templateImsi1, dupTemplateImsi1)
assertEquals(dupTemplateImsi1, templateImsi1)
assertNotEquals(templateImsi1, templateImsi2)
val templateWifiKey1 = NetworkTemplate.Builder(MATCH_WIFI)
.setWifiNetworkKeys(setOf(TEST_WIFI_KEY1)).build()
val dupTemplateWifiKey1 = NetworkTemplate(MATCH_WIFI, emptyArray<String>(),
arrayOf(TEST_WIFI_KEY1), METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL,
NETWORK_TYPE_ALL, OEM_MANAGED_ALL)
val templateWifiKey2 = NetworkTemplate.Builder(MATCH_WIFI)
.setWifiNetworkKeys(setOf(TEST_WIFI_KEY2)).build()
assertEquals(templateWifiKey1, dupTemplateWifiKey1)
assertEquals(dupTemplateWifiKey1, templateWifiKey1)
assertNotEquals(templateWifiKey1, templateWifiKey2)
}
@Test
fun testParcelUnparcel() {
val templateMobile = NetworkTemplate(MATCH_MOBILE, arrayOf(TEST_IMSI1),