// The following code was generated by Microsoft Visual Studio 2005. // The test owner should check each test for validity. using Microsoft.VisualStudio.TestTools.UnitTesting; using System; using System.Text; using System.Collections.Generic; using Aga.Controls.Tree; namespace Aga.Controls.UnitTests { [TestClass] public class NodeTest { [TestMethod] public void ParentTest() { Node r1 = new Node(""); Node node = new Node(""); Assert.AreEqual(-1, node.Index); r1.Nodes.Add(node); Assert.AreEqual(1, r1.Nodes.Count); Assert.AreEqual(r1, node.Parent); Assert.AreEqual(0, node.Index); r1.Nodes.Remove(node); Assert.AreEqual(0, r1.Nodes.Count); Assert.AreEqual(null, node.Parent); Assert.AreEqual(-1, node.Index); node.Parent = r1; Assert.AreEqual(1, r1.Nodes.Count); Assert.AreEqual(r1, node.Parent); Assert.AreEqual(0, node.Index); node.Parent = null; Assert.AreEqual(0, r1.Nodes.Count); Assert.AreEqual(null, node.Parent); Assert.AreEqual(-1, node.Index); Node r2 = new Node(""); node.Parent = r1; node.Parent = r2; Assert.AreEqual(1, r2.Nodes.Count); Assert.AreEqual(0, r1.Nodes.Count); Assert.AreEqual(r2, node.Parent); r1.Nodes.Add(node); Assert.AreEqual(1, r1.Nodes.Count); Assert.AreEqual(0, r2.Nodes.Count); Assert.AreEqual(r1, node.Parent); Node node2 = new Node(""); r1.Nodes[0] = node2; Assert.AreEqual(null, node.Parent); Assert.AreEqual(r1, node2.Parent); } [TestMethod] public void IndexTest() { Node r1 = new Node(""); Node node0 = new Node(""); Node node1 = new Node(""); Node node2 = new Node(""); Assert.AreEqual(-1, node0.Index); r1.Nodes.Add(node0); r1.Nodes.Add(node1); r1.Nodes.Add(node2); CheckNodes(r1); r1.Nodes.Insert(1, new Node()); CheckNodes(r1); r1.Nodes.RemoveAt(2); CheckNodes(r1); } private void CheckNodes(Node root) { for (int i = 0; i < root.Nodes.Count; i++ ) Assert.AreEqual(i, root.Nodes[i].Index); } [TestMethod] public void ClearTest() { Node node = new Node(""); int num = 125000; for (int i = 0; i < num; i++) node.Nodes.Add(new Node()); Assert.AreEqual(num, node.Nodes.Count); TimeCounter.Start(); node.Nodes.Clear(); Console.WriteLine("Clear: {0}", TimeCounter.Finish()); Assert.AreEqual(0, node.Nodes.Count); } private int remove, insert; [TestMethod] public void ModelTest() { TreeModel model = new TreeModel(); model.NodesInserted += new EventHandler(model_NodesInserted); model.NodesRemoved += new EventHandler(model_NodesRemoved); remove = 0; insert = 0; Node node = new Node(""); model.Root.Nodes.Add(node); model.Root.Nodes.Remove(node); Assert.AreEqual(1, remove); Assert.AreEqual(1, insert); } void model_NodesRemoved(object sender, TreeModelEventArgs e) { remove++; } void model_NodesInserted(object sender, TreeModelEventArgs e) { insert++; } } }