public isCarrierSpecific ( |
||
$number | the valid short number to check | |
return | boolean | whether the short number is carrier-specific (assuming the input was a valid short number). |
public function isCarrierSpecific(PhoneNumber $number)
{
$regionCodes = $this->getRegionCodesForCountryCode($number->getCountryCode());
$regionCode = $this->getRegionCodeForShortNumberFromRegionList($number, $regionCodes);
$nationalNumber = $this->getNationalSignificantNumber($number);
$phoneMetadata = $this->getMetadataForRegion($regionCode);
return $phoneMetadata !== null && $this->matchesPossibleNumberAndNationalNumber($nationalNumber, $phoneMetadata->getCarrierSpecific());
}
/** * @dataProvider shortNumberRegionList */ public function testCarrierSpecificShortNumbers($regionCode) { // Test the carrier-specific tag. $desc = $this->shortNumberInfo->getMetadataForRegion($regionCode)->getCarrierSpecific(); if ($desc->hasExampleNumber()) { $exampleNumber = $desc->getExampleNumber(); $carrierSpecificNumber = $this->phoneNumberUtil->parse($exampleNumber, $regionCode); if (!$this->shortNumberInfo->isPossibleShortNumberForRegion($carrierSpecificNumber, $regionCode) || !$this->shortNumberInfo->isCarrierSpecific($carrierSpecificNumber)) { $this->fail("Carrier-specific test failed for " . $regionCode); } } }