/**
* @dataProvider shortNumberRegionList
*/
public function testShortNumbersValidAndCorrectCost($regionCode)
{
$exampleShortNumber = $this->shortNumberInfo->getExampleShortNumber($regionCode);
if (!$this->shortNumberInfo->isValidShortNumberForRegion(
$this->phoneNumberUtil->parse($exampleShortNumber, $regionCode),
$regionCode
)
) {
$this->fail(
"Failed validation for string region_code: {$regionCode}, national_number: {$exampleShortNumber}"
);
}
$phoneNumber = $this->phoneNumberUtil->parse($exampleShortNumber, $regionCode);
if (!$this->shortNumberInfo->isValidShortNumber($phoneNumber)) {
$this->fail("Failed validation for " . (string)$phoneNumber);
}
$costArray = array(
ShortNumberCost::PREMIUM_RATE,
ShortNumberCost::STANDARD_RATE,
ShortNumberCost::TOLL_FREE,
ShortNumberCost::UNKNOWN_COST
);
foreach ($costArray as $cost) {
$exampleShortNumber = $this->shortNumberInfo->getExampleShortNumberForCost($regionCode, $cost);
if ($exampleShortNumber != '') {
$this->assertEquals(
$cost,
$this->shortNumberInfo->getExpectedCostForRegion($this->phoneNumberUtil->parse($exampleShortNumber, $regionCode), $regionCode),
"Wrong cost for " . (string)$phoneNumber
);
}
}
}