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.dataconnection; 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.TrafficDescriptor; 32 import android.test.AndroidTestCase; 33 import android.test.suitebuilder.annotation.SmallTest; 34 35 import java.util.ArrayList; 36 import java.util.Arrays; 37 38 public class DataCallResponseTest extends AndroidTestCase { 39 public static final String FAKE_DNN = "FAKE_DNN"; 40 public static final byte[] FAKE_OS_APP_ID = {1, 2, 3, 4}; 41 public static final byte[] FAKE_OS_APP_ID_2 = {5, 6, 8, 9}; 42 43 @SmallTest testParcel()44 public void testParcel() { 45 DataCallResponse response = new DataCallResponse.Builder() 46 .setCause(0) 47 .setRetryDurationMillis(-1L) 48 .setId(1) 49 .setLinkStatus(2) 50 .setProtocolType(ApnSetting.PROTOCOL_IP) 51 .setInterfaceName(FAKE_IFNAME) 52 .setAddresses(Arrays.asList( 53 new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0))) 54 .setDnsAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS))) 55 .setGatewayAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY))) 56 .setPcscfAddresses( 57 Arrays.asList(InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS))) 58 .setMtuV4(1440) 59 .setMtuV6(1440) 60 .setDefaultQos(new EpsQos()) 61 .setQosBearerSessions(new ArrayList<>()) 62 .setTrafficDescriptors( 63 Arrays.asList(new TrafficDescriptor(FAKE_DNN, FAKE_OS_APP_ID))) 64 .build(); 65 66 Parcel p = Parcel.obtain(); 67 response.writeToParcel(p, 0); 68 p.setDataPosition(0); 69 70 DataCallResponse newResponse = new DataCallResponse(p); 71 assertEquals(response, newResponse); 72 } 73 74 @SmallTest testEquals()75 public void testEquals() { 76 DataCallResponse response = new DataCallResponse.Builder() 77 .setCause(0) 78 .setRetryDurationMillis(-1L) 79 .setId(1) 80 .setLinkStatus(2) 81 .setProtocolType(ApnSetting.PROTOCOL_IP) 82 .setInterfaceName(FAKE_IFNAME) 83 .setAddresses(Arrays.asList( 84 new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0))) 85 .setDnsAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS))) 86 .setGatewayAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY))) 87 .setPcscfAddresses( 88 Arrays.asList(InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS))) 89 .setMtuV4(1440) 90 .setMtuV6(1400) 91 .setTrafficDescriptors( 92 Arrays.asList(new TrafficDescriptor(FAKE_DNN, FAKE_OS_APP_ID))) 93 .build(); 94 95 DataCallResponse response1 = new DataCallResponse.Builder() 96 .setCause(0) 97 .setRetryDurationMillis(-1L) 98 .setId(1) 99 .setLinkStatus(2) 100 .setProtocolType(ApnSetting.PROTOCOL_IP) 101 .setInterfaceName(FAKE_IFNAME) 102 .setAddresses(Arrays.asList( 103 new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0))) 104 .setDnsAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS))) 105 .setGatewayAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY))) 106 .setPcscfAddresses( 107 Arrays.asList(InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS))) 108 .setMtuV4(1440) 109 .setMtuV6(1400) 110 .setTrafficDescriptors( 111 Arrays.asList(new TrafficDescriptor(FAKE_DNN, FAKE_OS_APP_ID))) 112 .build(); 113 114 assertEquals(response, response); 115 assertEquals(response, response1); 116 117 DataCallResponse response2 = new DataCallResponse.Builder() 118 .setCause(1) 119 .setRetryDurationMillis(-1L) 120 .setId(1) 121 .setLinkStatus(3) 122 .setProtocolType(ApnSetting.PROTOCOL_IP) 123 .setInterfaceName(FAKE_IFNAME) 124 .setAddresses(Arrays.asList( 125 new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0))) 126 .setDnsAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS), 127 InetAddresses.parseNumericAddress(FAKE_DNS))) 128 .setGatewayAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY))) 129 .setPcscfAddresses(Arrays.asList( 130 InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS), 131 InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS))) 132 .setMtuV4(1441) 133 .setMtuV6(1440) 134 .setTrafficDescriptors( 135 Arrays.asList(new TrafficDescriptor("FAKE_DNN_2", FAKE_OS_APP_ID_2))) 136 .build(); 137 138 assertNotSame(response1, response2); 139 assertNotSame(response1, null); 140 assertNotSame(response1, new String[1]); 141 } 142 } 143