diff options
Diffstat (limited to 'mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/TreeNodeTest.cs')
-rw-r--r-- | mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/TreeNodeTest.cs | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/TreeNodeTest.cs b/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/TreeNodeTest.cs new file mode 100644 index 00000000000..d269db9c720 --- /dev/null +++ b/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/TreeNodeTest.cs @@ -0,0 +1,162 @@ +using System; +using NUnit.Framework; +using System.Windows.Forms; +using SystemDrawingNamespace = System.Drawing; + +namespace MonoTests.System.Windows.Forms { + + + [TestFixture] + public class TreeNodeTest { + + [Test] + public void EmptyCtorTest () + { + TreeNode tn = new TreeNode (); + Assert.AreEqual ("", tn.Text, "#1"); + Assert.AreEqual (0, tn.Nodes.Count, "#2"); + Assert.AreEqual (-1, tn.ImageIndex, "#3"); + Assert.AreEqual (-1, tn.SelectedImageIndex, "#4"); + + // Set simple properties + tn.Text = null; + Assert.AreEqual ("", tn.Text, "#5"); + tn.ImageIndex = 67; + Assert.AreEqual (67, tn.ImageIndex, "#6"); + tn.SelectedImageIndex = 99; + Assert.AreEqual (99, tn.SelectedImageIndex, "#7"); + } + + [Test] + public void CtorTest () { + TreeNode tn = new TreeNode ("label1"); + + Assert.AreEqual ("label1", tn.Text); + Assert.AreEqual (0, tn.Nodes.Count); + Assert.AreEqual (-1, tn.ImageIndex, "II"); + Assert.AreEqual (-1, tn.SelectedImageIndex, "SI"); + + Assert.IsNull (tn.FirstNode); + Assert.IsNull (tn.LastNode); + Assert.AreEqual ("", new TreeNode (null).Text); + } + + [Test] + public void CtorTest2 () + { + TreeNode tn = new TreeNode ("a1", new TreeNode[] { new TreeNode ("aa1"), new TreeNode ("aa2") } ); + + Assert.AreEqual ("a1", tn.Text); + Assert.AreEqual (-1, tn.ImageIndex, "II"); + Assert.AreEqual (-1, tn.SelectedImageIndex, "SI"); + + Assert.AreEqual ("aa1", tn.Nodes [0].Text, "#1"); + Assert.AreEqual ("aa2", tn.Nodes [1].Text, "#2"); + Assert.AreSame (tn.FirstNode, tn.Nodes [0], "#3"); + Assert.AreSame (tn.LastNode, tn.Nodes [1], "#4"); + } + + [Test] + public void CtorTest3 () + { + TreeNode tn = new TreeNode ("a", 5, 9); + + Assert.AreEqual ("a", tn.Text); + Assert.IsNotNull (tn.Nodes); + Assert.AreEqual (5, tn.ImageIndex); + Assert.AreEqual (9, tn.SelectedImageIndex); + Assert.AreEqual ("", new TreeNode (null, 0, 0).Text); + } + + [Test, ExpectedException (typeof (ArgumentNullException))] + public void CtorException1 () + { + new TreeNode ("", 1, 1, null); + } + + [Test, ExpectedException (typeof (ArgumentNullException))] + public void CtorException2 () { + new TreeNode ("tt", null); + } + + [Test] + public void Traverse () + { + TreeNode tn_1 = new TreeNode ("1"); + TreeNode tn_2 = new TreeNode ("2"); + TreeNode tn_3 = new TreeNode ("3"); + TreeNode tn = new TreeNode ("lev1"); + tn.Nodes.Add (tn_1); + Assert.AreSame (tn, tn_1.Parent, "#1"); + Assert.IsNull (tn_1.NextNode, "#2"); + Assert.AreEqual (0, tn_1.Parent.Index, "#3"); + tn.Nodes.Add (tn_2); + Assert.IsNull (tn_1.NextNode.NextNode, "#33"); + tn.Nodes.Add (tn_3); + Assert.AreEqual (2, tn_3.Index, "#4"); + + Assert.AreEqual (3, tn.Nodes.Count, "#5"); + Assert.AreSame (tn_2, tn_2.NextNode.PrevNode, "#6"); + Assert.IsNull (tn_1.PrevNode, "#7"); + } + + [Test, ExpectedException (typeof (Exception))] + public void FullPathException () + { + string s = new TreeNode ("").FullPath; + // Prevent CS0219, will never write anything + // due to previous statement throwing Exception + Console.WriteLine(s); + } + + [Test] + public void FullPathTest () + { + TreeNode tn_1 = new TreeNode ("A"); + TreeNode tn_2 = new TreeNode ("B"); + tn_2.Nodes.Add (tn_1); + + TreeView tv = new TreeView (); + tv.Nodes.Add (tn_1); + tv.Nodes [0].Nodes.Add (tn_2); + + Assert.AreEqual ("A", tn_1.FullPath, "#1"); + Assert.AreEqual ("A", tv.Nodes[0].FullPath, "#2"); + Assert.AreEqual (@"A\B", tn_2.FullPath, "#3"); + tv.PathSeparator = "_separator_"; + Assert.AreEqual ("A_separator_B", tn_2.FullPath, "#4"); + } + + [Test] + public void CloneTest () + { + TreeNode orig = new TreeNode ("text", 2, 3, new TreeNode [] { new TreeNode ("child", 22, 33) }); + orig.Tag = FlatStyle.Flat; + orig.Checked = true; + orig.BackColor = SystemDrawingNamespace.Color.AliceBlue; + orig.ForeColor = SystemDrawingNamespace.Color.Beige; + + TreeNode clone = (TreeNode)orig.Clone (); + Assert.AreEqual ("text", clone.Text, "#1"); + Assert.AreEqual (2, clone.ImageIndex, "#2"); + Assert.AreEqual (3, clone.SelectedImageIndex, "#3"); + Assert.AreEqual (1, clone.Nodes.Count, "#4"); + Assert.AreEqual (FlatStyle.Flat, clone.Tag, "#5"); + Assert.IsTrue (clone.Checked, "#6"); + Assert.AreEqual ("child", clone.Nodes [0].Text, "#10"); + Assert.AreEqual (22, clone.Nodes [0].ImageIndex, "#11"); + Assert.AreEqual (SystemDrawingNamespace.Color.AliceBlue, clone.BackColor, "#12"); + Assert.AreEqual (SystemDrawingNamespace.Color.Beige, clone.ForeColor, "#13"); + } + + [Test] + public void SingleNodeIndexTest () + { + TreeNode tn_1 = new TreeNode ("A"); + Assert.AreEqual (0, tn_1.Index, "#1"); + TreeView tv = new TreeView (); + tv.Nodes.Add (tn_1); + Assert.AreEqual (0, tn_1.Index, "#2"); + } + } +} |