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

Commit 1c6e353e authored by Rambo Wang's avatar Rambo Wang
Browse files

Update the UT for SignalStrengthUpdateRequest

Make sure test cases cover following scenarios:
- Request allows same SignalMeasurementType on different RAN
- Request allows different SignalMeasurementTypes on same RAN
- IAE should thrown when SignalMeasurementType on same RAN
  is not unique

Bug: 198318496
Test: atest SignalStrengthUpdateRequestTest
Change-Id: Ic1941730f9833219f0661d32722aabb1882277ac
parent 1ad04fc9
Loading
Loading
Loading
Loading
+58 −10
Original line number Original line Diff line number Diff line
@@ -34,36 +34,59 @@ import java.util.List;


public class SignalStrengthUpdateRequestTest extends TestCase {
public class SignalStrengthUpdateRequestTest extends TestCase {


    private SignalThresholdInfo mRssiInfo = new SignalThresholdInfo.Builder()
    private SignalThresholdInfo mRssiInfoOnGERAN = new SignalThresholdInfo.Builder()
            .setRadioAccessNetworkType(AccessNetworkConstants.AccessNetworkType.GERAN)
            .setRadioAccessNetworkType(AccessNetworkConstants.AccessNetworkType.GERAN)
            .setSignalMeasurementType(SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_RSSI)
            .setSignalMeasurementType(SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_RSSI)
            .setThresholds(new int[]{-109, -103, -97, -89})
            .setThresholds(new int[]{-109, -103, -97, -89})
            .build();
            .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)
            .setRadioAccessNetworkType(AccessNetworkConstants.AccessNetworkType.UTRAN)
            .setSignalMeasurementType(SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_RSCP)
            .setSignalMeasurementType(SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_RSCP)
            .setThresholds(new int[]{-115, -105, -95, -85})
            .setThresholds(new int[]{-115, -105, -95, -85})
            .build();
            .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
    @Test
    @SmallTest
    @SmallTest
    public void testPublicConstructorWithInvalidParam() {
    public void testPublicConstructorWithInvalidParam() {
        // null Collection
        // null Collection
        validateBuilderWithInvalidParam(null);
        validateBuilderWithInvalidParam(null);


        // duplication of SignalMeasurementType in Collection
        // duplication of SignalMeasurementType for the same RAN in Collection
        validateBuilderWithInvalidParam(List.of(mRssiInfo, mRssiInfo));
        validateBuilderWithInvalidParam(List.of(mRssiInfoOnGERAN, mRssiInfoOnGERAN2));


        // The following two cases can not turn on until the implement is ready:
        // empty Collections
        // empty Collections
        // validateBuilderWithInvalidParam(List.of());
        validateBuilderWithInvalidParam(List.of());
    }
    }


    @Test
    @Test
    @SmallTest
    @SmallTest
    public void testPublicConstructorWithValidParam() {
    public void testPublicConstructorWithValidParam() {
        Collection<SignalThresholdInfo> infos = List.of(mRssiInfo, mRscpInfo);
        Collection<SignalThresholdInfo> infos = List.of(mRssiInfoOnGERAN, mRscpInfoOnUTRAN);
        SignalStrengthUpdateRequest request = new SignalStrengthUpdateRequest.Builder()
        SignalStrengthUpdateRequest request = new SignalStrengthUpdateRequest.Builder()
                .setSignalThresholdInfos(infos).setReportingRequestedWhileIdle(false).build();
                .setSignalThresholdInfos(infos).setReportingRequestedWhileIdle(false).build();
        assertFalse(request.isReportingRequestedWhileIdle());
        assertFalse(request.isReportingRequestedWhileIdle());
@@ -74,7 +97,7 @@ public class SignalStrengthUpdateRequestTest extends TestCase {
    @Test
    @Test
    @SmallTest
    @SmallTest
    public void testParcel() {
    public void testParcel() {
        Collection<SignalThresholdInfo> infos = List.of(mRssiInfo, mRscpInfo);
        Collection<SignalThresholdInfo> infos = List.of(mRssiInfoOnGERAN, mRscpInfoOnUTRAN);
        SignalStrengthUpdateRequest request = new SignalStrengthUpdateRequest.Builder()
        SignalStrengthUpdateRequest request = new SignalStrengthUpdateRequest.Builder()
                .setSignalThresholdInfos(infos).setReportingRequestedWhileIdle(true).build();
                .setSignalThresholdInfos(infos).setReportingRequestedWhileIdle(true).build();


@@ -90,14 +113,14 @@ public class SignalStrengthUpdateRequestTest extends TestCase {
    @Test
    @Test
    @SmallTest
    @SmallTest
    public void testEquals() {
    public void testEquals() {
        Collection<SignalThresholdInfo> infos1 = List.of(mRssiInfo, mRscpInfo);
        Collection<SignalThresholdInfo> infos1 = List.of(mRssiInfoOnGERAN, mRssiInfoOnCDMA2000);
        SignalStrengthUpdateRequest request1 = new SignalStrengthUpdateRequest.Builder()
        SignalStrengthUpdateRequest request1 = new SignalStrengthUpdateRequest.Builder()
                .setSignalThresholdInfos(infos1).setReportingRequestedWhileIdle(false).build();
                .setSignalThresholdInfos(infos1).setReportingRequestedWhileIdle(false).build();


        assertTrue(request1.equals(request1));
        assertTrue(request1.equals(request1));


        // Ordering does not matter
        // Ordering does not matter
        Collection<SignalThresholdInfo> infos2 = List.of(mRscpInfo, mRssiInfo);
        Collection<SignalThresholdInfo> infos2 = List.of(mRssiInfoOnCDMA2000, mRssiInfoOnGERAN);
        SignalStrengthUpdateRequest request2 = new SignalStrengthUpdateRequest.Builder()
        SignalStrengthUpdateRequest request2 = new SignalStrengthUpdateRequest.Builder()
                .setSignalThresholdInfos(infos2).setReportingRequestedWhileIdle(false).build();
                .setSignalThresholdInfos(infos2).setReportingRequestedWhileIdle(false).build();
        assertTrue(request1.equals(request2));
        assertTrue(request1.equals(request2));
@@ -109,11 +132,36 @@ public class SignalStrengthUpdateRequestTest extends TestCase {
        SignalStrengthUpdateRequest request4 = new SignalStrengthUpdateRequest.Builder()
        SignalStrengthUpdateRequest request4 = new SignalStrengthUpdateRequest.Builder()
                .setSignalThresholdInfos(infos1).setReportingRequestedWhileIdle(false)
                .setSignalThresholdInfos(infos1).setReportingRequestedWhileIdle(false)
                .setSystemThresholdReportingRequestedWhileIdle(true).build();
                .setSystemThresholdReportingRequestedWhileIdle(true).build();
        assertFalse(request1.equals(request4));


        // return false if the object is not SignalStrengthUpdateRequest
        // return false if the object is not SignalStrengthUpdateRequest
        assertFalse(request1.equals("test"));
        assertFalse(request1.equals("test"));
    }
    }


    @Test
    @SmallTest
    public void testMultipleSignalMeasurementTypeOnSameRan() {
        Collection<SignalThresholdInfo> 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<SignalThresholdInfo> 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<SignalThresholdInfo> infos) {
    private void validateBuilderWithInvalidParam(Collection<SignalThresholdInfo> infos) {
        try {
        try {
            new SignalStrengthUpdateRequest.Builder()
            new SignalStrengthUpdateRequest.Builder()