• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2017 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 
17 package com.android.internal.telephony.data;
18 
19 import static com.android.internal.telephony.dataconnection.DcTrackerTest.FAKE_ADDRESS;
20 import static com.android.internal.telephony.dataconnection.DcTrackerTest.FAKE_DNS;
21 import static com.android.internal.telephony.dataconnection.DcTrackerTest.FAKE_GATEWAY;
22 import static com.android.internal.telephony.dataconnection.DcTrackerTest.FAKE_IFNAME;
23 import static com.android.internal.telephony.dataconnection.DcTrackerTest.FAKE_PCSCF_ADDRESS;
24 
25 import android.net.InetAddresses;
26 import android.net.LinkAddress;
27 import android.os.Parcel;
28 import android.telephony.data.ApnSetting;
29 import android.telephony.data.DataCallResponse;
30 import android.telephony.data.EpsQos;
31 import android.telephony.data.Qos;
32 import android.telephony.data.TrafficDescriptor;
33 import android.test.AndroidTestCase;
34 import android.test.suitebuilder.annotation.SmallTest;
35 
36 import java.util.ArrayList;
37 import java.util.Arrays;
38 
39 public class DataCallResponseTest extends AndroidTestCase {
40     public static final String FAKE_DNN = "FAKE_DNN";
41     public static final String FAKE_DNN_2 = "FAKE_DNN_2";
42     // 97a498e3fc925c9489860333d06e4e470a454e5445525052495345.
43     // [OsAppId.ANDROID_OS_ID, "ENTERPRISE", 1]
44     public static final byte[] FAKE_OS_APP_ID = {-105, -92, -104, -29, -4, -110, 92,
45             -108, -119, -122, 3, 51, -48, 110, 78, 71, 10, 69, 78, 84, 69,
46             82, 80, 82, 73, 83, 69};
47     // 97a498e3fc925c9489860333d06e4e470a454e544552505249534532.
48     // [OsAppId.ANDROID_OS_ID, "ENTERPRISE", 2]
49     public static final byte[] FAKE_OS_APP_ID_2 = {-105, -92, -104, -29, -4, -110, 92,
50             -108, -119, -122, 3, 51, -48, 110, 78, 71, 10, 69, 78, 84, 69,
51             82, 80, 82, 73, 83, 69, 50};
52 
53     @SmallTest
testParcel()54     public void testParcel() {
55         DataCallResponse response = new DataCallResponse.Builder()
56                 .setCause(0)
57                 .setRetryDurationMillis(-1L)
58                 .setId(1)
59                 .setLinkStatus(2)
60                 .setProtocolType(ApnSetting.PROTOCOL_IP)
61                 .setInterfaceName(FAKE_IFNAME)
62                 .setAddresses(Arrays.asList(
63                         new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0)))
64                 .setDnsAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS)))
65                 .setGatewayAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY)))
66                 .setPcscfAddresses(
67                         Arrays.asList(InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS)))
68                 .setMtuV4(1440)
69                 .setMtuV6(1440)
70                 .setDefaultQos(new EpsQos(
71                         new Qos.QosBandwidth(-1, -1), new Qos.QosBandwidth(-1, -1), -1))
72                 .setQosBearerSessions(new ArrayList<>())
73                 .setTrafficDescriptors(
74                         Arrays.asList(new TrafficDescriptor(FAKE_DNN, FAKE_OS_APP_ID)))
75                 .build();
76 
77         Parcel p = Parcel.obtain();
78         response.writeToParcel(p, 0);
79         p.setDataPosition(0);
80 
81         DataCallResponse newResponse = new DataCallResponse(p);
82         assertEquals(response, newResponse);
83     }
84 
85     @SmallTest
testEqualsAndHashCode()86     public void testEqualsAndHashCode() {
87         DataCallResponse response = new DataCallResponse.Builder()
88                 .setCause(0)
89                 .setRetryDurationMillis(-1L)
90                 .setId(1)
91                 .setLinkStatus(2)
92                 .setProtocolType(ApnSetting.PROTOCOL_IP)
93                 .setInterfaceName(FAKE_IFNAME)
94                 .setAddresses(Arrays.asList(
95                         new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0)))
96                 .setDnsAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS)))
97                 .setGatewayAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY)))
98                 .setPcscfAddresses(
99                         Arrays.asList(InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS)))
100                 .setMtuV4(1440)
101                 .setMtuV6(1400)
102                 .setTrafficDescriptors(
103                         Arrays.asList(new TrafficDescriptor(FAKE_DNN, FAKE_OS_APP_ID)))
104                 .build();
105 
106         DataCallResponse response1 = new DataCallResponse.Builder()
107                 .setCause(0)
108                 .setRetryDurationMillis(-1L)
109                 .setId(1)
110                 .setLinkStatus(2)
111                 .setProtocolType(ApnSetting.PROTOCOL_IP)
112                 .setInterfaceName(FAKE_IFNAME)
113                 .setAddresses(Arrays.asList(
114                         new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0)))
115                 .setDnsAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS)))
116                 .setGatewayAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY)))
117                 .setPcscfAddresses(
118                         Arrays.asList(InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS)))
119                 .setMtuV4(1440)
120                 .setMtuV6(1400)
121                 .setTrafficDescriptors(
122                         Arrays.asList(new TrafficDescriptor(FAKE_DNN, FAKE_OS_APP_ID)))
123                 .build();
124 
125         assertEquals(response, response);
126         assertEquals(response, response1);
127         assertEquals(response.hashCode(), response1.hashCode());
128 
129         DataCallResponse response2 = new DataCallResponse.Builder()
130                 .setCause(1)
131                 .setRetryDurationMillis(-1L)
132                 .setId(1)
133                 .setLinkStatus(3)
134                 .setProtocolType(ApnSetting.PROTOCOL_IP)
135                 .setInterfaceName(FAKE_IFNAME)
136                 .setAddresses(Arrays.asList(
137                         new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0)))
138                 .setDnsAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS),
139                         InetAddresses.parseNumericAddress(FAKE_DNS)))
140                 .setGatewayAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY)))
141                 .setPcscfAddresses(Arrays.asList(
142                         InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS),
143                         InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS)))
144                 .setMtuV4(1441)
145                 .setMtuV6(1440)
146                 .setTrafficDescriptors(Arrays.asList(
147                         new TrafficDescriptor(FAKE_DNN, FAKE_OS_APP_ID),
148                         new TrafficDescriptor(FAKE_DNN_2, FAKE_OS_APP_ID_2)))
149                 .build();
150 
151         assertNotSame(response1, response2);
152         assertNotSame(response1, null);
153         assertNotSame(response1, new String[1]);
154         assertNotSame(response1.hashCode(), response2.hashCode());
155 
156         DataCallResponse response3 = new DataCallResponse.Builder()
157                 .setCause(1)
158                 .setRetryDurationMillis(-1L)
159                 .setId(1)
160                 .setLinkStatus(3)
161                 .setProtocolType(ApnSetting.PROTOCOL_IP)
162                 .setInterfaceName(FAKE_IFNAME)
163                 .setAddresses(Arrays.asList(
164                         new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0)))
165                 .setDnsAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS),
166                         InetAddresses.parseNumericAddress(FAKE_DNS)))
167                 .setGatewayAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY)))
168                 .setPcscfAddresses(Arrays.asList(
169                         InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS),
170                         InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS)))
171                 .setMtuV4(1441)
172                 .setMtuV6(1440)
173                 .setTrafficDescriptors(Arrays.asList(
174                         new TrafficDescriptor(FAKE_DNN_2, FAKE_OS_APP_ID_2),
175                         new TrafficDescriptor(FAKE_DNN, FAKE_OS_APP_ID)))
176                 .build();
177 
178         assertEquals(response2, response3);
179         assertEquals(response2.hashCode(), response3.hashCode());
180     }
181 }
182