Exemple #1
0
        public void ToStringOnEmptyAtomicGroupNodeShouldReturnEmptyAtomicGroup()
        {
            // Arrange
            var target = new AtomicGroupNode();

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

            // Assert
            result.ShouldBe("(?>)");
        }
Exemple #2
0
        public void ToStringOnAtomicGroupWithChildNodeShouldReturnAtomicGroupWithChildNode()
        {
            // Arrange
            var childNode = new CharacterNode('a');
            var target    = new AtomicGroupNode(childNode);

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

            // Assert
            result.ShouldBe("(?>a)");
        }
Exemple #3
0
        public void ToStringOnAtomicGroupWithMultipleChildNodesShouldReturnAtomicGroupWithChildNodes()
        {
            // Arrange
            var childNodes = new List <RegexNode> {
                new CharacterNode('a'), new CharacterNode('b'), new CharacterNode('c')
            };
            var target = new AtomicGroupNode(childNodes);

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

            // Assert
            result.ShouldBe("(?>abc)");
        }
Exemple #4
0
        public void ToStringOnAtomicGroupWithprefixShouldReturnPrefixBeforeAtomicGroup()
        {
            // Arrange
            var comment   = new CommentGroupNode("This is a comment.");
            var childNode = new CharacterNode('a');
            var target    = new AtomicGroupNode(childNode)
            {
                Prefix = comment
            };

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

            // Assert
            result.ShouldBe("(?#This is a comment.)(?>a)");
        }
Exemple #5
0
        public void ChildNodesGetSpanShouldReturnTupleWithStartEqualToPreviousChildsStartPlusLengthStartingAt3()
        {
            // Arrange
            var childNodes = new List <RegexNode> {
                new CharacterNode('a'), new CharacterNode('b'), new CharacterNode('c')
            };
            var target = new AtomicGroupNode(childNodes);

            // Act
            var(Start, Length)   = target.ChildNodes.First().GetSpan();
            var(Start2, Length2) = target.ChildNodes.ElementAt(1).GetSpan();
            var(Start3, _)       = target.ChildNodes.ElementAt(2).GetSpan();

            // Assert
            Start.ShouldBe(3);
            Start2.ShouldBe(Start + Length);
            Start3.ShouldBe(Start2 + Length2);
        }