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.CellIdentityWcdma;
22e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassieimport android.test.AndroidTestCase;
23e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassieimport android.test.suitebuilder.annotation.SmallTest;
24e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie
25e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie/** Unit tests for {@link CellIdentityWcdma}. */
26e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie
27e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassiepublic class CellIdentityWcdmaTest extends AndroidTestCase {
28e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie
29e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    // Location Area Code ranges from 0 to 65535.
30e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    private static final int LAC = 65535;
31e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    // UMTS Cell Identity ranges from 0 to 268435455.
32e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    private static final int CID = 268435455;
33e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    // Primary Scrambling Coderanges from 0 to 511.
34e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    private static final int PSC = 511;
35e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    // UMTS Absolute RF Channel Number ranges from 0 to 65535.
36e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    private static final int UARFCN = 65535;
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    @SmallTest
45e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    public void testDefaultConstructor() {
46e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        CellIdentityWcdma ci =
47e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie                new CellIdentityWcdma(LAC, CID, PSC, UARFCN, MCC_STR, MNC_STR,
48e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie                        ALPHA_LONG, ALPHA_SHORT);
49e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie
50e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertEquals(LAC, ci.getLac());
51e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertEquals(CID, ci.getCid());
52e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertEquals(PSC, ci.getPsc());
5399cc5e6ad7be178e9b17e58ac55bb5136ef50ee9Eric Schwarzenbach        assertEquals(UARFCN, ci.getUarfcn());
5499cc5e6ad7be178e9b17e58ac55bb5136ef50ee9Eric Schwarzenbach        assertEquals(UARFCN, ci.getChannelNumber());
55e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertEquals(MCC, ci.getMcc());
56e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertEquals(MNC, ci.getMnc());
57dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie        assertEquals(MCC_STR, ci.getMccString());
58dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie        assertEquals(MNC_STR, ci.getMncString());
59e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertEquals(MCC_STR + MNC_STR, ci.getMobileNetworkOperator());
60e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertEquals(ALPHA_LONG, ci.getOperatorAlphaLong());
61e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertEquals(ALPHA_SHORT, ci.getOperatorAlphaShort());
62e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    }
63e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie
64e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    @SmallTest
65e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    public void testConstructorWithThreeDigitMnc() {
66e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        final String mncWithThreeDigit = "061";
67e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        CellIdentityWcdma ci =
68e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie                new CellIdentityWcdma(LAC, CID, PSC, UARFCN, MCC_STR, mncWithThreeDigit,
69e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie                        ALPHA_LONG, ALPHA_SHORT);
70e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie
71e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertEquals(MCC, ci.getMcc());
72e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertEquals(61, ci.getMnc());
73dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie        assertEquals(MCC_STR, ci.getMccString());
74dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie        assertEquals(mncWithThreeDigit, ci.getMncString());
75e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertEquals(MCC_STR + mncWithThreeDigit, ci.getMobileNetworkOperator());
76e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    }
77e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie
78e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    @SmallTest
79e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    public void testConstructorWithTwoDigitMnc() {
80e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        final String mncWithTwoDigit = "61";
81e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        CellIdentityWcdma ci =
82e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie                new CellIdentityWcdma(LAC, CID, PSC, UARFCN, MCC_STR, mncWithTwoDigit,
83e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie                        ALPHA_LONG, ALPHA_SHORT);
84e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie
85e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertEquals(MCC, ci.getMcc());
86e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertEquals(61, ci.getMnc());
87dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie        assertEquals(MCC_STR, ci.getMccString());
88dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie        assertEquals(mncWithTwoDigit, ci.getMncString());
89e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertEquals(MCC_STR + mncWithTwoDigit, ci.getMobileNetworkOperator());
90e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    }
91e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie
92e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    @SmallTest
93e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    public void testConstructorWithEmptyMccMnc() {
94e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        final String integerMaxValue = String.valueOf(Integer.MAX_VALUE);
95e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        CellIdentityWcdma ci =
96e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie                new CellIdentityWcdma(LAC, CID, PSC, UARFCN, 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 CellIdentityWcdma(LAC, CID, PSC, UARFCN, 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 CellIdentityWcdma(LAC, CID, PSC, UARFCN, 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 CellIdentityWcdma(LAC, CID, PSC, UARFCN, "", "", 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        CellIdentityWcdma ci =
132e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie                new CellIdentityWcdma(MCC, MNC, LAC, CID, PSC);
133e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie
134e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertEquals(LAC, ci.getLac());
135e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertEquals(CID, ci.getCid());
136e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertEquals(PSC, ci.getPsc());
137e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertEquals(MCC, ci.getMcc());
138e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertEquals(MNC, ci.getMnc());
139dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie        assertEquals(MCC_STR, ci.getMccString());
140dfbbb29a3dcb1fbb850c50912beaf0ace47c24c9Cassie        assertEquals(MNC_STR, ci.getMncString());
141e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertEquals(MCC_STR + MNC_STR, ci.getMobileNetworkOperator());
142e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertNull(ci.getOperatorAlphaLong());
143e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertNull(ci.getOperatorAlphaShort());
144e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    }
145e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie
146e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    @SmallTest
147e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    public void testEquals() {
148e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        CellIdentityWcdma ciA = new CellIdentityWcdma(
149e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie                LAC, CID, PSC, UARFCN, MCC_STR, MNC_STR, ALPHA_LONG, ALPHA_SHORT);
150e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        CellIdentityWcdma ciB = new CellIdentityWcdma(
151e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie                LAC, CID, PSC, UARFCN, MCC_STR, MNC_STR, ALPHA_LONG, ALPHA_SHORT);
152e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie
153e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertTrue(ciA.equals(ciB));
154e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie
155e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        ciA = new CellIdentityWcdma(LAC, CID, PSC, UARFCN, null, null, ALPHA_LONG, ALPHA_SHORT);
156e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        ciB = new CellIdentityWcdma(LAC, CID, PSC, UARFCN, null, null, ALPHA_LONG, ALPHA_SHORT);
157e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie
158e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertTrue(ciA.equals(ciB));
159e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie
160e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        ciA = new CellIdentityWcdma(LAC, CID, PSC, UARFCN, MCC_STR, null, ALPHA_LONG, ALPHA_SHORT);
161e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        ciB = new CellIdentityWcdma(LAC, CID, PSC, UARFCN, null, null, ALPHA_LONG, ALPHA_SHORT);
162e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie
163e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertFalse(ciA.equals(ciB));
164e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    }
165e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie
166e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    @SmallTest
167e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    public void testParcel() {
168e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        CellIdentityWcdma ci =
169e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie                new CellIdentityWcdma(LAC, CID, PSC, UARFCN, MCC_STR, MNC_STR,
170e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie                        ALPHA_LONG, ALPHA_SHORT);
171e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie
172e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        Parcel p = Parcel.obtain();
173e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        ci.writeToParcel(p, 0);
174e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        p.setDataPosition(0);
175e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie
176e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        CellIdentityWcdma newCi = CellIdentityWcdma.CREATOR.createFromParcel(p);
177e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie        assertEquals(ci, newCi);
178e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie    }
179e2be13c62d7f340a6560c61e2e925d8608f1024cCassie
180e2be13c62d7f340a6560c61e2e925d8608f1024cCassie    @SmallTest
181e2be13c62d7f340a6560c61e2e925d8608f1024cCassie    public void testParcelWithUnknowMccMnc() {
1826da36e04115847978aed09edb7a4f5f5906dc9f8Cassie        CellIdentityWcdma ci =
1836da36e04115847978aed09edb7a4f5f5906dc9f8Cassie                new CellIdentityWcdma(LAC, CID, PSC, UARFCN, null, null, ALPHA_LONG, ALPHA_SHORT);
184e2be13c62d7f340a6560c61e2e925d8608f1024cCassie
185e2be13c62d7f340a6560c61e2e925d8608f1024cCassie        Parcel p = Parcel.obtain();
1867aa0254d5d8f08163b3702a2a1c9602366f568d8Jack Yu        p.writeInt(CellIdentity.TYPE_WCDMA);
1877aa0254d5d8f08163b3702a2a1c9602366f568d8Jack Yu        p.writeString(String.valueOf(Integer.MAX_VALUE));
1887aa0254d5d8f08163b3702a2a1c9602366f568d8Jack Yu        p.writeString(String.valueOf(Integer.MAX_VALUE));
1896da36e04115847978aed09edb7a4f5f5906dc9f8Cassie        p.writeString(ALPHA_LONG);
1906da36e04115847978aed09edb7a4f5f5906dc9f8Cassie        p.writeString(ALPHA_SHORT);
191e2be13c62d7f340a6560c61e2e925d8608f1024cCassie        p.writeInt(LAC);
192e2be13c62d7f340a6560c61e2e925d8608f1024cCassie        p.writeInt(CID);
193e2be13c62d7f340a6560c61e2e925d8608f1024cCassie        p.writeInt(PSC);
194e2be13c62d7f340a6560c61e2e925d8608f1024cCassie        p.writeInt(UARFCN);
195e2be13c62d7f340a6560c61e2e925d8608f1024cCassie        p.setDataPosition(0);
196e2be13c62d7f340a6560c61e2e925d8608f1024cCassie
197e2be13c62d7f340a6560c61e2e925d8608f1024cCassie        CellIdentityWcdma newCi = CellIdentityWcdma.CREATOR.createFromParcel(p);
198e2be13c62d7f340a6560c61e2e925d8608f1024cCassie        assertEquals(ci, newCi);
199e2be13c62d7f340a6560c61e2e925d8608f1024cCassie    }
200e2be13c62d7f340a6560c61e2e925d8608f1024cCassie
201e2be13c62d7f340a6560c61e2e925d8608f1024cCassie    @SmallTest
202e2be13c62d7f340a6560c61e2e925d8608f1024cCassie    public void testParcelWithInvalidMccMnc() {
203e2be13c62d7f340a6560c61e2e925d8608f1024cCassie        final String invalidMcc = "randomStuff";
204e2be13c62d7f340a6560c61e2e925d8608f1024cCassie        final String invalidMnc = "randomStuff";
2056da36e04115847978aed09edb7a4f5f5906dc9f8Cassie        CellIdentityWcdma ci =
2066da36e04115847978aed09edb7a4f5f5906dc9f8Cassie                new CellIdentityWcdma(LAC, CID, PSC, UARFCN, null, null, ALPHA_LONG, ALPHA_SHORT);
207e2be13c62d7f340a6560c61e2e925d8608f1024cCassie
208e2be13c62d7f340a6560c61e2e925d8608f1024cCassie        Parcel p = Parcel.obtain();
2097aa0254d5d8f08163b3702a2a1c9602366f568d8Jack Yu        p.writeInt(CellIdentity.TYPE_WCDMA);
2107aa0254d5d8f08163b3702a2a1c9602366f568d8Jack Yu        p.writeString(invalidMcc);
2117aa0254d5d8f08163b3702a2a1c9602366f568d8Jack Yu        p.writeString(invalidMnc);
2126da36e04115847978aed09edb7a4f5f5906dc9f8Cassie        p.writeString(ALPHA_LONG);
2136da36e04115847978aed09edb7a4f5f5906dc9f8Cassie        p.writeString(ALPHA_SHORT);
214e2be13c62d7f340a6560c61e2e925d8608f1024cCassie        p.writeInt(LAC);
215e2be13c62d7f340a6560c61e2e925d8608f1024cCassie        p.writeInt(CID);
216e2be13c62d7f340a6560c61e2e925d8608f1024cCassie        p.writeInt(PSC);
217e2be13c62d7f340a6560c61e2e925d8608f1024cCassie        p.writeInt(UARFCN);
218e2be13c62d7f340a6560c61e2e925d8608f1024cCassie        p.setDataPosition(0);
219e2be13c62d7f340a6560c61e2e925d8608f1024cCassie
220e2be13c62d7f340a6560c61e2e925d8608f1024cCassie        CellIdentityWcdma newCi = CellIdentityWcdma.CREATOR.createFromParcel(p);
221e2be13c62d7f340a6560c61e2e925d8608f1024cCassie        assertEquals(ci, newCi);
222e2be13c62d7f340a6560c61e2e925d8608f1024cCassie    }
223e20f8c78a7fdc3a5530499b12aeced9ca851c8c6Cassie}
224