LinkPropertiesTest.java revision 4e900091c4da26eb1c9f0d232ee0e50f4522cc69
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 android.net; 18 19import android.net.LinkProperties; 20import android.test.suitebuilder.annotation.SmallTest; 21import junit.framework.TestCase; 22 23import java.net.InetAddress; 24 25public class LinkPropertiesTest extends TestCase { 26 private static String ADDRV4 = "75.208.6.1"; 27 private static String ADDRV6 = "2001:0db8:85a3:0000:0000:8a2e:0370:7334"; 28 private static String DNS1 = "75.208.7.1"; 29 private static String DNS2 = "69.78.7.1"; 30 private static String GATEWAY1 = "75.208.8.1"; 31 private static String GATEWAY2 = "69.78.8.1"; 32 private static String NAME = "qmi0"; 33 34 @SmallTest 35 public void testEqualsNull() { 36 LinkProperties source = new LinkProperties(); 37 LinkProperties target = new LinkProperties(); 38 39 assertFalse(source == target); 40 assertTrue(source.equals(target)); 41 assertTrue(source.hashCode() == target.hashCode()); 42 } 43 44 @SmallTest 45 public void testEqualsSameOrder() { 46 try { 47 LinkProperties source = new LinkProperties(); 48 source.setInterfaceName(NAME); 49 // set 2 link addresses 50 source.addLinkAddress(new LinkAddress( 51 NetworkUtils.numericToInetAddress(ADDRV4), 32)); 52 source.addLinkAddress(new LinkAddress( 53 NetworkUtils.numericToInetAddress(ADDRV6), 128)); 54 // set 2 dnses 55 source.addDns(NetworkUtils.numericToInetAddress(DNS1)); 56 source.addDns(NetworkUtils.numericToInetAddress(DNS2)); 57 // set 2 gateways 58 source.addGateway(NetworkUtils.numericToInetAddress(GATEWAY1)); 59 source.addGateway(NetworkUtils.numericToInetAddress(GATEWAY2)); 60 61 LinkProperties target = new LinkProperties(); 62 63 // All fields are same 64 target.setInterfaceName(NAME); 65 target.addLinkAddress(new LinkAddress( 66 NetworkUtils.numericToInetAddress(ADDRV4), 32)); 67 target.addLinkAddress(new LinkAddress( 68 NetworkUtils.numericToInetAddress(ADDRV6), 128)); 69 target.addDns(NetworkUtils.numericToInetAddress(DNS1)); 70 target.addDns(NetworkUtils.numericToInetAddress(DNS2)); 71 target.addGateway(NetworkUtils.numericToInetAddress(GATEWAY1)); 72 target.addGateway(NetworkUtils.numericToInetAddress(GATEWAY2)); 73 74 assertTrue(source.equals(target)); 75 assertTrue(source.hashCode() == target.hashCode()); 76 77 target.clear(); 78 // change Interface Name 79 target.setInterfaceName("qmi1"); 80 target.addLinkAddress(new LinkAddress( 81 NetworkUtils.numericToInetAddress(ADDRV4), 32)); 82 target.addLinkAddress(new LinkAddress( 83 NetworkUtils.numericToInetAddress(ADDRV6), 128)); 84 target.addDns(NetworkUtils.numericToInetAddress(DNS1)); 85 target.addDns(NetworkUtils.numericToInetAddress(DNS2)); 86 target.addGateway(NetworkUtils.numericToInetAddress(GATEWAY1)); 87 target.addGateway(NetworkUtils.numericToInetAddress(GATEWAY2)); 88 assertFalse(source.equals(target)); 89 90 target.clear(); 91 target.setInterfaceName(NAME); 92 // change link addresses 93 target.addLinkAddress(new LinkAddress( 94 NetworkUtils.numericToInetAddress("75.208.6.2"), 32)); 95 target.addLinkAddress(new LinkAddress( 96 NetworkUtils.numericToInetAddress(ADDRV6), 128)); 97 target.addDns(NetworkUtils.numericToInetAddress(DNS1)); 98 target.addDns(NetworkUtils.numericToInetAddress(DNS2)); 99 target.addGateway(NetworkUtils.numericToInetAddress(GATEWAY1)); 100 target.addGateway(NetworkUtils.numericToInetAddress(GATEWAY2)); 101 assertFalse(source.equals(target)); 102 103 target.clear(); 104 target.setInterfaceName(NAME); 105 target.addLinkAddress(new LinkAddress( 106 NetworkUtils.numericToInetAddress(ADDRV4), 32)); 107 target.addLinkAddress(new LinkAddress( 108 NetworkUtils.numericToInetAddress(ADDRV6), 128)); 109 // change dnses 110 target.addDns(NetworkUtils.numericToInetAddress("75.208.7.2")); 111 target.addDns(NetworkUtils.numericToInetAddress(DNS2)); 112 target.addGateway(NetworkUtils.numericToInetAddress(GATEWAY1)); 113 target.addGateway(NetworkUtils.numericToInetAddress(GATEWAY2)); 114 assertFalse(source.equals(target)); 115 116 target.clear(); 117 target.setInterfaceName(NAME); 118 target.addLinkAddress(new LinkAddress( 119 NetworkUtils.numericToInetAddress(ADDRV4), 32)); 120 target.addLinkAddress(new LinkAddress( 121 NetworkUtils.numericToInetAddress(ADDRV6), 128)); 122 target.addDns(NetworkUtils.numericToInetAddress(DNS1)); 123 target.addDns(NetworkUtils.numericToInetAddress(DNS2)); 124 // change gateway 125 target.addGateway(NetworkUtils.numericToInetAddress("75.208.8.2")); 126 target.addGateway(NetworkUtils.numericToInetAddress(GATEWAY2)); 127 assertFalse(source.equals(target)); 128 129 } catch (Exception e) { 130 throw new RuntimeException(e.toString()); 131 //fail(); 132 } 133 } 134 135 @SmallTest 136 public void testEqualsDifferentOrder() { 137 try { 138 LinkProperties source = new LinkProperties(); 139 source.setInterfaceName(NAME); 140 // set 2 link addresses 141 source.addLinkAddress(new LinkAddress( 142 NetworkUtils.numericToInetAddress(ADDRV4), 32)); 143 source.addLinkAddress(new LinkAddress( 144 NetworkUtils.numericToInetAddress(ADDRV6), 128)); 145 // set 2 dnses 146 source.addDns(NetworkUtils.numericToInetAddress(DNS1)); 147 source.addDns(NetworkUtils.numericToInetAddress(DNS2)); 148 // set 2 gateways 149 source.addGateway(NetworkUtils.numericToInetAddress(GATEWAY1)); 150 source.addGateway(NetworkUtils.numericToInetAddress(GATEWAY2)); 151 152 LinkProperties target = new LinkProperties(); 153 // Exchange order 154 target.setInterfaceName(NAME); 155 target.addLinkAddress(new LinkAddress( 156 NetworkUtils.numericToInetAddress(ADDRV6), 128)); 157 target.addLinkAddress(new LinkAddress( 158 NetworkUtils.numericToInetAddress(ADDRV4), 32)); 159 target.addDns(NetworkUtils.numericToInetAddress(DNS2)); 160 target.addDns(NetworkUtils.numericToInetAddress(DNS1)); 161 target.addGateway(NetworkUtils.numericToInetAddress(GATEWAY2)); 162 target.addGateway(NetworkUtils.numericToInetAddress(GATEWAY1)); 163 164 assertTrue(source.equals(target)); 165 assertTrue(source.hashCode() == target.hashCode()); 166 } catch (Exception e) { 167 fail(); 168 } 169 } 170 171 @SmallTest 172 public void testEqualsDuplicated() { 173 try { 174 LinkProperties source = new LinkProperties(); 175 // set 3 link addresses, eg, [A, A, B] 176 source.addLinkAddress(new LinkAddress( 177 NetworkUtils.numericToInetAddress(ADDRV4), 32)); 178 source.addLinkAddress(new LinkAddress( 179 NetworkUtils.numericToInetAddress(ADDRV4), 32)); 180 source.addLinkAddress(new LinkAddress( 181 NetworkUtils.numericToInetAddress(ADDRV6), 128)); 182 183 LinkProperties target = new LinkProperties(); 184 // set 3 link addresses, eg, [A, B, B] 185 target.addLinkAddress(new LinkAddress( 186 NetworkUtils.numericToInetAddress(ADDRV4), 32)); 187 target.addLinkAddress(new LinkAddress( 188 NetworkUtils.numericToInetAddress(ADDRV6), 128)); 189 target.addLinkAddress(new LinkAddress( 190 NetworkUtils.numericToInetAddress(ADDRV6), 128)); 191 192 assertTrue(source.equals(target)); 193 assertTrue(source.hashCode() == target.hashCode()); 194 } catch (Exception e) { 195 fail(); 196 } 197 } 198 199} 200