/** * */ public function testIsValidNumberForRegion() { // This number is valid for the Bahamas, but is not a valid US number. $this->assertTrue($this->phoneUtil->isValidNumber(self::$bsNumber)); $this->assertTrue($this->phoneUtil->isValidNumberForRegion(self::$bsNumber, RegionCode::BS)); $this->assertFalse($this->phoneUtil->isValidNumberForRegion(self::$bsNumber, RegionCode::US)); $bsInvalidNumber = new PhoneNumber(); $bsInvalidNumber->setCountryCode(1)->setNationalNumber(2421232345); // This number is no longer valid. $this->assertFalse($this->phoneUtil->isValidNumber($bsInvalidNumber)); // La Mayotte and Reunion use 'leadingDigits' to differentiate them. $reNumber = new PhoneNumber(); $reNumber->setCountryCode(262)->setNationalNumber(262123456); $this->assertTrue($this->phoneUtil->isValidNumber($reNumber)); $this->assertTrue($this->phoneUtil->isValidNumberForRegion($reNumber, RegionCode::RE)); $this->assertFalse($this->phoneUtil->isValidNumberForRegion($reNumber, RegionCode::YT)); // Now change the number to be a number for La Mayotte. $reNumber->setNationalNumber(269601234); $this->assertTrue($this->phoneUtil->isValidNumberForRegion($reNumber, RegionCode::YT)); $this->assertFalse($this->phoneUtil->isValidNumberForRegion($reNumber, RegionCode::RE)); // This number is no longer valid for La Reunion. $reNumber->setNationalNumber(269123456); $this->assertFalse($this->phoneUtil->isValidNumberForRegion($reNumber, RegionCode::YT)); $this->assertFalse($this->phoneUtil->isValidNumberForRegion($reNumber, RegionCode::RE)); $this->assertFalse($this->phoneUtil->isValidNumber($reNumber)); // However, it should be recognised as from La Mayotte, since it is valid for this region. $this->assertEquals(RegionCode::YT, $this->phoneUtil->getRegionCodeForNumber($reNumber)); // This number is valid in both places. $reNumber->setNationalNumber(800123456); $this->assertTrue($this->phoneUtil->isValidNumberForRegion($reNumber, RegionCode::YT)); $this->assertTrue($this->phoneUtil->isValidNumberForRegion($reNumber, RegionCode::RE)); $this->assertTrue($this->phoneUtil->isValidNumberForRegion(self::$internationalTollFree, RegionCode::UN001)); $this->assertFalse($this->phoneUtil->isValidNumberForRegion(self::$internationalTollFree, RegionCode::US)); $this->assertFalse($this->phoneUtil->isValidNumberForRegion(self::$internationalTollFree, RegionCode::ZZ)); $invalidNumber = new PhoneNumber(); // Invalid country calling codes. $invalidNumber->setCountryCode(3923)->setNationalNumber(2366); $this->assertFalse($this->phoneUtil->isValidNumberForRegion($invalidNumber, RegionCode::ZZ)); $invalidNumber->setCountryCode(3923)->setNationalNumber(2366); $this->assertFalse($this->phoneUtil->isValidNumberForRegion($invalidNumber, RegionCode::UN001)); $invalidNumber->setCountryCode(0)->setNationalNumber(2366); $this->assertFalse($this->phoneUtil->isValidNumberForRegion($invalidNumber, RegionCode::UN001)); $invalidNumber->setCountryCode(0); $this->assertFalse($this->phoneUtil->isValidNumberForRegion($invalidNumber, RegionCode::ZZ)); }