truncateTooLongNumber() public method

Attempts to extract a valid number from a phone number that is too long to be valid, and resets the PhoneNumber object passed in to that valid version. If no valid number could be extracted, the PhoneNumber object passed in will not be modified.
public truncateTooLongNumber ( PhoneNumber $number ) : boolean
$number PhoneNumber a PhoneNumber object which contains a number that is too long to be valid.
return boolean true if a valid phone number can be successfully extracted.
 public function testTruncateTooLongNumber()
 {
     // GB number 080 1234 5678, but entered with 4 extra digits at the end.
     $tooLongNumber = new PhoneNumber();
     $tooLongNumber->setCountryCode(44)->setNationalNumber(80123456780123);
     $validNumber = new PhoneNumber();
     $validNumber->setCountryCode(44)->setNationalNumber(8012345678);
     $this->assertTrue($this->phoneUtil->truncateTooLongNumber($tooLongNumber));
     $this->assertEquals($validNumber, $tooLongNumber);
     // IT number 022 3456 7890, but entered with 3 extra digits at the end.
     $tooLongNumber->clear();
     $tooLongNumber->setCountryCode(39)->setNationalNumber(2234567890123)->setItalianLeadingZero(true);
     $validNumber->clear();
     $validNumber->setCountryCode(39)->setNationalNumber(2234567890)->setItalianLeadingZero(true);
     $this->assertTrue($this->phoneUtil->truncateTooLongNumber($tooLongNumber));
     $this->assertEquals($validNumber, $tooLongNumber);
     // US number 650-253-0000, but entered with one additional digit at the end.
     $tooLongNumber->clear();
     $tooLongNumber->mergeFrom(self::$usLongNumber);
     $this->assertTrue($this->phoneUtil->truncateTooLongNumber($tooLongNumber));
     $this->assertEquals(self::$usNumber, $tooLongNumber);
     $tooLongNumber->clear();
     $tooLongNumber->mergeFrom(self::$internationalTollFreeTooLong);
     $this->assertTrue($this->phoneUtil->truncateTooLongNumber($tooLongNumber));
     $this->assertEquals(self::$internationalTollFree, $tooLongNumber);
     // Tests what happens when a valid number is passed in.
     $validNumberCopy = new PhoneNumber();
     $validNumberCopy->mergeFrom($validNumber);
     $this->assertTrue($this->phoneUtil->truncateTooLongNumber($validNumber));
     // Tests the number is not modified.
     $this->assertEquals($validNumberCopy, $validNumber);
     // Tests what happens when a number with invalid prefix is passed in.
     $numberWithInvalidPrefix = new PhoneNumber();
     // The test metadata says US numbers cannot have prefix 240.
     $numberWithInvalidPrefix->setCountryCode(1)->setNationalNumber(2401234567);
     $invalidNumberCopy = new PhoneNumber();
     $invalidNumberCopy->mergeFrom($numberWithInvalidPrefix);
     $this->assertFalse($this->phoneUtil->truncateTooLongNumber($numberWithInvalidPrefix));
     // Tests the number is not modified.
     $this->assertEquals($invalidNumberCopy, $numberWithInvalidPrefix);
     // Tests what happens when a too short number is passed in.
     $tooShortNumber = new PhoneNumber();
     $tooShortNumber->setCountryCode(1)->setNationalNumber(1234);
     $tooShortNumberCopy = new PhoneNumber();
     $tooShortNumberCopy->mergeFrom($tooShortNumber);
     $this->assertFalse($this->phoneUtil->truncateTooLongNumber($tooShortNumber));
     // Tests the number is not modified.
     $this->assertEquals($tooShortNumberCopy, $tooShortNumber);
 }