public void TestParentToDescendant() { var root = new TestNode("Root"); var child0 = new TestNode("0"); var child1 = new TestNode("1"); var child2 = new TestNode("2"); root.Children.Add(child0); child0.Children.Add(child1); child1.Children.Add(child2); Arrange.VerifyRelationship(root, child0); Arrange.VerifyRelationship(child0, child1); Arrange.VerifyRelationship(child1, child2); try { child1.Parent = child2; Assert.Fail("Cyclic dependency."); } catch (TreeZeroException ex) { Assert.AreEqual(ExceptionReason.ParentToDescendant, ex.Reason); } catch (Exception ex) { Assert.Fail($"Wrong exception:{ex}"); } }
public void TestBasicTreeByChildren() { var root = new TestNode("Root"); var manager = new TreeItemsSourceManager <TestNode>(true, root, (node) => true, (node) => (node).Children); var child0 = new TestNode("0"); var child1 = new TestNode("1"); var child2 = new TestNode("2"); root.Children.Add(child0); child0.Children.Add(child1); child1.Children.Add(child2); Arrange.VerifyRelationship(root, child0); Arrange.VerifyRelationship(child0, child1); Arrange.VerifyRelationship(child1, child2); Arrange.ExpandTreeGridNodes(manager); //child1.Parent = child0; try { root.Children.Add(child0); } catch (TreeZeroException tzex) { Assert.AreEqual(ExceptionReason.ChildAddedToSameParent, tzex.Reason); } catch { Assert.Fail("Expected ExceptionReason.ChildAddedToSameParent"); } }
public void TestChildrenAddSelf() { var root = new TestNode("Root"); var child0 = new TestNode("0"); var child1 = new TestNode("1"); var child2 = new TestNode("2"); root.Children.Add(child0); root.Children.Add(child1); root.Children.Add(child2); Arrange.VerifyRelationship(root, child0); Arrange.VerifyRelationship(root, child1); Arrange.VerifyRelationship(root, child2); try { child0.Children.Add(child0); Assert.Fail("Node cannot be its own parent."); } catch (TreeZeroException ex) { Assert.AreEqual(ExceptionReason.ParentToSelf, ex.Reason); } catch (Exception ex) { Assert.Fail($"Wrong exception:{ex}"); } }
public void TestNestChild() { var root = new TestNode("Root"); var child0 = new TestNode("0"); var child1 = new TestNode("1"); var child2 = new TestNode("2"); child0.Parent = root; child1.Parent = root; child2.Parent = child1; Arrange.VerifyRelationship(root, child0); Arrange.VerifyRelationship(root, child1); Arrange.VerifyRelationship(child1, child2); Assert.AreEqual(Arrange.GetNodeCount(root), 4); }
public void TestNewChildren() { ObservableCollection <TestNode> childNodes = new ObservableCollection <TestNode>(); childNodes.Add(new TestNode("0")); childNodes.Add(new TestNode("1")); childNodes.Add(new TestNode("2")); var root = new TestNode(childNodes, "Root"); Arrange.VerifyRelationship(root, childNodes[0]); Arrange.VerifyRelationship(root, childNodes[1]); Arrange.VerifyRelationship(root, childNodes[2]); var manager = new TreeItemsSourceManager <TestNode>(true, root, (node) => true, (node) => ((TestNode)node).Children); //manager.IsVisible = true; manager.IsExpanded = true; Debug.WriteLine(manager); }
public void TestBasicTreeByParent() { var root = new TestNode("Root"); var child0 = new TestNode("0"); var child1 = new TestNode("1"); var child2 = new TestNode("2"); child0.Parent = root; child1.Parent = root; child2.Parent = root; Arrange.VerifyRelationship(root, child0); Arrange.VerifyRelationship(root, child1); Arrange.VerifyRelationship(root, child2); Assert.AreEqual(Arrange.GetNodeCount(root), 4); TestNode s = root; Debug.WriteLine(s); }
public void TestParentToDescendant() { var root = new TestNode("Root"); var manager = new TreeItemsSourceManager <TestNode>(true, root, (node) => true, (node) => ((TestNode)node).Children); //manager.IsVisible = true; manager.IsExpanded = true; var child0 = new TestNode("0"); var child1 = new TestNode("1"); var child2 = new TestNode("2"); root.Children.Add(child0); child0.Children.Add(child1); child1.Children.Add(child2); Arrange.VerifyRelationship(root, child0); Arrange.VerifyRelationship(child0, child1); Arrange.VerifyRelationship(child1, child2); //manager.IsVisible = true; manager.IsExpanded = true; Debug.WriteLine(manager); try { child1.Parent = child2; Assert.Fail("Cyclic dependency."); } catch (TreeZeroException ex) { Assert.AreEqual(ExceptionReason.ParentToDescendant, ex.Reason); } catch (Exception ex) { Assert.Fail($"Wrong exception:{ex}"); } }
public void TestRemoveChild() { var root = new TestNode("Root"); var child0 = new TestNode("0"); var child1 = new TestNode("1"); var child2 = new TestNode("2"); child0.Parent = root; child1.Parent = root; child2.Parent = root; Arrange.VerifyRelationship(root, child0); Arrange.VerifyRelationship(root, child1); root.Children.Remove(child1); Assert.AreEqual(0, Arrange.CountChildReferences(root, child1)); Assert.AreEqual(null, child1.Parent); Arrange.VerifyRelationship(root, child2); Assert.AreEqual(Arrange.GetNodeCount(root), 3); }