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

            // Act
            RegexNode result = target.RemoveNode(oldNode);

            // Assert
            result.Prefix.ShouldNotBe(target.Prefix);
        }
Exemplo n.º 2
0
        public void RemoveNodeShouldHaveNoReferencesToTheOriginalTreeNodes()
        {
            // Arrange
            var charNodeA  = new CharacterNode('a');
            var charNodeB  = new CharacterNode('b');
            var childNodes = new List <RegexNode> {
                charNodeA, charNodeB
            };
            var target = new TestRegexNode(childNodes);

            // Act
            RegexNode result = target.RemoveNode(charNodeA);

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

            // Act
            RegexNode result = target.RemoveNode(charNodeA);

            // Assert
            var childNode = result.ChildNodes.ShouldHaveSingleItem();

            childNode.ToString().ShouldBe("b");
        }
Exemplo n.º 4
0
        public void RemoveNodeShouldCopyRootsPrefix()
        {
            // Arrange
            var prefix2 = new CommentGroupNode("This is the prefix's prefix.");
            var prefix  = new CommentGroupNode("This is a prefix.")
            {
                Prefix = prefix2
            };
            var oldNode = new TestRegexNode();
            var target  = new TestRegexNode(oldNode)
            {
                Prefix = prefix
            };

            // Act
            RegexNode result = target.RemoveNode(oldNode);

            // Assert
            result.Prefix.ToString().ShouldBe(target.Prefix.ToString());
        }
Exemplo n.º 5
0
        public void RemoveNodeShouldNotReturnRootNodeIfReturnRootIsFalse()
        {
            // 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);

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

            // Assert
            var childNode = result.ChildNodes.ShouldHaveSingleItem();

            childNode.ToString().ShouldBe("b");
        }
Exemplo n.º 6
0
        public void RemoveNodeShouldReturnRootNode()
        {
            // 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);

            // Act
            RegexNode result = target.RemoveNode(charNodeA);

            // Assert
            var copiedTargetParentNode = result.ChildNodes.ShouldHaveSingleItem();
            var modifiedNode           = copiedTargetParentNode.ChildNodes.ShouldHaveSingleItem();

            modifiedNode.ChildNodes.ShouldHaveSingleItem();
            modifiedNode.ChildNodes.First().ToString().ShouldBe("b");
        }