示例#1
0
        public void TryParse(string text, char singleton, string[] subtags)
        {
            var pu1 = ExtensionSubtag.TryParse(text);

            Assert.IsTrue(pu1.HasValue);
            Assert.That(pu1 !.Value.Singleton, Is.EqualTo(singleton));
            Assert.That(pu1, Is.EquivalentTo(subtags));

            Assert.That(ExtensionSubtag.TryParse(text, out var pu2), Is.True);
            Assert.That(pu2.Singleton, Is.EqualTo(singleton));
            Assert.That(pu2, Is.EquivalentTo(subtags));

            Assert.That(pu1, Is.EqualTo(pu2));

            foreach (var language in TestContent.GetLanguages())
            {
                var languageTag = LanguageTag.TryParse($"{language}-{text}");
                Assert.IsNotNull(languageTag);

                if (singleton == 'x')
                {
                    Assert.AreEqual(
                        languageTag !.Value.PrivateUse,
                        new ExtensionSubtag(singleton, subtags));
                }
                else
                {
                    CollectionAssert.AreEqual(
                        languageTag !.Value.Extensions,
                        new[] { new ExtensionSubtag(singleton, subtags) });
                }
            }
        }
示例#2
0
        public void ParseFail(string text)
        {
            var pu1 = ExtensionSubtag.TryParse(text);

            Assert.That(pu1.HasValue, Is.False);

            Assert.That(ExtensionSubtag.TryParse(text, out _), Is.False);

            Assert.Throws <FormatException>(() => ExtensionSubtag.Parse(text));
        }