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);
        }