コード例 #1
0
        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.");
        }
コード例 #2
0
        public void ToStringShouldReturnBackslashShorthand()
        {
            // Arrange
            var target = new CharacterClassShorthandNode('d');

            // Act
            var result = target.ToString();

            // Assert
            result.ShouldBe(@"\d");
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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");
        }