Пример #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 TryParse_Fail(string text)
        {
            Assert.That(LanguageTag.TryParse(text).HasValue, Is.False);

            var result = LanguageTag.TryParse(text, out var tag);

            Assert.That(result, Is.False);
            Assert.That(tag, Is.EqualTo(default(LanguageTag)));
        }
Пример #3
0
        public void TryParse_Success()
        {
            LanguageTag?tag1 = LanguageTag.TryParse("en-GB");

            LanguageTag tag2;
            var         result = LanguageTag.TryParse("en-GB", out tag2);

            Assert.That(result, Is.True);
            Assert.That(tag1, Is.EqualTo(tag2));
        }
Пример #4
0
 public void ParseFromExtensionSubtagFail(string text)
 {
     foreach (var language in TestContent.GetLanguages())
     {
         var languageTag = LanguageTag.TryParse($"{language}-{text}");
         if (languageTag.HasValue)
         {
             CollectionAssert.IsEmpty(languageTag.Value.Extensions);
         }
     }
 }
 public void ParseFromExtensionSubtag(string text, char singleton, string[] subtags)
 {
     foreach (var language in TestContent.GetLanguages())
     {
         var languageTag = LanguageTag.TryParse($"{language}-{text}");
         Assert.IsNotNull(languageTag);
         CollectionAssert.AreEqual(
             languageTag !.Value.Extensions,
             new[] { new ExtensionSubtag(singleton, subtags) });
     }
 }
Пример #6
0
        private static Language parseLanguage(string text)
        {
            if (!LanguageTag.TryParse(text, out var languageTag))
            {
                throw new FormatException($"Cannot parse language from `{text}'");
            }

            if ((languageTag.Fields & ~LanguageTag.Field.Language) != 0)
            {
                throw new FormatException($"Tag contains more than just language `{text}'");
            }

            if (languageTag.Language != null)
            {
                return(languageTag.Language);
            }

            throw new FormatException($"Tag does not contain language `{text}'");
        }