public void HasParentDecorator_root_has_no_parent() { // ACT var rootTraverser = new HasParentDecorator <MockableNode>(Mock.Of <MockableNode>()); // ASSERT Assert.False(rootTraverser.HasParentNode); }
public void HasParentDecorator_root_returns_childnodes() { // ARRANGE // root has a child node var node = Mock.Of <MockableNode>(); var child = Mock.Of <MockableNode>(); Mock.Get(node).Setup(n => n.HasChildNodes).Returns(true); Mock.Get(node).Setup(n => n.ChildNodes).Returns(new[] { child }); var traverser = new HasParentDecorator <MockableNode>(node); // ACT var result = traverser.Children().Single().Node; // ASSERT Assert.True(traverser.HasChildNodes); Assert.Same(child, result); }
public void HasParentDecorator_has_parent_for_childnode() { // ARRANGE // root has a child node var node = Mock.Of <MockableNode>(); var child = Mock.Of <MockableNode>(); Mock.Get(node).Setup(n => n.HasChildNodes).Returns(true); Mock.Get(node).Setup(n => n.ChildNodes).Returns(new[] { child }); var traverser = new HasParentDecorator <MockableNode>(node); // ACT // fetch parent fro single child var result = traverser.Children().Single().Parent().Node; // ASSERT // parent is accessible from the decorated child Assert.True(traverser.Children().Single().HasParentNode); Assert.Same(node, result); }