public void CheckAddChild(int id, int?position) { var nodeAdded = new NestedTree(id); var positionExpected = position.HasValue ? position.Value : -1; int maxValue = _root.Children.Count(); if (positionExpected < 0) { positionExpected = maxValue; } positionExpected = positionExpected.Clamp(0, maxValue); if (position.HasValue) { _root.AddChild(nodeAdded, position.Value); } else { _root.AddChild(nodeAdded); } Assert.Contains(_root.Children, n => n.Id == id); Assert.Equal(_root, nodeAdded.Parent); Assert.Equal(_root.Children.ElementAt(positionExpected), nodeAdded); }
public TreeNodeTest() { var leaves = new List <NestedTree>(); int i = 0; var n0 = new NestedTree(i++); //0 var n0_1 = new NestedTree(i++, n0); //1 var n0_2 = new NestedTree(i++, n0); //2- leaves.Add(new NestedTree(i++, n0_1)); //3 leaves.Add(new NestedTree(i++, n0_1)); //4 var n0_2_5 = new NestedTree(i++, n0_2); //5- leaves.Add(new NestedTree(i++, n0_2)); //6- leaves.Add(new NestedTree(i++, n0_2_5)); //7- _root = n0; _leaves = leaves; _node0_2_5 = n0_2_5; _size = i; }