DcFailCauseTest.java revision 05776d0c8cbc7eefe367062cfa724cdffc37af82
1/*
2 * Copyright (C) 2010 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.internal.telephony.dataconnection;
18
19import android.test.suitebuilder.annotation.SmallTest;
20
21import com.android.internal.telephony.TelephonyTest;
22import com.android.internal.telephony.dataconnection.ApnSetting;
23
24import junit.framework.TestCase;
25
26import org.junit.After;
27import org.junit.Before;
28import org.junit.Test;
29
30import java.util.ArrayList;
31import java.util.List;
32
33import static junit.framework.Assert.assertEquals;
34import static junit.framework.Assert.assertFalse;
35
36public class DcFailCauseTest extends TelephonyTest {
37
38    private class DcFailCauseData {
39        public final int mCause;
40        public final boolean mPermanentFailure;
41        public final boolean mEventLoggable;
42        DcFailCauseData(int cause, boolean permanentFailure, boolean eventLoggable) {
43            mCause = cause;
44            mPermanentFailure = permanentFailure;
45            mEventLoggable = eventLoggable;
46        }
47    }
48
49    private ArrayList<DcFailCauseData> mFailCauseDataList;
50
51    @Before
52    public void setUp() throws Exception {
53        super.setUp(getClass().getSimpleName());
54
55        mFailCauseDataList = new ArrayList<>();
56
57        mFailCauseDataList.add(new DcFailCauseData(0, false, false));
58        mFailCauseDataList.add(new DcFailCauseData(0x08, true, true));
59        mFailCauseDataList.add(new DcFailCauseData(0x0E, false, false));
60        mFailCauseDataList.add(new DcFailCauseData(0x19, false, false));
61        mFailCauseDataList.add(new DcFailCauseData(0x1A, false, true));
62        mFailCauseDataList.add(new DcFailCauseData(0x1B, true, false));
63        mFailCauseDataList.add(new DcFailCauseData(0x1C, true, true));
64        mFailCauseDataList.add(new DcFailCauseData(0x1D, true, true));
65        mFailCauseDataList.add(new DcFailCauseData(0x1E, true, true));
66        mFailCauseDataList.add(new DcFailCauseData(0x1F, false, true));
67        mFailCauseDataList.add(new DcFailCauseData(0x20, true, true));
68        mFailCauseDataList.add(new DcFailCauseData(0x21, true, true));
69        mFailCauseDataList.add(new DcFailCauseData(0x22, false, true));
70        mFailCauseDataList.add(new DcFailCauseData(0x23, true, true));
71        mFailCauseDataList.add(new DcFailCauseData(0x24, false, false));
72        mFailCauseDataList.add(new DcFailCauseData(0x25, false, false));
73        mFailCauseDataList.add(new DcFailCauseData(0x26, false, false));
74        mFailCauseDataList.add(new DcFailCauseData(0x27, false, false));
75        mFailCauseDataList.add(new DcFailCauseData(0x28, false, false));
76        mFailCauseDataList.add(new DcFailCauseData(0x29, false, false));
77        mFailCauseDataList.add(new DcFailCauseData(0x2A, false, false));
78        mFailCauseDataList.add(new DcFailCauseData(0x2B, false, false));
79        mFailCauseDataList.add(new DcFailCauseData(0x2C, false, false));
80        mFailCauseDataList.add(new DcFailCauseData(0x2D, false, false));
81        mFailCauseDataList.add(new DcFailCauseData(0x2E, false, false));
82        mFailCauseDataList.add(new DcFailCauseData(0x32, true, true));
83        mFailCauseDataList.add(new DcFailCauseData(0x33, true, true));
84        mFailCauseDataList.add(new DcFailCauseData(0x34, false, false));
85        mFailCauseDataList.add(new DcFailCauseData(0x35, false, false));
86        mFailCauseDataList.add(new DcFailCauseData(0x36, false, false));
87        mFailCauseDataList.add(new DcFailCauseData(0x37, false, false));
88        mFailCauseDataList.add(new DcFailCauseData(0x41, false, false));
89        mFailCauseDataList.add(new DcFailCauseData(0x42, false, false));
90        mFailCauseDataList.add(new DcFailCauseData(0x51, false, false));
91        mFailCauseDataList.add(new DcFailCauseData(0x5F, false, false));
92        mFailCauseDataList.add(new DcFailCauseData(0x60, false, false));
93        mFailCauseDataList.add(new DcFailCauseData(0x61, false, false));
94        mFailCauseDataList.add(new DcFailCauseData(0x62, false, false));
95        mFailCauseDataList.add(new DcFailCauseData(0x63, false, false));
96        mFailCauseDataList.add(new DcFailCauseData(0x64, false, false));
97        mFailCauseDataList.add(new DcFailCauseData(0x65, false, false));
98        mFailCauseDataList.add(new DcFailCauseData(0x6F, true, true));
99        mFailCauseDataList.add(new DcFailCauseData(0x70, false, false));
100        mFailCauseDataList.add(new DcFailCauseData(0x71, false, false));
101        mFailCauseDataList.add(new DcFailCauseData(0x72, false, false));
102        mFailCauseDataList.add(new DcFailCauseData(0x73, false, false));
103        mFailCauseDataList.add(new DcFailCauseData(0x74, false, false));
104        mFailCauseDataList.add(new DcFailCauseData(0x75, false, false));
105        mFailCauseDataList.add(new DcFailCauseData(0x76, false, false));
106        mFailCauseDataList.add(new DcFailCauseData(0x77, false, false));
107        mFailCauseDataList.add(new DcFailCauseData(0x78, false, false));
108        mFailCauseDataList.add(new DcFailCauseData(0x79, false, false));
109        mFailCauseDataList.add(new DcFailCauseData(0x7A, false, false));
110        mFailCauseDataList.add(new DcFailCauseData(0x1001, false, false));
111        mFailCauseDataList.add(new DcFailCauseData(0x1002, false, false));
112        mFailCauseDataList.add(new DcFailCauseData(0x1003, false, false));
113        mFailCauseDataList.add(new DcFailCauseData(0x1004, false, false));
114        mFailCauseDataList.add(new DcFailCauseData(0x1005, false, false));
115        mFailCauseDataList.add(new DcFailCauseData(0x1006, false, false));
116        mFailCauseDataList.add(new DcFailCauseData(0x1007, false, false));
117        mFailCauseDataList.add(new DcFailCauseData(0x1008, false, false));
118        mFailCauseDataList.add(new DcFailCauseData(0x1009, false, false));
119        mFailCauseDataList.add(new DcFailCauseData(0x100A, false, false));
120        mFailCauseDataList.add(new DcFailCauseData(0x100B, false, false));
121        mFailCauseDataList.add(new DcFailCauseData(0x100C, false, false));
122        mFailCauseDataList.add(new DcFailCauseData(0x100D, false, false));
123        mFailCauseDataList.add(new DcFailCauseData(0x100E, false, false));
124        mFailCauseDataList.add(new DcFailCauseData(0x100F, false, false));
125        mFailCauseDataList.add(new DcFailCauseData(-1, false, false));
126        mFailCauseDataList.add(new DcFailCauseData(-2, false, false));
127        mFailCauseDataList.add(new DcFailCauseData(-3, true, true));
128        mFailCauseDataList.add(new DcFailCauseData(-4, false, false));
129        mFailCauseDataList.add(new DcFailCauseData(-5, true, true));
130        mFailCauseDataList.add(new DcFailCauseData(-6, true, true));
131        mFailCauseDataList.add(new DcFailCauseData(0xFFFF, false, false));
132        mFailCauseDataList.add(new DcFailCauseData(0x10000, false, false));
133        mFailCauseDataList.add(new DcFailCauseData(0x10001, true, false));
134        mFailCauseDataList.add(new DcFailCauseData(0x10002, true, true));
135        mFailCauseDataList.add(new DcFailCauseData(0x10003, false, false));
136        mFailCauseDataList.add(new DcFailCauseData(0x10004, false, false));
137        mFailCauseDataList.add(new DcFailCauseData(0x10005, false, false));
138    }
139
140    @After
141    public void tearDown() throws Exception {
142        super.tearDown();
143    }
144
145    @Test
146    @SmallTest
147    public void testPermanentFail() throws Exception {
148        for (DcFailCauseData data : mFailCauseDataList) {
149            assertEquals("cause = " + data.mCause, data.mPermanentFailure,
150                    DcFailCause.fromInt(data.mCause).isPermanentFail());
151        }
152        assertFalse(DcFailCause.fromInt(123456).isPermanentFail());
153    }
154
155    @Test
156    @SmallTest
157    public void testEventLoggable() throws Exception {
158        for (DcFailCauseData data : mFailCauseDataList) {
159            assertEquals("cause = " + data.mCause, data.mEventLoggable,
160                    DcFailCause.fromInt(data.mCause).isEventLoggable());
161        }
162        assertFalse(DcFailCause.fromInt(123456).isEventLoggable());
163    }
164
165    @Test
166    @SmallTest
167    public void testGetErrorCode() throws Exception {
168        for (DcFailCauseData data : mFailCauseDataList) {
169            assertEquals(data.mCause, DcFailCause.fromInt(data.mCause).getErrorCode());
170        }
171        assertEquals(DcFailCause.UNKNOWN.getErrorCode(),
172                DcFailCause.fromInt(123456).getErrorCode());
173    }
174}
175