TreeNodeCollectionTest.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. using System;
  2. using System.Collections;
  3. using System.Drawing;
  4. using System.Windows.Forms;
  5. using NUnit.Framework;
  6. namespace MonoTests.System.Windows.Forms
  7. {
  8. [TestFixture]
  9. public class TreeNodeCollectionTest
  10. {
  11. [Test]
  12. public void Remove ()
  13. {
  14. TreeView tv = new TreeView ();
  15. TreeNode nodeA = tv.Nodes.Add ("A");
  16. TreeNode nodeB = tv.Nodes.Add ("B");
  17. TreeNode nodeC = tv.Nodes.Add ("C");
  18. Assert.AreEqual (3, tv.Nodes.Count, "#A1");
  19. Assert.AreSame (nodeA, tv.Nodes [0], "#A2");
  20. Assert.AreSame (nodeB, tv.Nodes [1], "#A3");
  21. Assert.AreSame (nodeC, tv.Nodes [2], "#A3");
  22. tv.Nodes.Remove (nodeB);
  23. Assert.AreEqual (2, tv.Nodes.Count, "#B1");
  24. Assert.AreSame (nodeA, tv.Nodes [0], "#B2");
  25. Assert.AreSame (nodeC, tv.Nodes [1], "#B3");
  26. tv.Nodes.Remove (nodeA);
  27. Assert.AreEqual (1, tv.Nodes.Count, "#C1");
  28. Assert.AreSame (nodeC, tv.Nodes [0], "#C2");
  29. tv.Nodes.Remove (nodeC);
  30. Assert.AreEqual (0, tv.Nodes.Count, "#D1");
  31. }
  32. [Test]
  33. #if ONLY_1_1
  34. [ExpectedException (typeof (NullReferenceException))]
  35. #endif
  36. public void Remove_NotInCollection ()
  37. {
  38. TreeView tv = new TreeView ();
  39. TreeNode nodeA = tv.Nodes.Add ("A");
  40. tv.Nodes.Remove (nodeA);
  41. tv.Nodes.Remove (nodeA);
  42. }
  43. [Test]
  44. [ExpectedException (typeof (NullReferenceException))]
  45. public void Remove_Null ()
  46. {
  47. TreeView tv = new TreeView ();
  48. tv.Nodes.Remove (null);
  49. }
  50. [Test]
  51. public void Enumerator_Reset ()
  52. {
  53. TreeView tv = new TreeView ();
  54. TreeNode nodeA = tv.Nodes.Add ("A");
  55. IEnumerator enumerator = tv.Nodes.GetEnumerator ();
  56. Assert.IsNull (enumerator.Current, "#A1");
  57. Assert.IsTrue (enumerator.MoveNext (), "#A2");
  58. Assert.IsNotNull (enumerator.Current, "#A3");
  59. Assert.AreSame (nodeA, enumerator.Current, "#A4");
  60. Assert.IsFalse (enumerator.MoveNext (), "#A5");
  61. enumerator.Reset ();
  62. Assert.IsNull (enumerator.Current, "#B1");
  63. Assert.IsTrue (enumerator.MoveNext (), "#B2");
  64. Assert.IsNotNull (enumerator.Current, "#B3");
  65. Assert.AreSame (nodeA, enumerator.Current, "#B4");
  66. Assert.IsFalse (enumerator.MoveNext (), "#B5");
  67. }
  68. [Test]
  69. public void Enumerator_MoveNext ()
  70. {
  71. TreeView tv = new TreeView ();
  72. TreeNode nodeA = tv.Nodes.Add ("A");
  73. IEnumerator enumerator = tv.Nodes.GetEnumerator ();
  74. Assert.IsTrue (enumerator.MoveNext (), "#A1");
  75. Assert.IsFalse (enumerator.MoveNext (), "#A2");
  76. Assert.IsFalse (enumerator.MoveNext (), "#A3");
  77. tv = new TreeView ();
  78. enumerator = tv.Nodes.GetEnumerator ();
  79. Assert.IsFalse (enumerator.MoveNext (), "#B1");
  80. Assert.IsFalse (enumerator.MoveNext (), "#B2");
  81. }
  82. [Test]
  83. public void Enumerator_Current ()
  84. {
  85. TreeView tv = new TreeView ();
  86. TreeNode nodeA = tv.Nodes.Add ("A");
  87. TreeNode nodeB = tv.Nodes.Add ("B");
  88. IEnumerator enumerator = tv.Nodes.GetEnumerator ();
  89. Assert.IsNull (enumerator.Current, "#A1");
  90. enumerator.MoveNext ();
  91. Assert.IsNotNull (enumerator.Current, "#A2");
  92. Assert.AreSame (nodeA, enumerator.Current, "#A3");
  93. enumerator.MoveNext ();
  94. Assert.IsNotNull (enumerator.Current, "#A4");
  95. Assert.AreSame (nodeB, enumerator.Current, "#A5");
  96. enumerator.MoveNext ();
  97. Assert.IsNotNull (enumerator.Current, "#A6");
  98. Assert.AreSame (nodeB, enumerator.Current, "#A7");
  99. tv = new TreeView ();
  100. enumerator = tv.Nodes.GetEnumerator ();
  101. Assert.IsNull (enumerator.Current, "#B1");
  102. enumerator.MoveNext ();
  103. Assert.IsNull (enumerator.Current, "#B2");
  104. }
  105. }
  106. }