Example #1
0
        public void ToStringOnBalancingGroupWithUseQuotesIsTrueShouldReturnBalancingGroupWithNameBetweenBrackets()
        {
            // Arrange
            var target = new BalancingGroupNode("balancedGroup", "currentGroup", true);

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

            // Assert
            result.ShouldBe("(?'currentGroup-balancedGroup')");
        }
Example #2
0
        public void ToStringOnBalancingGroupWithChildNodeShouldReturnBalencingGroupWithChildNode()
        {
            // Arrange
            var childNode = new CharacterNode('a');
            var target    = new BalancingGroupNode("balancedGroup", "currentGroup", false, childNode);

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

            // Assert
            result.ShouldBe("(?<currentGroup-balancedGroup>a)");
        }
Example #3
0
        public void ToStringOnBalancingGroupWithMultipleChildNodesShouldReturnBalencingGroupWithChildNodes()
        {
            // Arrange
            var childNodes = new List <RegexNode> {
                new CharacterNode('a'), new CharacterNode('b'), new CharacterNode('c')
            };
            var target = new BalancingGroupNode("balancedGroup", "currentGroup", false, childNodes);

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

            // Assert
            result.ShouldBe("(?<currentGroup-balancedGroup>abc)");
        }
Example #4
0
        public void ToStringOnBalancingGroupWithPrefixShouldReturnPrefixBeforeBalancingGroup()
        {
            // Arrange
            var comment = new CommentGroupNode("This is a comment.");
            var target  = new BalancingGroupNode("balancedGroup", "currentGroup", false)
            {
                Prefix = comment
            };

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

            // Assert
            result.ShouldBe("(?#This is a comment.)(?<currentGroup-balancedGroup>)");
        }
Example #5
0
        public void CopyingBalancingGroupNodeShouldCopyBalancedGroupNameAndUseQuotes()
        {
            // Arrange
            var target = new BalancingGroupNode("balancedGroup", "currentGroup", true);

            // Act
            // AddNode returns a copy of the current node.
            var result = target.AddNode(new CharacterNode('a'));

            // Assert
            BalancingGroupNode balancingGroupNode = result.ShouldBeOfType <BalancingGroupNode>();

            balancingGroupNode.BalancedGroupName.ShouldBe(target.BalancedGroupName);
            balancingGroupNode.Name.ShouldBe(target.Name);
            balancingGroupNode.UseQuotes.ShouldBe(target.UseQuotes);
        }
Example #6
0
        public void ChildNodesGetSpanShouldReturnTupleWithStartEqualToPreviousChildsStartPlusLengthStartingAtFullNameLengthPlus5()
        {
            // Arrange
            var balancedName = "balancedName";
            var name         = "name";
            var childNodes   = new List <RegexNode> {
                new CharacterNode('a'), new CharacterNode('b'), new CharacterNode('c')
            };
            var target = new BalancingGroupNode(balancedName, name, false, childNodes);
            var start  = balancedName.Length + name.Length + 5;

            // 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(start);
            Start2.ShouldBe(Start + Length);
            Start3.ShouldBe(Start2 + Length2);
        }