1 /* 2 * Copyright (C) 2017 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.internal.telephony; 18 19 import static org.junit.Assert.assertEquals; 20 import static org.junit.Assert.assertNotEquals; 21 22 import android.os.Parcel; 23 import android.telephony.AccessNetworkConstants.AccessNetworkType; 24 import android.telephony.AccessNetworkConstants.EutranBand; 25 import android.telephony.AccessNetworkConstants.GeranBand; 26 import android.telephony.NetworkScanRequest; 27 import android.telephony.RadioAccessSpecifier; 28 29 import androidx.test.filters.SmallTest; 30 31 import org.junit.Test; 32 33 import java.util.ArrayList; 34 import java.util.List; 35 36 /** Unit tests for {@link NetworkScanRequest}. */ 37 public class NetworkScanRequestTest { 38 39 @Test 40 @SmallTest testParcel()41 public void testParcel() { 42 NetworkScanRequest nsq = createNetworkScanRequest(); 43 44 Parcel p = Parcel.obtain(); 45 nsq.writeToParcel(p, 0); 46 p.setDataPosition(0); 47 48 NetworkScanRequest newNsq = NetworkScanRequest.CREATOR.createFromParcel(p); 49 assertEquals(nsq, newNsq); 50 } 51 52 @Test 53 @SmallTest testEquals_identity_allFieldsNonNull()54 public void testEquals_identity_allFieldsNonNull() { 55 NetworkScanRequest nsq = createNetworkScanRequest(); 56 57 assertEquals(nsq, nsq); 58 } 59 60 @Test 61 @SmallTest testEquals_identify_nullRadioAccessSpecifiers()62 public void testEquals_identify_nullRadioAccessSpecifiers() { 63 NetworkScanRequest nsq = createNetworkScanRequest(null, List.of("310480")); 64 65 assertEquals(nsq, nsq); 66 } 67 68 @Test 69 @SmallTest testEquals_identify_emptyRadioAccessSpecifiers()70 public void testEquals_identify_emptyRadioAccessSpecifiers() { 71 NetworkScanRequest nsq = createNetworkScanRequest(new RadioAccessSpecifier[]{}, 72 List.of("310480")); 73 74 assertEquals(nsq, nsq); 75 } 76 77 @Test 78 @SmallTest testEquals_identify_nullPlmns()79 public void testEquals_identify_nullPlmns() { 80 NetworkScanRequest nsq = createNetworkScanRequest(new RadioAccessSpecifier[]{ 81 new RadioAccessSpecifier(AccessNetworkType.GERAN, null, null)}, null); 82 83 assertEquals(nsq, nsq); 84 } 85 86 @Test 87 @SmallTest testEquals_identify_emptyPlmns()88 public void testEquals_identify_emptyPlmns() { 89 NetworkScanRequest nsq = createNetworkScanRequest(new RadioAccessSpecifier[]{ 90 new RadioAccessSpecifier(AccessNetworkType.GERAN, null, null)}, List.of()); 91 92 assertEquals(nsq, nsq); 93 } 94 95 @Test 96 @SmallTest testEquals_identify_nullRasAndPlmns()97 public void testEquals_identify_nullRasAndPlmns() { 98 NetworkScanRequest nsq = createNetworkScanRequest(null, null); 99 100 assertEquals(nsq, nsq); 101 } 102 103 @Test 104 @SmallTest testEquals_sameValues_allFieldsNonNull()105 public void testEquals_sameValues_allFieldsNonNull() { 106 NetworkScanRequest nsq1 = createNetworkScanRequest(); 107 NetworkScanRequest nsq2 = createNetworkScanRequest(); 108 109 assertEquals(nsq1, nsq2); 110 } 111 112 @Test 113 @SmallTest testEquals_sameValues_nullRadioAccessSpecifiers()114 public void testEquals_sameValues_nullRadioAccessSpecifiers() { 115 NetworkScanRequest nsq1 = createNetworkScanRequest(null, List.of("310480")); 116 NetworkScanRequest nsq2 = createNetworkScanRequest(null, List.of("310480")); 117 118 assertEquals(nsq1, nsq2); 119 } 120 121 @Test 122 @SmallTest testEquals_sameValues_emptyRadioAccessSpecifiers()123 public void testEquals_sameValues_emptyRadioAccessSpecifiers() { 124 NetworkScanRequest nsq1 = createNetworkScanRequest(new RadioAccessSpecifier[]{}, 125 List.of("310480")); 126 NetworkScanRequest nsq2 = createNetworkScanRequest(new RadioAccessSpecifier[]{}, 127 List.of("310480")); 128 129 assertEquals(nsq1, nsq2); 130 } 131 132 @Test 133 @SmallTest testEquals_sameValues_nullPlmns()134 public void testEquals_sameValues_nullPlmns() { 135 NetworkScanRequest nsq1 = createNetworkScanRequest(new RadioAccessSpecifier[]{ 136 new RadioAccessSpecifier(AccessNetworkType.GERAN, null, null)}, null); 137 NetworkScanRequest nsq2 = createNetworkScanRequest(new RadioAccessSpecifier[]{ 138 new RadioAccessSpecifier(AccessNetworkType.GERAN, null, null)}, null); 139 140 assertEquals(nsq1, nsq2); 141 } 142 143 @Test 144 @SmallTest testEquals_sameValues_emptyPlmns()145 public void testEquals_sameValues_emptyPlmns() { 146 NetworkScanRequest nsq1 = createNetworkScanRequest(new RadioAccessSpecifier[]{ 147 new RadioAccessSpecifier(AccessNetworkType.GERAN, null, null)}, List.of()); 148 NetworkScanRequest nsq2 = createNetworkScanRequest(new RadioAccessSpecifier[]{ 149 new RadioAccessSpecifier(AccessNetworkType.GERAN, null, null)}, List.of()); 150 151 assertEquals(nsq1, nsq2); 152 } 153 154 @Test 155 @SmallTest testEquals_sameValues_nullRasAndPlmns()156 public void testEquals_sameValues_nullRasAndPlmns() { 157 NetworkScanRequest nsq1 = createNetworkScanRequest(null, null); 158 NetworkScanRequest nsq2 = createNetworkScanRequest(null, null); 159 160 assertEquals(nsq1, nsq2); 161 } 162 163 @Test 164 @SmallTest testEquals_plmnsInDifferentOrder_shouldNotEqual()165 public void testEquals_plmnsInDifferentOrder_shouldNotEqual() { 166 NetworkScanRequest nsq1 = createNetworkScanRequest(null, List.of("123456", "987654")); 167 NetworkScanRequest nsq2 = createNetworkScanRequest(null, List.of("987654", "123456")); 168 169 assertNotEquals(nsq1, nsq2); 170 } 171 createNetworkScanRequest()172 private NetworkScanRequest createNetworkScanRequest() { 173 int ranGsm = AccessNetworkType.GERAN; 174 int[] gsmBands = {GeranBand.BAND_T380, GeranBand.BAND_T410}; 175 int[] gsmChannels = {1, 2, 3, 4}; 176 RadioAccessSpecifier gsm = new RadioAccessSpecifier(ranGsm, gsmBands, gsmChannels); 177 int ranLte = AccessNetworkType.EUTRAN; 178 int[] lteBands = {EutranBand.BAND_10, EutranBand.BAND_11}; 179 int[] lteChannels = {5, 6, 7, 8}; 180 RadioAccessSpecifier lte = new RadioAccessSpecifier(ranLte, lteBands, lteChannels); 181 RadioAccessSpecifier[] ras = {gsm, lte}; 182 183 int searchPeriodicity = 70; 184 int maxSearchTime = 200; 185 boolean incrementalResults = true; 186 int incrementalResultsPeriodicity = 7; 187 188 ArrayList<String> mccmncs = new ArrayList<String>(); 189 mccmncs.add("310480"); 190 mccmncs.add("21002"); 191 192 return new NetworkScanRequest(NetworkScanRequest.SCAN_TYPE_ONE_SHOT, ras, 193 searchPeriodicity, maxSearchTime, incrementalResults, 194 incrementalResultsPeriodicity, mccmncs); 195 } 196 createNetworkScanRequest( RadioAccessSpecifier[] radioAccessSpecifiers, List<String> plmns)197 private NetworkScanRequest createNetworkScanRequest( 198 RadioAccessSpecifier[] radioAccessSpecifiers, List<String> plmns) { 199 int searchPeriodicity = 70; 200 int maxSearchTime = 200; 201 boolean incrementalResults = true; 202 int incrementalResultsPeriodicity = 7; 203 204 return new NetworkScanRequest(NetworkScanRequest.SCAN_TYPE_ONE_SHOT, radioAccessSpecifiers, 205 searchPeriodicity, maxSearchTime, incrementalResults, 206 incrementalResultsPeriodicity, plmns != null ? new ArrayList<>(plmns) : null); 207 } 208 } 209