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

Commit 01bb50d9 authored by rambowang's avatar rambowang
Browse files

Add more UT cases to cover equals method of NetworkScanRequest

Bug: 287100905
Bug: 283308895
Test: atest NetworkScanRequestTest
Change-Id: Ib6072c0d05fa49a1a3c7e402bfeb421e108c275f
parent 8d90ff6f
Loading
Loading
Loading
Loading
+149 −8
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.internal.telephony;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;

import android.os.Parcel;
import android.telephony.AccessNetworkConstants.AccessNetworkType;
@@ -30,6 +31,7 @@ import androidx.test.filters.SmallTest;
import org.junit.Test;

import java.util.ArrayList;
import java.util.List;

/** Unit tests for {@link NetworkScanRequest}. */
public class NetworkScanRequestTest {
@@ -37,6 +39,137 @@ public class NetworkScanRequestTest {
    @Test
    @SmallTest
    public void testParcel() {
        NetworkScanRequest nsq = createNetworkScanRequest();

        Parcel p = Parcel.obtain();
        nsq.writeToParcel(p, 0);
        p.setDataPosition(0);

        NetworkScanRequest newNsq = NetworkScanRequest.CREATOR.createFromParcel(p);
        assertEquals(nsq, newNsq);
    }

    @Test
    @SmallTest
    public void testEquals_identity_allFieldsNonNull() {
        NetworkScanRequest nsq = createNetworkScanRequest();

        assertEquals(nsq, nsq);
    }

    @Test
    @SmallTest
    public void testEquals_identify_nullRadioAccessSpecifiers() {
        NetworkScanRequest nsq = createNetworkScanRequest(null, List.of("310480"));

        assertEquals(nsq, nsq);
    }

    @Test
    @SmallTest
    public void testEquals_identify_emptyRadioAccessSpecifiers() {
        NetworkScanRequest nsq = createNetworkScanRequest(new RadioAccessSpecifier[]{},
                List.of("310480"));

        assertEquals(nsq, nsq);
    }

    @Test
    @SmallTest
    public void testEquals_identify_nullPlmns() {
        NetworkScanRequest nsq = createNetworkScanRequest(new RadioAccessSpecifier[]{
                new RadioAccessSpecifier(AccessNetworkType.GERAN, null, null)}, null);

        assertEquals(nsq, nsq);
    }

    @Test
    @SmallTest
    public void testEquals_identify_emptyPlmns() {
        NetworkScanRequest nsq = createNetworkScanRequest(new RadioAccessSpecifier[]{
                new RadioAccessSpecifier(AccessNetworkType.GERAN, null, null)}, List.of());

        assertEquals(nsq, nsq);
    }

    @Test
    @SmallTest
    public void testEquals_identify_nullRasAndPlmns() {
        NetworkScanRequest nsq = createNetworkScanRequest(null, null);

        assertEquals(nsq, nsq);
    }

    @Test
    @SmallTest
    public void testEquals_sameValues_allFieldsNonNull() {
        NetworkScanRequest nsq1 = createNetworkScanRequest();
        NetworkScanRequest nsq2 = createNetworkScanRequest();

        assertEquals(nsq1, nsq2);
    }

    @Test
    @SmallTest
    public void testEquals_sameValues_nullRadioAccessSpecifiers() {
        NetworkScanRequest nsq1 = createNetworkScanRequest(null, List.of("310480"));
        NetworkScanRequest nsq2 = createNetworkScanRequest(null, List.of("310480"));

        assertEquals(nsq1, nsq2);
    }

    @Test
    @SmallTest
    public void testEquals_sameValues_emptyRadioAccessSpecifiers() {
        NetworkScanRequest nsq1 = createNetworkScanRequest(new RadioAccessSpecifier[]{},
                List.of("310480"));
        NetworkScanRequest nsq2 = createNetworkScanRequest(new RadioAccessSpecifier[]{},
                List.of("310480"));

        assertEquals(nsq1, nsq2);
    }

    @Test
    @SmallTest
    public void testEquals_sameValues_nullPlmns() {
        NetworkScanRequest nsq1 = createNetworkScanRequest(new RadioAccessSpecifier[]{
                new RadioAccessSpecifier(AccessNetworkType.GERAN, null, null)}, null);
        NetworkScanRequest nsq2 = createNetworkScanRequest(new RadioAccessSpecifier[]{
                new RadioAccessSpecifier(AccessNetworkType.GERAN, null, null)}, null);

        assertEquals(nsq1, nsq2);
    }

    @Test
    @SmallTest
    public void testEquals_sameValues_emptyPlmns() {
        NetworkScanRequest nsq1 = createNetworkScanRequest(new RadioAccessSpecifier[]{
                new RadioAccessSpecifier(AccessNetworkType.GERAN, null, null)}, List.of());
        NetworkScanRequest nsq2 = createNetworkScanRequest(new RadioAccessSpecifier[]{
                new RadioAccessSpecifier(AccessNetworkType.GERAN, null, null)}, List.of());

        assertEquals(nsq1, nsq2);
    }

    @Test
    @SmallTest
    public void testEquals_sameValues_nullRasAndPlmns() {
        NetworkScanRequest nsq1 = createNetworkScanRequest(null, null);
        NetworkScanRequest nsq2 = createNetworkScanRequest(null, null);

        assertEquals(nsq1, nsq2);
    }

    @Test
    @SmallTest
    public void testEquals_plmnsInDifferentOrder_shouldNotEqual() {
        NetworkScanRequest nsq1 = createNetworkScanRequest(null, List.of("123456", "987654"));
        NetworkScanRequest nsq2 = createNetworkScanRequest(null, List.of("987654", "123456"));

        assertNotEquals(nsq1, nsq2);
    }

    private NetworkScanRequest createNetworkScanRequest() {
        int ranGsm = AccessNetworkType.GERAN;
        int[] gsmBands = {GeranBand.BAND_T380, GeranBand.BAND_T410};
        int[] gsmChannels = {1, 2, 3, 4};
@@ -46,22 +179,30 @@ public class NetworkScanRequestTest {
        int[] lteChannels = {5, 6, 7, 8};
        RadioAccessSpecifier lte = new RadioAccessSpecifier(ranLte, lteBands, lteChannels);
        RadioAccessSpecifier[] ras = {gsm, lte};

        int searchPeriodicity = 70;
        int maxSearchTime = 200;
        boolean incrementalResults = true;
        int incrementalResultsPeriodicity = 7;

        ArrayList<String> mccmncs = new ArrayList<String>();
        mccmncs.add("310480");
        mccmncs.add("21002");
        NetworkScanRequest nsq = new NetworkScanRequest(NetworkScanRequest.SCAN_TYPE_ONE_SHOT, ras,

        return new NetworkScanRequest(NetworkScanRequest.SCAN_TYPE_ONE_SHOT, ras,
                searchPeriodicity, maxSearchTime, incrementalResults,
                incrementalResultsPeriodicity, mccmncs);
    }

        Parcel p = Parcel.obtain();
        nsq.writeToParcel(p, 0);
        p.setDataPosition(0);
    private NetworkScanRequest createNetworkScanRequest(
            RadioAccessSpecifier[] radioAccessSpecifiers, List<String> plmns) {
        int searchPeriodicity = 70;
        int maxSearchTime = 200;
        boolean incrementalResults = true;
        int incrementalResultsPeriodicity = 7;

        NetworkScanRequest newNsq = NetworkScanRequest.CREATOR.createFromParcel(p);
        assertEquals(nsq, newNsq);
        return new NetworkScanRequest(NetworkScanRequest.SCAN_TYPE_ONE_SHOT, radioAccessSpecifiers,
                searchPeriodicity, maxSearchTime, incrementalResults,
                incrementalResultsPeriodicity, plmns != null ? new ArrayList<>(plmns) : null);
    }
}