public void RemoveNodeHierachyWriter_removes_childNodes_of_given_node() { // ARRANGE var childNodeMock = new Mock <NodeType>(); var childNode = childNodeMock.Object; var startNodeMock = new Mock <NodeType>(); startNodeMock .Setup(n => n.RemoveChild(childNode)) .Returns(startNodeMock.Object); startNodeMock .Setup(n => n.HasChildNodes) .Returns(true); startNodeMock .Setup(n => n.ChildNodes) .Returns(new[] { childNodeMock.Object }); var writer = new RemoveNodeHierarchyWriter <string, NodeType>(); // ACT var result = writer.RemoveChildNodes(startNodeMock.Object, out var childNodesWereRemoved); // ASSERT Assert.Same(result, startNodeMock.Object); Assert.True(childNodesWereRemoved); startNodeMock.Verify(n => n.RemoveChild(childNodeMock.Object), Times.Once()); startNodeMock.VerifyAll(); }
public void RemoveNodeHierachyWriter_ignores_if_node_childNodes_exist() { // ARRANGE var startNodeMock = new Mock <NodeType>(); startNodeMock .Setup(n => n.HasChildNodes) .Returns(false); var writer = new RemoveNodeHierarchyWriter <string, NodeType>(); // ACT var result = writer.RemoveChildNodes(startNodeMock.Object, out var childNodesWereRemoved); // ASSERT Assert.Same(result, startNodeMock.Object); Assert.False(childNodesWereRemoved); startNodeMock.Verify(n => n.RemoveChild(It.IsAny <NodeType>()), Times.Never()); startNodeMock.VerifyAll(); }