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