10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/*
20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2006 The Android Open Source Project
30825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
40825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Licensed under the Apache License, Version 2.0 (the "License");
50825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * you may not use this file except in compliance with the License.
60825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * You may obtain a copy of the License at
70825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
80825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *      http://www.apache.org/licenses/LICENSE-2.0
90825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Unless required by applicable law or agreed to in writing, software
110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * distributed under the License is distributed on an "AS IS" BASIS,
120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See the License for the specific language governing permissions and
140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * limitations under the License.
150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
170825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepackage com.android.internal.telephony;
180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
190825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport junit.framework.TestCase;
200825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.test.suitebuilder.annotation.SmallTest;
210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
220825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic class ATResponseParserTest extends TestCase {
230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @SmallTest
240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void testBasic() throws Exception {
250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        ATResponseParser p = new ATResponseParser("+CREG: 0");
260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals(0, p.nextInt());
280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertFalse(p.hasMore());
300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        try {
320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            p.nextInt();
330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            fail("exception expected");
340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } catch (ATParseEx ex) {
350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            //test pass
360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        p = new ATResponseParser("+CREG: 0,1");
390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals(0, p.nextInt());
400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals(1, p.nextInt());
410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertFalse(p.hasMore());
420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        p = new ATResponseParser("+CREG: 0, 1");
440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals(0, p.nextInt());
450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals(1, p.nextInt());
460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertFalse(p.hasMore());
470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        p = new ATResponseParser("+CREG: 0, 1,");
490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals(0, p.nextInt());
500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals(1, p.nextInt());
510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // this seems odd but is probably OK
520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertFalse(p.hasMore());
530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        try {
540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            p.nextInt();
550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            fail("exception expected");
560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } catch (ATParseEx ex) {
570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            //test pass
580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        p = new ATResponseParser("+CREG: 0, 1 ");
610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals(0, p.nextInt());
620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals(1, p.nextInt());
630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertFalse(p.hasMore());
640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        p = new ATResponseParser("0, 1 ");
660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // no prefix -> exception
670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        try {
680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            p.nextInt();
690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            fail("exception expected");
700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } catch (ATParseEx ex) {
710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            //test pass
720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        p = new ATResponseParser("+CREG: 0, 1, 5");
750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertFalse(p.nextBoolean());
760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue(p.nextBoolean());
770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        try {
780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            // is this over-constraining?
790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            p.nextBoolean();
800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            fail("exception expected");
810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } catch (ATParseEx ex) {
820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            //test pass
830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        p = new ATResponseParser("+CLCC: 1,0,2,0,0,\"+18005551212\",145");
860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals(1, p.nextInt());
880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertFalse(p.nextBoolean());
890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals(2, p.nextInt());
900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals(0, p.nextInt());
910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals(0, p.nextInt());
920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("+18005551212", p.nextString());
930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals(145, p.nextInt());
940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertFalse(p.hasMore());
950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        p = new ATResponseParser("+CLCC: 1,0,2,0,0,\"+18005551212,145");
970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals(1, p.nextInt());
990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertFalse(p.nextBoolean());
1000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals(2, p.nextInt());
1010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals(0, p.nextInt());
1020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals(0, p.nextInt());
1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        try {
1040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            p.nextString();
1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            fail("expected ex");
1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } catch (ATParseEx ex) {
1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            //test pass
1080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        p = new ATResponseParser("+FOO: \"\"");
1110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertEquals("", p.nextString());
1120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
114