public function testIsPossibleNumberWithReason()
{
// National numbers for country calling code +1 that are within 7 to 10 digits are possible.
$this->assertEquals(ValidationResult::IS_POSSIBLE, $this->phoneUtil->isPossibleNumberWithReason(self::$usNumber));
$this->assertEquals(ValidationResult::IS_POSSIBLE, $this->phoneUtil->isPossibleNumberWithReason(self::$usLocalNumber));
$this->assertEquals(ValidationResult::TOO_LONG, $this->phoneUtil->isPossibleNumberWithReason(self::$usLongNumber));
$number = new PhoneNumber();
$number->setCountryCode(0)->setNationalNumber(2530000);
$this->assertEquals(ValidationResult::INVALID_COUNTRY_CODE, $this->phoneUtil->isPossibleNumberWithReason($number));
$number->clear();
$number->setCountryCode(1)->setNationalNumber(253000);
$this->assertEquals(ValidationResult::TOO_SHORT, $this->phoneUtil->isPossibleNumberWithReason($number));
$number->clear();
$number->setCountryCode(65)->setNationalNumber(1234567890);
$this->assertEquals(ValidationResult::IS_POSSIBLE, $this->phoneUtil->isPossibleNumberWithReason($number));
$this->assertEquals(ValidationResult::TOO_LONG, $this->phoneUtil->isPossibleNumberWithReason(self::$internationalTollFreeTooLong));
// Try with number that we don't have metadata for.
$adNumber = new PhoneNumber();
$adNumber->setCountryCode(376)->setNationalNumber(12345);
$this->assertEquals(ValidationResult::IS_POSSIBLE, $this->phoneUtil->isPossibleNumberWithReason($adNumber));
$adNumber->setCountryCode(376)->setNationalNumber(1);
$this->assertEquals(ValidationResult::TOO_SHORT, $this->phoneUtil->isPossibleNumberWithReason($adNumber));
$adNumber->setCountryCode(376)->setNationalNumber(12345678901234567);
$this->assertEquals(ValidationResult::TOO_LONG, $this->phoneUtil->isPossibleNumberWithReason($adNumber));
}