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