public void AddNegativeLookbehindAssertionTest() { // Arrange var regexGenerator = new RegexGenerator(); // Act regexGenerator.AddNegativeLookbehindAssertion(@"a"); // Assert Assert.Equal(@"(?<!a)", regexGenerator.ToString()); }
public void AddUnicodeCategoryByStringTest() { // Arrange var regexGenerator = new RegexGenerator(); // Act regexGenerator.AddUnicodeCategory("L"); // Assert Assert.Equal(@"\p{L}", regexGenerator.ToString()); }
public void AddAtomicGroupTest() { // Arrange var regexGenerator = new RegexGenerator(); // Act regexGenerator.AddAtomicGroup(@"a"); // Assert Assert.Equal(@"(?>a)", regexGenerator.ToString()); }
public void AddNamedCapturingGroupTest() { // Arrange var regexGenerator = new RegexGenerator(); // Act regexGenerator.AddGroup(@"a", name: "a"); // Assert Assert.Equal(@"(?<a>a)", regexGenerator.ToString()); }
public void AddConditionalTest() { // Arrange var regexGenerator = new RegexGenerator(); // Act regexGenerator.AddConditional(@"a", "b", "c"); // Assert Assert.Equal(@"(?(?=a)b|c)", regexGenerator.ToString()); }
public void AddPositiveLookaheadAssertionTest() { // Arrange var regexGenerator = new RegexGenerator(); // Act regexGenerator.AddPositiveLookaheadAssertion(@"a"); // Assert Assert.Equal(@"(?=a)", regexGenerator.ToString()); }
public void AddNodeTest() { // Arrange var regexGenerator = new RegexGenerator(); // Act regexGenerator.Add(@"a"); // Assert Assert.Equal(@"a", regexGenerator.ToString()); }
public void AddNonCapturingGroupTest() { // Arrange var regexGenerator = new RegexGenerator(); // Act regexGenerator.AddGroup(@"a", capturing: false); // Assert Assert.Equal(@"(?:a)", regexGenerator.ToString()); }
public void SimpleAddNestedNodeTest() { // Arrange var regexGenerator = new RegexGenerator(); var node = new RegexNode(@"a"); // Act regexGenerator.AddGroup(node); // Assert Assert.Equal(@"(a)", regexGenerator.ToString()); }
public void SimplePatternGenerationTest() { // Arrange var expectedPattern = @"\d"; var regexGenerator = new RegexGenerator(RegexLanguage.DotNet) .Add(expectedPattern); // Act var actualPattern = regexGenerator.ToString(); // Assert Assert.Equal(expectedPattern, actualPattern); }
public void SimpleCapturingGroupWithoutNamePatternGenerationTest() { // Arrange var expectedPattern = @"(abcde)"; var regexGenerator = new RegexGenerator(RegexLanguage.DotNet) .AddGroup(@"abcde", true); // Act var actualPattern = regexGenerator.ToString(); // Assert Assert.Equal(expectedPattern, actualPattern); }
public void SimpleUnicodeCategoryByStringPatternGenerationTest() { // Arrange var expectedPattern = @"\p{Lo}+"; var regexGenerator = new RegexGenerator(RegexLanguage.DotNet) .AddUnicodeCategory("Lo", min: 1); // Act var actualPattern = regexGenerator.ToString(); // Assert Assert.Equal(expectedPattern, actualPattern); }
public void SimpleNegativeLookbehindPatternGenerationTest() { // Arrange var expectedPattern = @"(?<!abc)"; var regexGenerator = new RegexGenerator(RegexLanguage.DotNet) .AddNegativeLookbehindAssertion("abc"); // Act var actualPattern = regexGenerator.ToString(); // Assert Assert.Equal(expectedPattern, actualPattern); }
public void SimpleConditionalPatternGenerationTest() { // Arrange var expectedPattern = @"(?(?=yes)yess|no)"; var regexGenerator = new RegexGenerator(RegexLanguage.DotNet) .AddConditional("yes", "yess", "no"); // Act var actualPattern = regexGenerator.ToString(); // Assert Assert.Equal(expectedPattern, actualPattern); }
public void SimpleNonCapturingGroupPatternGenerationTest() { // Arrange var pattern = @"(?:abcde)"; var expectedPattern = $"/{pattern}/"; var regexGenerator = new RegexGenerator(RegexLanguage.ECMAScript) .AddGroup("abcde", false); // Act var actualPattern = regexGenerator.ToString(); // Assert Assert.Equal(expectedPattern, actualPattern); }
public void SimpleCapturingGroupWithAngleBracketedNamePatternGenerationTest() { // Arrange var expectedPattern = @"(?<word>abcde)"; var regexGenerator = new RegexGenerator(RegexLanguage.DotNet) .AddGroup(@"abcde", name: "word"); // Important! //(regexGenerator.RegexLanguageStrategy.Stringifier as DotNetRegexStringifier).NamedCaptureGroupBracketOption = NamedCaptureGroupBracketOption.AngleBracket; // Act var actualPattern = regexGenerator.ToString(); // Assert Assert.Equal(expectedPattern, actualPattern); }
public void SimpleNegativeLookaheadPatternGenerationTest() { // Arrange var pattern = @"(?!abc)"; var expectedPattern = $"/{pattern}/"; var regexGenerator = new RegexGenerator(RegexLanguage.ECMAScript) .AddNegativeLookaheadAssertion("abc"); // Act var actualPattern = regexGenerator.ToString(); // Assert Assert.Equal(expectedPattern, actualPattern); }
public void SimpleAtomicGroupPatternGenerationTest() { // Arrange var expectedPattern = @"(?>(\w)\1+).\b"; var regexGenerator = new RegexGenerator(RegexLanguage.DotNet) .AddAtomicGroup(@"(\w)\1+") .Add(@".\b"); // Act var actualPattern = regexGenerator.ToString(); // Assert Assert.Equal(expectedPattern, actualPattern); }
public void CompositeAddNestedNodeTest() { // Arrange var regexGenerator = new RegexGenerator(); var node1 = new RegexNode(@"[abc]"); var nested1 = new RegexGroupNode(node1, capturing: false, min: 1, max: null, quantifierOption: RegexQuantifierOption.Lazy); var node2 = new RegexConditionalNode(@"a", "b", "c"); var nested2 = new RegexGroupNode(node2, capturing: true, name: "a"); // Act regexGenerator.AddNegativeLookbehindAssertion(nested1) .AddGroup(nested2); // Assert Assert.Equal(@"(?<!(?:[abc])+?)(?<a>(?(?=a)b|c))", regexGenerator.ToString()); }
public void UnicodeCategoryByFlagPatternGenerationsTest() { for (RegexUnicodeCategoryFlag flag = RegexUnicodeCategoryFlag.Lo; flag < RegexUnicodeCategoryFlag.Z; flag = (RegexUnicodeCategoryFlag)((int)flag << 1)) { // Arrange var expectedPattern = $@"\p{{{flag}}}+"; var regexGenerator = new RegexGenerator(RegexLanguage.DotNet) .AddUnicodeCategory(flag, min: 1); // Act var actualPattern = regexGenerator.ToString(); // Assert Assert.Equal(expectedPattern, actualPattern); } }
public void SimpleConditionalPatternGenerationTest() { // Arrange var expectedPattern = @"(?(?=yes)yess|no)"; Assert.Throws <ConditionalNotSupportedException>(() => { var regexGenerator = new RegexGenerator(RegexLanguage.ECMAScript) .AddConditional("yes", "yess", "no"); // Act var actualPattern = regexGenerator.ToString(); // Assert Assert.Equal(expectedPattern, actualPattern); }); }
public void CombinedGroupsPatternGenerationTest() { // Arrange var expectedPattern = @"(?:[a-z]+?)(?<odd>13579)(?i:THIS)(\d+)?"; var regexGenerator = new RegexGenerator(RegexLanguage.DotNet) .AddGroup("[a-z]+?", false) .AddGroup("13579", true, "odd") .AddGroup("THIS", false, options: "i") // capturing group option does not matter. .AddGroup(@"\d+", true, min: 0, max: 1); // Act var actualPattern = regexGenerator.ToString(); // Assert Assert.Equal(expectedPattern, actualPattern); }
public void SimpleUnicodeCategoryByStringPatternGenerationTest() { // Arrange var pattern = @"\p{Lo}+"; var expectedPattern = $"/{pattern}/"; Assert.Throws <UnicodeCategoryNotSupportedException>(() => { var regexGenerator = new RegexGenerator(RegexLanguage.ECMAScript) .AddUnicodeCategory("Lo", min: 1); // Act var actualPattern = regexGenerator.ToString(); // Assert Assert.Equal(expectedPattern, actualPattern); }); }
public void SimpleNegativeLookbehindPatternGenerationTest() { // Arrange var pattern = @"(?<!abc)"; var expectedPattern = $"/{pattern}/"; Assert.Throws <NegativeLookbehindAssertionNotSupportedException>(() => { var regexGenerator = new RegexGenerator(RegexLanguage.ECMAScript) .AddNegativeLookbehindAssertion("abc"); // Act var actualPattern = regexGenerator.ToString(); // Assert Assert.Equal(expectedPattern, actualPattern); }); }
public void SimpleAtomicGroupPatternGenerationTest() { // Arrange var pattern = @"(?>(\w)\1+).\b"; var expectedPattern = $"/{pattern}/"; Assert.Throws <AtomicGroupNotSupportedException>(() => { var regexGenerator = new RegexGenerator(RegexLanguage.ECMAScript) .AddAtomicGroup(@"(\w)\1+") .Add(@".\b"); // Act var actualPattern = regexGenerator.ToString(); // Assert Assert.Equal(expectedPattern, actualPattern); }); }
public void UnicodeCategoryByFlagPatternGenerationsTest() { for (RegexUnicodeCategoryFlag flag = RegexUnicodeCategoryFlag.Lo; flag < RegexUnicodeCategoryFlag.Z; flag = (RegexUnicodeCategoryFlag)((int)flag << 1)) { // Arrange var pattern = $@"\p{{{flag}}}+"; var expectedPattern = $"/{pattern}/"; Assert.Throws <UnicodeCategoryNotSupportedException>(() => { var regexGenerator = new RegexGenerator(RegexLanguage.ECMAScript) .AddUnicodeCategory(flag, min: 1); // Act var actualPattern = regexGenerator.ToString(); // Assert Assert.Equal(expectedPattern, actualPattern); }); } }
public void AddNodeQuantifierTest(RegexQuantifierOption quantifierOption) { // Arrange var regexGenerator = new RegexGenerator(); // Act regexGenerator.Add(@"a", min: 1, max: 10, quantifierOption: quantifierOption); // Assert Assert.Equal($@"a{{1,10}}{regexGenerator.RegexLanguageStrategy.Stringifier.ToQuantifierOptionString(quantifierOption)}", regexGenerator.ToString()); }