Exemplo n.º 1
0
        public void ReplaceNodeResultShouldNotHaveReferenceToOriginalPrefix()
        {
            // Arrange
            var prefix  = new CommentGroupNode("This is a prefix.");
            var oldNode = new TestRegexNode();
            var newNode = new TestRegexNode();
            var target  = new TestRegexNode(oldNode)
            {
                Prefix = prefix
            };

            // Act
            RegexNode result = target.ReplaceNode(oldNode, newNode);

            // Assert
            result.Prefix.ShouldNotBe(target.Prefix);
        }
Exemplo n.º 2
0
        public void ReplaceNodeShouldCopyPrefix()
        {
            // Arrange
            var prefix  = new CommentGroupNode("This is a prefix.");
            var oldNode = new TestRegexNode();
            var newNode = new TestRegexNode();
            var target  = new TestRegexNode(oldNode)
            {
                Prefix = prefix
            };

            // Act
            RegexNode result = target.ReplaceNode(oldNode, newNode);

            // Assert
            result.Prefix.ToString().ShouldBe(target.Prefix.ToString());
        }
Exemplo n.º 3
0
        public void ReplaceNodeShouldCopyNodeAndReplaceOldNodeWithNewNode()
        {
            // Arrange
            var charNodeA  = new CharacterNode('a');
            var charNodeB  = new CharacterNode('b');
            var childNodes = new List <RegexNode> {
                charNodeA, charNodeB
            };
            var target  = new TestRegexNode(childNodes);
            var newNode = new CharacterNode('c');

            // Act
            RegexNode result = target.ReplaceNode(charNodeA, newNode);

            // Assert
            result.ChildNodes.Count().ShouldBe(2);
            result.ChildNodes.First().ShouldBe(newNode);
        }
Exemplo n.º 4
0
        public void ReplaceNodeShouldHaveNoReferencesToTheOriginalTreeNodes()
        {
            // Arrange
            var charNodeA  = new CharacterNode('a');
            var charNodeB  = new CharacterNode('b');
            var childNodes = new List <RegexNode> {
                charNodeA, charNodeB
            };
            var target  = new TestRegexNode(childNodes);
            var newNode = new CharacterNode('c');

            // Act
            RegexNode result = target.ReplaceNode(charNodeA, newNode);

            // Assert
            result.ShouldNotBe(target);
            result.ChildNodes.ShouldNotContain(charNodeA);
            result.ChildNodes.ShouldNotContain(charNodeB);
        }
Exemplo n.º 5
0
        public void ReplaceNodeShouldNotReturnRootNodeIfReturnRootIsFalse()
        {
            // Arrange
            var charNodeA        = new CharacterNode('a');
            var charNodeB        = new CharacterNode('b');
            var targetChildNodes = new List <RegexNode> {
                charNodeA, charNodeB
            };
            var target       = new TestRegexNode(targetChildNodes);
            var targetParent = new TestRegexNode(target);

            _ = new TestRegexNode(targetParent);
            var newNode = new CharacterNode('c');

            // Act
            RegexNode result = target.ReplaceNode(charNodeA, newNode, false);

            // Assert
            result.ChildNodes.Count().ShouldBe(2);
            result.ChildNodes.First().ShouldBe(newNode);
        }
Exemplo n.º 6
0
        public void ReplaceNodeShouldReturnRootNode()
        {
            // Arrange
            var charNodeA        = new CharacterNode('a');
            var charNodeB        = new CharacterNode('b');
            var targetChildNodes = new List <RegexNode> {
                charNodeA, charNodeB
            };
            var target       = new TestRegexNode(targetChildNodes);
            var targetParent = new TestRegexNode(target);

            _ = new TestRegexNode(targetParent);
            var newNode = new CharacterNode('c');

            // Act
            RegexNode result = target.ReplaceNode(charNodeA, newNode);

            // Assert
            var copiedTargetParent = result.ChildNodes.ShouldHaveSingleItem();
            var modifierTarget     = copiedTargetParent.ChildNodes.ShouldHaveSingleItem();

            modifierTarget.ChildNodes.Count().ShouldBe(2);
            modifierTarget.ChildNodes.First().ShouldBe(newNode);
        }