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