Esempio n. 1
0
        // 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());
        }
Esempio n. 2
0
        // 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());
        }
Esempio n. 3
0
        [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());
        }
Esempio n. 4
0
        [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());
        }