public void ShouldUnnegateNegatedShorthand() { // Arrange var shorthandNode = new CharacterClassShorthandNode('D'); var childNodes = new List <RegexNode> { shorthandNode, new CharacterNode('a'), new CharacterNode('b'), new CharacterNode('c') }; var rootNode = new ConcatenationNode(childNodes); var target = new CharacterClassShorthandNegationMutator(); // Act var result = target.ApplyMutations(shorthandNode, rootNode); // Assert var mutation = result.ShouldHaveSingleItem(); mutation.OriginalNode.ShouldBe(shorthandNode); mutation.ReplacementNode.ToString().ShouldBe("\\d"); mutation.ReplacementPattern.ShouldBe("\\dabc"); mutation.DisplayName.ShouldBe("Regex character class shorthand negation mutation"); mutation.Description.ShouldBe("Character class shorthand \"\\D\" was replaced with \"\\d\" at offset 0."); }
public void ToStringShouldReturnBackslashShorthand() { // Arrange var target = new CharacterClassShorthandNode('d'); // Act var result = target.ToString(); // Assert result.ShouldBe(@"\d"); }
public void CopyingCharacterClassShorthandNodeShouldCopyShorthand() { // Arrange var target = new CharacterClassShorthandNode('d'); // Act // RemoveNode returns a copy of the current node. var result = target.RemoveNode(new CharacterNode('a')); // Assert CharacterClassShorthandNode characterClassShorthandNode = result.ShouldBeOfType <CharacterClassShorthandNode>(); characterClassShorthandNode.Shorthand.ShouldBe(target.Shorthand); }
public void ToStringOnCharacterClassShorthandNodeWithPrefixShouldReturnPrefixBeforeCharacterClassShorthand() { // Arrange var comment = new CommentGroupNode("This is a comment."); var target = new CharacterClassShorthandNode('d') { Prefix = comment }; // Act var result = target.ToString(); // Assert result.ShouldBe(@"(?#This is a comment.)\d"); }