diff --git a/tests/telephonytests/src/com/android/internal/telephony/SignalStrengthUpdateRequestTest.java b/tests/telephonytests/src/com/android/internal/telephony/SignalStrengthUpdateRequestTest.java index 9c29eda5572ddc135b4e3b5ae82600e8dba42c87..aa117433f11db0541a319b64e9016f9c69f374a2 100644 --- a/tests/telephonytests/src/com/android/internal/telephony/SignalStrengthUpdateRequestTest.java +++ b/tests/telephonytests/src/com/android/internal/telephony/SignalStrengthUpdateRequestTest.java @@ -34,36 +34,59 @@ import java.util.List; public class SignalStrengthUpdateRequestTest extends TestCase { - private SignalThresholdInfo mRssiInfo = new SignalThresholdInfo.Builder() + private SignalThresholdInfo mRssiInfoOnGERAN = new SignalThresholdInfo.Builder() .setRadioAccessNetworkType(AccessNetworkConstants.AccessNetworkType.GERAN) .setSignalMeasurementType(SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_RSSI) .setThresholds(new int[]{-109, -103, -97, -89}) .build(); - private SignalThresholdInfo mRscpInfo = new SignalThresholdInfo.Builder() + private SignalThresholdInfo mRssiInfoOnGERAN2 = new SignalThresholdInfo.Builder() + .setRadioAccessNetworkType(AccessNetworkConstants.AccessNetworkType.GERAN) + .setSignalMeasurementType(SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_RSSI) + .setThresholds(new int[]{-108, -102, -96, -88}) + .build(); + + private SignalThresholdInfo mRssiInfoOnCDMA2000 = new SignalThresholdInfo.Builder() + .setRadioAccessNetworkType(AccessNetworkConstants.AccessNetworkType.CDMA2000) + .setSignalMeasurementType(SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_RSSI) + .setThresholds(new int[]{-109, -103, -97, -89}) + .build(); + + private SignalThresholdInfo mRscpInfoOnUTRAN = new SignalThresholdInfo.Builder() .setRadioAccessNetworkType(AccessNetworkConstants.AccessNetworkType.UTRAN) .setSignalMeasurementType(SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_RSCP) .setThresholds(new int[]{-115, -105, -95, -85}) .build(); + private SignalThresholdInfo mRsrpInfoOnEUTRAN = new SignalThresholdInfo.Builder() + .setRadioAccessNetworkType(AccessNetworkConstants.AccessNetworkType.EUTRAN) + .setSignalMeasurementType(SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_RSRP) + .setThresholds(new int[]{-115, -105, -95, -85}) + .build(); + + private SignalThresholdInfo mRsrqInfoEUTRAN = new SignalThresholdInfo.Builder() + .setRadioAccessNetworkType(AccessNetworkConstants.AccessNetworkType.EUTRAN) + .setSignalMeasurementType(SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_RSRQ) + .setThresholds(new int[]{-30, -20, -10, -1}) + .build(); + @Test @SmallTest public void testPublicConstructorWithInvalidParam() { // null Collection validateBuilderWithInvalidParam(null); - // duplication of SignalMeasurementType in Collection - validateBuilderWithInvalidParam(List.of(mRssiInfo, mRssiInfo)); + // duplication of SignalMeasurementType for the same RAN in Collection + validateBuilderWithInvalidParam(List.of(mRssiInfoOnGERAN, mRssiInfoOnGERAN2)); - // The following two cases can not turn on until the implement is ready: // empty Collections - // validateBuilderWithInvalidParam(List.of()); + validateBuilderWithInvalidParam(List.of()); } @Test @SmallTest public void testPublicConstructorWithValidParam() { - Collection infos = List.of(mRssiInfo, mRscpInfo); + Collection infos = List.of(mRssiInfoOnGERAN, mRscpInfoOnUTRAN); SignalStrengthUpdateRequest request = new SignalStrengthUpdateRequest.Builder() .setSignalThresholdInfos(infos).setReportingRequestedWhileIdle(false).build(); assertFalse(request.isReportingRequestedWhileIdle()); @@ -74,7 +97,7 @@ public class SignalStrengthUpdateRequestTest extends TestCase { @Test @SmallTest public void testParcel() { - Collection infos = List.of(mRssiInfo, mRscpInfo); + Collection infos = List.of(mRssiInfoOnGERAN, mRscpInfoOnUTRAN); SignalStrengthUpdateRequest request = new SignalStrengthUpdateRequest.Builder() .setSignalThresholdInfos(infos).setReportingRequestedWhileIdle(true).build(); @@ -90,14 +113,14 @@ public class SignalStrengthUpdateRequestTest extends TestCase { @Test @SmallTest public void testEquals() { - Collection infos1 = List.of(mRssiInfo, mRscpInfo); + Collection infos1 = List.of(mRssiInfoOnGERAN, mRssiInfoOnCDMA2000); SignalStrengthUpdateRequest request1 = new SignalStrengthUpdateRequest.Builder() .setSignalThresholdInfos(infos1).setReportingRequestedWhileIdle(false).build(); assertTrue(request1.equals(request1)); // Ordering does not matter - Collection infos2 = List.of(mRscpInfo, mRssiInfo); + Collection infos2 = List.of(mRssiInfoOnCDMA2000, mRssiInfoOnGERAN); SignalStrengthUpdateRequest request2 = new SignalStrengthUpdateRequest.Builder() .setSignalThresholdInfos(infos2).setReportingRequestedWhileIdle(false).build(); assertTrue(request1.equals(request2)); @@ -109,11 +132,36 @@ public class SignalStrengthUpdateRequestTest extends TestCase { SignalStrengthUpdateRequest request4 = new SignalStrengthUpdateRequest.Builder() .setSignalThresholdInfos(infos1).setReportingRequestedWhileIdle(false) .setSystemThresholdReportingRequestedWhileIdle(true).build(); + assertFalse(request1.equals(request4)); // return false if the object is not SignalStrengthUpdateRequest assertFalse(request1.equals("test")); } + @Test + @SmallTest + public void testMultipleSignalMeasurementTypeOnSameRan() { + Collection infos = List.of(mRsrpInfoOnEUTRAN, mRsrqInfoEUTRAN); + SignalStrengthUpdateRequest request = new SignalStrengthUpdateRequest.Builder() + .setSignalThresholdInfos(infos).build(); + + assertFalse(request.isReportingRequestedWhileIdle()); + assertFalse(request.isSystemThresholdReportingRequestedWhileIdle()); + assertEquals(infos, request.getSignalThresholdInfos()); + } + + @Test + @SmallTest + public void testSameSignalMeasurementTypeOnDifferentRan() { + Collection infos = List.of(mRssiInfoOnGERAN, mRssiInfoOnCDMA2000); + SignalStrengthUpdateRequest request = new SignalStrengthUpdateRequest.Builder() + .setSignalThresholdInfos(infos).build(); + + assertFalse(request.isReportingRequestedWhileIdle()); + assertFalse(request.isSystemThresholdReportingRequestedWhileIdle()); + assertEquals(infos, request.getSignalThresholdInfos()); + } + private void validateBuilderWithInvalidParam(Collection infos) { try { new SignalStrengthUpdateRequest.Builder()