public void TestTruncateTooLongNumber() { // GB number 080 1234 5678, but entered with 4 extra digits at the end. var tooLongNumber = new PhoneNumber.Builder() .SetCountryCode(44).SetNationalNumber(80123456780123L); var validNumber = new PhoneNumber.Builder() .SetCountryCode(44).SetNationalNumber(8012345678L); Assert.That(phoneUtil.TruncateTooLongNumber(tooLongNumber)); AreEqual(validNumber, tooLongNumber); // IT number 022 3456 7890, but entered with 3 extra digits at the end. tooLongNumber = new PhoneNumber.Builder() .SetCountryCode(39).SetNationalNumber(2234567890123L).SetItalianLeadingZero(true); validNumber = new PhoneNumber.Builder() .SetCountryCode(39).SetNationalNumber(2234567890L).SetItalianLeadingZero(true); Assert.That(phoneUtil.TruncateTooLongNumber(tooLongNumber)); AreEqual(validNumber, tooLongNumber); // US number 650-253-0000, but entered with one additional digit at the end. tooLongNumber = new PhoneNumber.Builder() .MergeFrom(US_LONG_NUMBER); Assert.That(phoneUtil.TruncateTooLongNumber(tooLongNumber)); Assert.AreEqual(US_NUMBER, tooLongNumber.Build()); tooLongNumber = new PhoneNumber.Builder() .MergeFrom(INTERNATIONAL_TOLL_FREE_TOO_LONG); Assert.That(phoneUtil.TruncateTooLongNumber(tooLongNumber)); Assert.AreEqual(INTERNATIONAL_TOLL_FREE, tooLongNumber.Build()); // Tests what happens when a valid number is passed in. var validNumberCopy = validNumber.Clone(); Assert.That(phoneUtil.TruncateTooLongNumber(validNumber)); // Tests the number is not modified. AreEqual(validNumberCopy, validNumber); // Tests what happens when a number with invalid prefix is passed in. // The test metadata says US numbers cannot have prefix 240. var numberWithInvalidPrefix = new PhoneNumber.Builder() .SetCountryCode(1).SetNationalNumber(2401234567L); var invalidNumberCopy = numberWithInvalidPrefix.Clone(); Assert.False(phoneUtil.TruncateTooLongNumber(numberWithInvalidPrefix)); // Tests the number is not modified. AreEqual(invalidNumberCopy, numberWithInvalidPrefix); // Tests what happens when a too short number is passed in. var tooShortNumber = new PhoneNumber.Builder().SetCountryCode(1).SetNationalNumber(1234L); var tooShortNumberCopy = tooShortNumber.Clone(); Assert.False(phoneUtil.TruncateTooLongNumber(tooShortNumber)); // Tests the number is not modified. AreEqual(tooShortNumberCopy, tooShortNumber); }