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

Commit 34a3dec6 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add more UT cases to cover equals method of NetworkScanRequest"

parents 35e997f4 01bb50d9
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);
    }
}