TreeNodeTest.cs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. using System;
  2. using NUnit.Framework;
  3. using System.Windows.Forms;
  4. using SystemDrawingNamespace = System.Drawing;
  5. namespace MonoTests.System.Windows.Forms {
  6. [TestFixture]
  7. public class TreeNodeTest {
  8. [Test]
  9. public void EmptyCtorTest ()
  10. {
  11. TreeNode tn = new TreeNode ();
  12. Assert.AreEqual ("", tn.Text, "#1");
  13. Assert.AreEqual (0, tn.Nodes.Count, "#2");
  14. Assert.AreEqual (-1, tn.ImageIndex, "#3");
  15. Assert.AreEqual (-1, tn.SelectedImageIndex, "#4");
  16. // Set simple properties
  17. tn.Text = null;
  18. Assert.AreEqual ("", tn.Text, "#5");
  19. tn.ImageIndex = 67;
  20. Assert.AreEqual (67, tn.ImageIndex, "#6");
  21. tn.SelectedImageIndex = 99;
  22. Assert.AreEqual (99, tn.SelectedImageIndex, "#7");
  23. }
  24. [Test]
  25. public void CtorTest () {
  26. TreeNode tn = new TreeNode ("label1");
  27. Assert.AreEqual ("label1", tn.Text);
  28. Assert.AreEqual (0, tn.Nodes.Count);
  29. Assert.AreEqual (-1, tn.ImageIndex, "II");
  30. Assert.AreEqual (-1, tn.SelectedImageIndex, "SI");
  31. Assert.IsNull (tn.FirstNode);
  32. Assert.IsNull (tn.LastNode);
  33. Assert.AreEqual ("", new TreeNode (null).Text);
  34. }
  35. [Test]
  36. public void CtorTest2 ()
  37. {
  38. TreeNode tn = new TreeNode ("a1", new TreeNode[] { new TreeNode ("aa1"), new TreeNode ("aa2") } );
  39. Assert.AreEqual ("a1", tn.Text);
  40. Assert.AreEqual (-1, tn.ImageIndex, "II");
  41. Assert.AreEqual (-1, tn.SelectedImageIndex, "SI");
  42. Assert.AreEqual ("aa1", tn.Nodes [0].Text, "#1");
  43. Assert.AreEqual ("aa2", tn.Nodes [1].Text, "#2");
  44. Assert.AreSame (tn.FirstNode, tn.Nodes [0], "#3");
  45. Assert.AreSame (tn.LastNode, tn.Nodes [1], "#4");
  46. }
  47. [Test]
  48. public void CtorTest3 ()
  49. {
  50. TreeNode tn = new TreeNode ("a", 5, 9);
  51. Assert.AreEqual ("a", tn.Text);
  52. Assert.IsNotNull (tn.Nodes);
  53. Assert.AreEqual (5, tn.ImageIndex);
  54. Assert.AreEqual (9, tn.SelectedImageIndex);
  55. Assert.AreEqual ("", new TreeNode (null, 0, 0).Text);
  56. }
  57. [Test, ExpectedException (typeof (ArgumentNullException))]
  58. public void CtorException1 ()
  59. {
  60. new TreeNode ("", 1, 1, null);
  61. }
  62. [Test, ExpectedException (typeof (ArgumentNullException))]
  63. public void CtorException2 () {
  64. new TreeNode ("tt", null);
  65. }
  66. [Test]
  67. public void Traverse ()
  68. {
  69. TreeNode tn_1 = new TreeNode ("1");
  70. TreeNode tn_2 = new TreeNode ("2");
  71. TreeNode tn_3 = new TreeNode ("3");
  72. TreeNode tn = new TreeNode ("lev1");
  73. tn.Nodes.Add (tn_1);
  74. Assert.AreSame (tn, tn_1.Parent, "#1");
  75. Assert.IsNull (tn_1.NextNode, "#2");
  76. Assert.AreEqual (0, tn_1.Parent.Index, "#3");
  77. tn.Nodes.Add (tn_2);
  78. Assert.IsNull (tn_1.NextNode.NextNode, "#33");
  79. tn.Nodes.Add (tn_3);
  80. Assert.AreEqual (2, tn_3.Index, "#4");
  81. Assert.AreEqual (3, tn.Nodes.Count, "#5");
  82. Assert.AreSame (tn_2, tn_2.NextNode.PrevNode, "#6");
  83. Assert.IsNull (tn_1.PrevNode, "#7");
  84. }
  85. [Test]
  86. public void FullPathException ()
  87. {
  88. try {
  89. string s = new TreeNode ("").FullPath;
  90. Assert.Fail ("#1");
  91. // Prevent CS0219, will never write anything
  92. // due to previous statement throwing an
  93. // exception
  94. Console.WriteLine (s);
  95. #if NET_2_0
  96. } catch (InvalidOperationException ex) {
  97. Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
  98. Assert.IsNotNull (ex.Message, "#3");
  99. Assert.IsNull (ex.InnerException, "#4");
  100. }
  101. #else
  102. } catch (Exception ex) {
  103. Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
  104. Assert.IsNotNull (ex.Message, "#3");
  105. Assert.IsNull (ex.InnerException, "#4");
  106. }
  107. #endif
  108. }
  109. [Test]
  110. public void FullPathTest ()
  111. {
  112. TreeNode tn_1 = new TreeNode ("A");
  113. TreeNode tn_2 = new TreeNode ("B");
  114. tn_2.Nodes.Add (tn_1);
  115. TreeView tv = new TreeView ();
  116. tv.Nodes.Add (tn_1);
  117. tv.Nodes [0].Nodes.Add (tn_2);
  118. Assert.AreEqual ("A", tn_1.FullPath, "#1");
  119. Assert.AreEqual ("A", tv.Nodes[0].FullPath, "#2");
  120. Assert.AreEqual (@"A\B", tn_2.FullPath, "#3");
  121. tv.PathSeparator = "_separator_";
  122. Assert.AreEqual ("A_separator_B", tn_2.FullPath, "#4");
  123. }
  124. [Test]
  125. public void CloneTest ()
  126. {
  127. TreeNode orig = new TreeNode ("text", 2, 3, new TreeNode [] { new TreeNode ("child", 22, 33) });
  128. orig.Tag = FlatStyle.Flat;
  129. orig.Checked = true;
  130. orig.BackColor = SystemDrawingNamespace.Color.AliceBlue;
  131. orig.ForeColor = SystemDrawingNamespace.Color.Beige;
  132. TreeNode clone = (TreeNode)orig.Clone ();
  133. Assert.AreEqual ("text", clone.Text, "#1");
  134. Assert.AreEqual (2, clone.ImageIndex, "#2");
  135. Assert.AreEqual (3, clone.SelectedImageIndex, "#3");
  136. Assert.AreEqual (1, clone.Nodes.Count, "#4");
  137. Assert.AreEqual (FlatStyle.Flat, clone.Tag, "#5");
  138. Assert.IsTrue (clone.Checked, "#6");
  139. Assert.AreEqual ("child", clone.Nodes [0].Text, "#10");
  140. Assert.AreEqual (22, clone.Nodes [0].ImageIndex, "#11");
  141. Assert.AreEqual (SystemDrawingNamespace.Color.AliceBlue, clone.BackColor, "#12");
  142. Assert.AreEqual (SystemDrawingNamespace.Color.Beige, clone.ForeColor, "#13");
  143. }
  144. [Test]
  145. public void SingleNodeIndexTest ()
  146. {
  147. TreeNode tn_1 = new TreeNode ("A");
  148. Assert.AreEqual (0, tn_1.Index, "#1");
  149. TreeView tv = new TreeView ();
  150. tv.Nodes.Add (tn_1);
  151. Assert.AreEqual (0, tn_1.Index, "#2");
  152. }
  153. #if NET_2_0
  154. [Test]
  155. public void PropertyName ()
  156. {
  157. TreeNode tn = new TreeNode ();
  158. Assert.AreEqual (string.Empty, tn.Name, "A1");
  159. tn.Name = "Monkey";
  160. Assert.AreEqual ("Monkey", tn.Name, "A2");
  161. tn.Name = null;
  162. Assert.AreEqual (string.Empty, tn.Name, "A3");
  163. }
  164. #endif
  165. }
  166. }