10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/*
20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2011 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 android.test.AndroidTestCase;
200825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.test.suitebuilder.annotation.SmallTest;
210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
22d720945f2be5ea5fe0faf67e67d9ea0e184eba67Alex Yakavenkaimport com.android.internal.telephony.uicc.IccServiceTable;
23d720945f2be5ea5fe0faf67e67d9ea0e184eba67Alex Yakavenka
240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/**
250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Test IccServiceTable class.
260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
270825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic class IccServiceTableTest extends AndroidTestCase {
280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static class TestIccServiceTable extends IccServiceTable {
300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public enum TestIccService {
310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            SERVICE1,
320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            SERVICE2,
330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            SERVICE3,
340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            SERVICE4
350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public TestIccServiceTable(byte[] table) {
380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            super(table);
390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public boolean isAvailable(TestIccService service) {
420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return super.isAvailable(service.ordinal());
430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        @Override
460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        protected String getTag() {
470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return "TestIccServiceTable";
480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        @Override
510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        protected Object[] getValues() {
520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return TestIccService.values();
530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @SmallTest
570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void testIccServiceTable() {
580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        byte[] noServices = {0x00};
590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        byte[] service1 = {0x01};
600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        byte[] service4 = {0x08};
610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        byte[] allServices = {0x0f};
620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        TestIccServiceTable testTable1 = new TestIccServiceTable(noServices);
640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertFalse(testTable1.isAvailable(TestIccServiceTable.TestIccService.SERVICE1));
650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertFalse(testTable1.isAvailable(TestIccServiceTable.TestIccService.SERVICE2));
660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertFalse(testTable1.isAvailable(TestIccServiceTable.TestIccService.SERVICE3));
670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertFalse(testTable1.isAvailable(TestIccServiceTable.TestIccService.SERVICE4));
680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        TestIccServiceTable testTable2 = new TestIccServiceTable(service1);
700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue(testTable2.isAvailable(TestIccServiceTable.TestIccService.SERVICE1));
710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertFalse(testTable2.isAvailable(TestIccServiceTable.TestIccService.SERVICE2));
720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertFalse(testTable2.isAvailable(TestIccServiceTable.TestIccService.SERVICE3));
730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertFalse(testTable2.isAvailable(TestIccServiceTable.TestIccService.SERVICE4));
740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        TestIccServiceTable testTable3 = new TestIccServiceTable(service4);
760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertFalse(testTable3.isAvailable(TestIccServiceTable.TestIccService.SERVICE1));
770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertFalse(testTable3.isAvailable(TestIccServiceTable.TestIccService.SERVICE2));
780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertFalse(testTable3.isAvailable(TestIccServiceTable.TestIccService.SERVICE3));
790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue(testTable3.isAvailable(TestIccServiceTable.TestIccService.SERVICE4));
800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        TestIccServiceTable testTable4 = new TestIccServiceTable(allServices);
820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue(testTable4.isAvailable(TestIccServiceTable.TestIccService.SERVICE1));
830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue(testTable4.isAvailable(TestIccServiceTable.TestIccService.SERVICE2));
840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue(testTable4.isAvailable(TestIccServiceTable.TestIccService.SERVICE3));
850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue(testTable4.isAvailable(TestIccServiceTable.TestIccService.SERVICE4));
860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
88