174aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia/* 2ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * Copyright (C) 2009 The Libphonenumber Authors 374aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia * 474aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia * Licensed under the Apache License, Version 2.0 (the "License"); 574aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia * you may not use this file except in compliance with the License. 674aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia * You may obtain a copy of the License at 774aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia * 874aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia * http://www.apache.org/licenses/LICENSE-2.0 974aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia * 1074aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia * Unless required by applicable law or agreed to in writing, software 1174aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia * distributed under the License is distributed on an "AS IS" BASIS, 1274aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1374aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia * See the License for the specific language governing permissions and 1474aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia * limitations under the License. 1574aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia */ 1674aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia 1793f6965c2c041ac707bf1b3bcf5a3f60e452f421Shaopeng Jiapackage com.android.i18n.phonenumbers; 1874aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia 1993f6965c2c041ac707bf1b3bcf5a3f60e452f421Shaopeng Jiaimport com.android.i18n.phonenumbers.Phonenumber.PhoneNumber; 2093f6965c2c041ac707bf1b3bcf5a3f60e452f421Shaopeng Jiaimport com.android.i18n.phonenumbers.Phonenumber.PhoneNumber.CountryCodeSource; 2174aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia 2274aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jiaimport junit.framework.TestCase; 2374aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia 2474aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia/** 2574aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia * Tests for the Phonenumber.PhoneNumber object itself. 2674aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia * 2774aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia * @author Lara Rennie 2874aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia */ 2974aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jiapublic class PhonenumberTest extends TestCase { 3074aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia 3152699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia public void testEqualSimpleNumber() throws Exception { 3274aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia PhoneNumber numberA = new PhoneNumber(); 3374aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia numberA.setCountryCode(1).setNationalNumber(6502530000L); 3474aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia 3574aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia PhoneNumber numberB = new PhoneNumber(); 3674aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia numberB.setCountryCode(1).setNationalNumber(6502530000L); 3774aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia 3874aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia assertEquals(numberA, numberB); 3974aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia assertEquals(numberA.hashCode(), numberB.hashCode()); 4074aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia } 4174aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia 4252699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia public void testEqualWithItalianLeadingZeroSetToDefault() throws Exception { 4374aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia PhoneNumber numberA = new PhoneNumber(); 4474aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia numberA.setCountryCode(1).setNationalNumber(6502530000L).setItalianLeadingZero(false); 4574aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia 4674aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia PhoneNumber numberB = new PhoneNumber(); 4774aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia numberB.setCountryCode(1).setNationalNumber(6502530000L); 4874aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia 4974aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia // These should still be equal, since the default value for this field is false. 5074aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia assertEquals(numberA, numberB); 5174aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia assertEquals(numberA.hashCode(), numberB.hashCode()); 5252699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia } 5374aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia 5452699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia public void testEqualWithCountryCodeSourceSet() throws Exception { 5552699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia PhoneNumber numberA = new PhoneNumber(); 5674aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia numberA.setRawInput("+1 650 253 00 00"). 5774aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia setCountryCodeSource(CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN); 5852699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia PhoneNumber numberB = new PhoneNumber(); 5974aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia numberB.setRawInput("+1 650 253 00 00"). 6074aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia setCountryCodeSource(CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN); 6174aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia assertEquals(numberA, numberB); 6274aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia assertEquals(numberA.hashCode(), numberB.hashCode()); 6374aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia } 6474aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia 6552699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia public void testNonEqualWithItalianLeadingZeroSetToTrue() throws Exception { 6674aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia PhoneNumber numberA = new PhoneNumber(); 6774aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia numberA.setCountryCode(1).setNationalNumber(6502530000L).setItalianLeadingZero(true); 6874aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia 6974aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia PhoneNumber numberB = new PhoneNumber(); 7074aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia numberB.setCountryCode(1).setNationalNumber(6502530000L); 7174aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia 7274aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia assertFalse(numberA.equals(numberB)); 7374aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia assertFalse(numberA.hashCode() == numberB.hashCode()); 7474aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia } 7574aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia 7652699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia public void testNonEqualWithDifferingRawInput() throws Exception { 7774aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia PhoneNumber numberA = new PhoneNumber(); 7874aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia numberA.setCountryCode(1).setNationalNumber(6502530000L).setRawInput("+1 650 253 00 00"). 7974aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia setCountryCodeSource(CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN); 8074aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia 8174aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia PhoneNumber numberB = new PhoneNumber(); 8274aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia // Although these numbers would pass an isNumberMatch test, they are not considered "equal" as 8374aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia // objects, since their raw input is different. 8474aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia numberB.setCountryCode(1).setNationalNumber(6502530000L).setRawInput("+1-650-253-00-00"). 8574aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia setCountryCodeSource(CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN); 8674aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia 8774aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia assertFalse(numberA.equals(numberB)); 8874aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia assertFalse(numberA.hashCode() == numberB.hashCode()); 8974aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia } 9052699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia 9152699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia public void testNonEqualWithPreferredDomesticCarrierCodeSetToDefault() throws Exception { 9252699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia PhoneNumber numberA = new PhoneNumber(); 9352699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia numberA.setCountryCode(1).setNationalNumber(6502530000L).setPreferredDomesticCarrierCode(""); 9452699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia 9552699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia PhoneNumber numberB = new PhoneNumber(); 9652699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia numberB.setCountryCode(1).setNationalNumber(6502530000L); 9752699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia 9852699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia assertFalse(numberA.equals(numberB)); 9952699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia assertFalse(numberA.hashCode() == numberB.hashCode()); 10052699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia } 10152699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia 10252699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia public void testEqualWithPreferredDomesticCarrierCodeSetToDefault() throws Exception { 10352699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia PhoneNumber numberA = new PhoneNumber(); 10452699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia numberA.setCountryCode(1).setNationalNumber(6502530000L).setPreferredDomesticCarrierCode(""); 10552699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia 10652699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia PhoneNumber numberB = new PhoneNumber(); 10752699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia numberB.setCountryCode(1).setNationalNumber(6502530000L).setPreferredDomesticCarrierCode(""); 10852699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia 10952699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia assertEquals(numberA, numberB); 11052699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia assertEquals(numberA.hashCode(), numberB.hashCode()); 11152699e08e855fb0957944b4e73358ad9e0007c0cShaopeng Jia } 11274aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia} 113