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); }
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()); }
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); }
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); }
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); }
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); }