// Tests setLeadingDigitsPatterns() in the case of international and national formatting rules // being present but not both defined for this numberFormat - we don't want to add them twice. [TestMethod] public void testSetLeadingDigitsPatternsNotAddedTwiceWhenInternationalFormatsPresent() { String xmlInput = " <availableFormats>" + " <numberFormat pattern=\"(1)(\\d{3})\">" + " <leadingDigits>1</leadingDigits>" + " <format>$1</format>" + " </numberFormat>" + " <numberFormat pattern=\"(2)(\\d{3})\">" + " <leadingDigits>2</leadingDigits>" + " <format>$1</format>" + " <intlFormat>9-$1</intlFormat>" + " </numberFormat>" + " </availableFormats>"; XmlElement element = parseXmlString(xmlInput); PhoneMetadata.Builder metadata = PhoneMetadata.newBuilder(); BuildMetadataFromXml.loadAvailableFormats( metadata, element, "0", "", false /* NP not optional */); Assert.AreEqual(1, metadata.getNumberFormat(0).leadingDigitsPatternSize()); Assert.AreEqual(1, metadata.getNumberFormat(1).leadingDigitsPatternSize()); // When we merge the national format rules into the international format rules, we shouldn't add // the leading digit patterns multiple times. Assert.AreEqual(1, metadata.getIntlNumberFormat(0).leadingDigitsPatternSize()); Assert.AreEqual(1, metadata.getIntlNumberFormat(1).leadingDigitsPatternSize()); }
// Tests loadInternationalFormat(). [TestMethod] public void testLoadInternationalFormat() { String intlFormat = "$1 $2"; String xmlInput = "<numberFormat><intlFormat>" + intlFormat + "</intlFormat></numberFormat>"; XmlElement numberFormatElement = parseXmlString(xmlInput); PhoneMetadata.Builder metadata = PhoneMetadata.newBuilder(); NumberFormat nationalFormat = NumberFormat.newBuilder().build(); Assert.IsTrue(BuildMetadataFromXml.loadInternationalFormat(metadata, numberFormatElement, nationalFormat)); Assert.AreEqual(intlFormat, metadata.getIntlNumberFormat(0).getFormat()); }
[TestMethod] public void testLoadInternationalFormatCopiesNationalFormatData() { String xmlInput = "<numberFormat></numberFormat>"; XmlElement numberFormatElement = parseXmlString(xmlInput); PhoneMetadata.Builder metadata = PhoneMetadata.newBuilder(); NumberFormat.Builder nationalFormat = NumberFormat.newBuilder(); nationalFormat.setFormat("$1-$2"); nationalFormat.setNationalPrefixOptionalWhenFormatting(true); Assert.IsFalse(BuildMetadataFromXml.loadInternationalFormat(metadata, numberFormatElement, nationalFormat.build())); Assert.IsTrue(metadata.getIntlNumberFormat(0).isNationalPrefixOptionalWhenFormatting()); }
[TestMethod] public void testLoadInternationalFormatUsesNationalFormatByDefault() { String xmlInput = "<numberFormat></numberFormat>"; XmlElement numberFormatElement = parseXmlString(xmlInput); PhoneMetadata.Builder metadata = PhoneMetadata.newBuilder(); NumberFormat.Builder nationalFormat = NumberFormat.newBuilder(); String nationalPattern = "$1 $2 $3"; nationalFormat.setFormat(nationalPattern); Assert.IsFalse(BuildMetadataFromXml.loadInternationalFormat(metadata, numberFormatElement, nationalFormat.build())); Assert.AreEqual(nationalPattern, metadata.getIntlNumberFormat(0).getFormat()); }