1e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie/* 2e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie * Copyright (C) 2017 The Android Open Source Project 3e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie * 4e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie * Licensed under the Apache License, Version 2.0 (the "License"); 5e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie * you may not use this file except in compliance with the License. 6e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie * You may obtain a copy of the License at 7e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie * 8e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie * http://www.apache.org/licenses/LICENSE-2.0 9e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie * 10e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie * Unless required by applicable law or agreed to in writing, software 11e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie * distributed under the License is distributed on an "AS IS" BASIS, 12e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie * See the License for the specific language governing permissions and 14e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie * limitations under the License. 15e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie */ 16e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 17e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassiepackage com.android.internal.telephony; 18e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 19e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassieimport android.os.Parcel; 207aa0254d5d8f08163b3702a2a1c9602366f568d8Jack Yuimport android.telephony.CellIdentity; 21e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassieimport android.telephony.CellIdentityGsm; 22e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassieimport android.test.AndroidTestCase; 23e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassieimport android.test.suitebuilder.annotation.SmallTest; 24e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 25e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie/** Unit tests for {@link CellIdentityGsm}. */ 26e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 27e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassiepublic class CellIdentityGsmTest extends AndroidTestCase { 28e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 29e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie // Location Area Code ranges from 0 to 65535. 30e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie private static final int LAC = 65535; 31e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie // GSM Cell Identity ranges from 0 to 65535. 32e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie private static final int CID = 65535; 33e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie // GSM Absolute RF Channel Number ranges from 0 to 65535. 34e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie private static final int ARFCN = 65535; 35e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie // Base Station Identity Code ranges from 0 to 63. 36e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie private static final int BSIC = 63; 37e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie private static final int MCC = 120; 38e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie private static final int MNC = 260; 39e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie private static final String MCC_STR = "120"; 40e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie private static final String MNC_STR = "260"; 41e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie private static final String ALPHA_LONG = "long"; 42e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie private static final String ALPHA_SHORT = "short"; 43e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 44e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 45e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie @SmallTest 46e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie public void testDefaultConstructor() { 47e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie CellIdentityGsm ci = 48e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie new CellIdentityGsm(LAC, CID, ARFCN, BSIC, MCC_STR, MNC_STR, 49e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie ALPHA_LONG, ALPHA_SHORT); 50e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 51e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(LAC, ci.getLac()); 52e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(CID, ci.getCid()); 53e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(ARFCN, ci.getArfcn()); 5499cc5e6ad7be178e9b17e58ac55bb5136ef50ee9Eric Schwarzenbach assertEquals(ARFCN, ci.getChannelNumber()); 55e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(BSIC, ci.getBsic()); 56e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(MCC, ci.getMcc()); 57e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(MNC, ci.getMnc()); 58dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie assertEquals(MCC_STR, ci.getMccString()); 59dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie assertEquals(MNC_STR, ci.getMncString()); 60e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(MCC_STR + MNC_STR, ci.getMobileNetworkOperator()); 61e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(ALPHA_LONG, ci.getOperatorAlphaLong()); 62e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(ALPHA_SHORT, ci.getOperatorAlphaShort()); 63e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie } 64e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 65e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie @SmallTest 66e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie public void testConstructorWithThreeDigitMnc() { 67e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie final String mncWithThreeDigit = "061"; 68e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie CellIdentityGsm ci = 69e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie new CellIdentityGsm(LAC, CID, ARFCN, BSIC, MCC_STR, mncWithThreeDigit, 70e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie ALPHA_LONG, ALPHA_SHORT); 71e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 72e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(MCC, ci.getMcc()); 73e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(61, ci.getMnc()); 74dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie assertEquals(MCC_STR, ci.getMccString()); 75dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie assertEquals(mncWithThreeDigit, ci.getMncString()); 76e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(MCC_STR + mncWithThreeDigit, ci.getMobileNetworkOperator()); 77e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie } 78e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 79e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie @SmallTest 80e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie public void testConstructorWithTwoDigitMnc() { 81e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie final String mncWithTwoDigit = "61"; 82e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie CellIdentityGsm ci = 83e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie new CellIdentityGsm(LAC, CID, ARFCN, BSIC, MCC_STR, mncWithTwoDigit, 84e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie ALPHA_LONG, ALPHA_SHORT); 85e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 86e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(MCC, ci.getMcc()); 87e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(61, ci.getMnc()); 88dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie assertEquals(MCC_STR, ci.getMccString()); 89dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie assertEquals(mncWithTwoDigit, ci.getMncString()); 90e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(MCC_STR + mncWithTwoDigit, ci.getMobileNetworkOperator()); 91e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie } 92e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 93e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie @SmallTest 94e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie public void testConstructorWithEmptyMccMnc() { 95e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie CellIdentityGsm ci = 96e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie new CellIdentityGsm(LAC, CID, ARFCN, BSIC, null, null, ALPHA_LONG, ALPHA_SHORT); 97e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 98e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(Integer.MAX_VALUE, ci.getMcc()); 99e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(Integer.MAX_VALUE, ci.getMnc()); 100dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie assertNull(ci.getMccString()); 101dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie assertNull(ci.getMncString()); 102eed44fa8e0d6837d75efe98c6010aa3bdbce3b6fCassie assertNull(ci.getMobileNetworkOperator()); 103e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 104e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie ci = new CellIdentityGsm(LAC, CID, ARFCN, BSIC, MCC_STR, null, ALPHA_LONG, ALPHA_SHORT); 105e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 106e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(MCC, ci.getMcc()); 107e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(Integer.MAX_VALUE, ci.getMnc()); 108dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie assertEquals(MCC_STR, ci.getMccString()); 109dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie assertNull(ci.getMncString()); 110eed44fa8e0d6837d75efe98c6010aa3bdbce3b6fCassie assertNull(ci.getMobileNetworkOperator()); 111eed44fa8e0d6837d75efe98c6010aa3bdbce3b6fCassie 112eed44fa8e0d6837d75efe98c6010aa3bdbce3b6fCassie ci = new CellIdentityGsm(LAC, CID, ARFCN, BSIC, null, MNC_STR, ALPHA_LONG, ALPHA_SHORT); 113eed44fa8e0d6837d75efe98c6010aa3bdbce3b6fCassie 114eed44fa8e0d6837d75efe98c6010aa3bdbce3b6fCassie assertEquals(MNC, ci.getMnc()); 115eed44fa8e0d6837d75efe98c6010aa3bdbce3b6fCassie assertEquals(Integer.MAX_VALUE, ci.getMcc()); 116dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie assertEquals(MNC_STR, ci.getMncString()); 117dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie assertNull(ci.getMccString()); 118eed44fa8e0d6837d75efe98c6010aa3bdbce3b6fCassie assertNull(ci.getMobileNetworkOperator()); 119e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 120e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie ci = new CellIdentityGsm(LAC, CID, ARFCN, BSIC, "", "", ALPHA_LONG, ALPHA_SHORT); 121e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 122e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(Integer.MAX_VALUE, ci.getMcc()); 123e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(Integer.MAX_VALUE, ci.getMnc()); 124dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie assertNull(ci.getMccString()); 125dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie assertNull(ci.getMncString()); 126eed44fa8e0d6837d75efe98c6010aa3bdbce3b6fCassie assertNull(ci.getMobileNetworkOperator()); 127e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie } 128e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 129e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie @SmallTest 130e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie public void testFormerConstructor() { 131e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie CellIdentityGsm ci = 132e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie new CellIdentityGsm(MCC, MNC, LAC, CID); 133e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 134e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(LAC, ci.getLac()); 135e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(CID, ci.getCid()); 136e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(Integer.MAX_VALUE, ci.getArfcn()); 137e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(Integer.MAX_VALUE, ci.getBsic()); 138e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(MCC, ci.getMcc()); 139e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(MNC, ci.getMnc()); 140dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie assertEquals(MCC_STR, ci.getMccString()); 141dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie assertEquals(MNC_STR, ci.getMncString()); 142e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(MCC_STR + MNC_STR, ci.getMobileNetworkOperator()); 143e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertNull(ci.getOperatorAlphaLong()); 144e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertNull(ci.getOperatorAlphaShort()); 145e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie } 146e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 147e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie @SmallTest 148e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie public void testEquals() { 149e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie CellIdentityGsm ciA = new CellIdentityGsm( 150e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie LAC, CID, ARFCN, BSIC, MCC_STR, MNC_STR, ALPHA_LONG, ALPHA_SHORT); 151e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie CellIdentityGsm ciB = new CellIdentityGsm( 152e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie LAC, CID, ARFCN, BSIC, MCC_STR, MNC_STR, ALPHA_LONG, ALPHA_SHORT); 153e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 154e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertTrue(ciA.equals(ciB)); 155e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 156e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie ciA = new CellIdentityGsm(LAC, CID, ARFCN, BSIC, null, MNC_STR, ALPHA_LONG, ALPHA_SHORT); 157e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie ciB = new CellIdentityGsm(LAC, CID, ARFCN, BSIC, null, MNC_STR, ALPHA_LONG, ALPHA_SHORT); 158e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 159e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertTrue(ciA.equals(ciB)); 160e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 161e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie ciA = new CellIdentityGsm( 162e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie LAC, CID, ARFCN, BSIC, MCC_STR, MNC_STR, ALPHA_LONG, ALPHA_SHORT); 163e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie ciB = new CellIdentityGsm(LAC, CID, ARFCN, BSIC, null, MNC_STR, ALPHA_LONG, ALPHA_SHORT); 164e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 165e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertFalse(ciA.equals(ciB)); 166e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie } 167e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 168e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie @SmallTest 169e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie public void testParcel() { 170e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie CellIdentityGsm ci = 171e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie new CellIdentityGsm(LAC, CID, ARFCN, BSIC, MCC_STR, MNC_STR, 172e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie ALPHA_LONG, ALPHA_SHORT); 173e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 174e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie Parcel p = Parcel.obtain(); 175e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie ci.writeToParcel(p, 0); 176e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie p.setDataPosition(0); 177e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie 178e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie CellIdentityGsm newCi = CellIdentityGsm.CREATOR.createFromParcel(p); 179e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie assertEquals(ci, newCi); 180e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie } 181e2be13c62d7f340a6560c61e2e925d8608f1024cCassie 182e2be13c62d7f340a6560c61e2e925d8608f1024cCassie @SmallTest 183e2be13c62d7f340a6560c61e2e925d8608f1024cCassie public void testParcelWithUnknowMccMnc() { 1846da36e04115847978aed09edb7a4f5f5906dc9f8Cassie CellIdentityGsm ci = 1856da36e04115847978aed09edb7a4f5f5906dc9f8Cassie new CellIdentityGsm(LAC, CID, ARFCN, BSIC, null, null, ALPHA_LONG, ALPHA_SHORT); 186e2be13c62d7f340a6560c61e2e925d8608f1024cCassie 187e2be13c62d7f340a6560c61e2e925d8608f1024cCassie Parcel p = Parcel.obtain(); 1887aa0254d5d8f08163b3702a2a1c9602366f568d8Jack Yu p.writeInt(CellIdentityGsm.TYPE_GSM); 1897aa0254d5d8f08163b3702a2a1c9602366f568d8Jack Yu p.writeString(String.valueOf(Integer.MAX_VALUE)); 1907aa0254d5d8f08163b3702a2a1c9602366f568d8Jack Yu p.writeString(String.valueOf(Integer.MAX_VALUE)); 1916da36e04115847978aed09edb7a4f5f5906dc9f8Cassie p.writeString(ALPHA_LONG); 1926da36e04115847978aed09edb7a4f5f5906dc9f8Cassie p.writeString(ALPHA_SHORT); 193e2be13c62d7f340a6560c61e2e925d8608f1024cCassie p.writeInt(LAC); 194e2be13c62d7f340a6560c61e2e925d8608f1024cCassie p.writeInt(CID); 195e2be13c62d7f340a6560c61e2e925d8608f1024cCassie p.writeInt(ARFCN); 196e2be13c62d7f340a6560c61e2e925d8608f1024cCassie p.writeInt(BSIC); 197e2be13c62d7f340a6560c61e2e925d8608f1024cCassie p.setDataPosition(0); 198e2be13c62d7f340a6560c61e2e925d8608f1024cCassie 199e2be13c62d7f340a6560c61e2e925d8608f1024cCassie CellIdentityGsm newCi = CellIdentityGsm.CREATOR.createFromParcel(p); 200e2be13c62d7f340a6560c61e2e925d8608f1024cCassie assertEquals(ci, newCi); 201e2be13c62d7f340a6560c61e2e925d8608f1024cCassie } 202e2be13c62d7f340a6560c61e2e925d8608f1024cCassie 203e2be13c62d7f340a6560c61e2e925d8608f1024cCassie @SmallTest 204e2be13c62d7f340a6560c61e2e925d8608f1024cCassie public void testParcelWithInvalidMccMnc() { 205e2be13c62d7f340a6560c61e2e925d8608f1024cCassie final String invalidMcc = "randomStuff"; 206e2be13c62d7f340a6560c61e2e925d8608f1024cCassie final String invalidMnc = "randomStuff"; 2076da36e04115847978aed09edb7a4f5f5906dc9f8Cassie CellIdentityGsm ci = 2086da36e04115847978aed09edb7a4f5f5906dc9f8Cassie new CellIdentityGsm(LAC, CID, ARFCN, BSIC, null, null, ALPHA_LONG, ALPHA_SHORT); 209e2be13c62d7f340a6560c61e2e925d8608f1024cCassie 210e2be13c62d7f340a6560c61e2e925d8608f1024cCassie Parcel p = Parcel.obtain(); 2117aa0254d5d8f08163b3702a2a1c9602366f568d8Jack Yu p.writeInt(CellIdentity.TYPE_GSM); 2127aa0254d5d8f08163b3702a2a1c9602366f568d8Jack Yu p.writeString(invalidMcc); 2137aa0254d5d8f08163b3702a2a1c9602366f568d8Jack Yu p.writeString(invalidMnc); 2146da36e04115847978aed09edb7a4f5f5906dc9f8Cassie p.writeString(ALPHA_LONG); 2156da36e04115847978aed09edb7a4f5f5906dc9f8Cassie p.writeString(ALPHA_SHORT); 216e2be13c62d7f340a6560c61e2e925d8608f1024cCassie p.writeInt(LAC); 217e2be13c62d7f340a6560c61e2e925d8608f1024cCassie p.writeInt(CID); 218e2be13c62d7f340a6560c61e2e925d8608f1024cCassie p.writeInt(ARFCN); 219e2be13c62d7f340a6560c61e2e925d8608f1024cCassie p.writeInt(BSIC); 220e2be13c62d7f340a6560c61e2e925d8608f1024cCassie p.setDataPosition(0); 221e2be13c62d7f340a6560c61e2e925d8608f1024cCassie 222e2be13c62d7f340a6560c61e2e925d8608f1024cCassie CellIdentityGsm newCi = CellIdentityGsm.CREATOR.createFromParcel(p); 223e2be13c62d7f340a6560c61e2e925d8608f1024cCassie assertEquals(ci, newCi); 224e2be13c62d7f340a6560c61e2e925d8608f1024cCassie } 225e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie} 226