2 using System
.Collections
;
4 using System
.Windows
.Forms
;
8 namespace MonoTests
.System
.Windows
.Forms
11 public class TreeNodeCollectionTest
16 TreeView tv
= new TreeView ();
17 TreeNode nodeA
= tv
.Nodes
.Add ("A");
18 TreeNode nodeB
= tv
.Nodes
.Add ("B");
19 TreeNode nodeC
= tv
.Nodes
.Add ("C");
20 Assert
.AreEqual (3, tv
.Nodes
.Count
, "#A1");
21 Assert
.AreSame (nodeA
, tv
.Nodes
[0], "#A2");
22 Assert
.AreSame (nodeB
, tv
.Nodes
[1], "#A3");
23 Assert
.AreSame (nodeC
, tv
.Nodes
[2], "#A3");
24 tv
.Nodes
.Remove (nodeB
);
25 Assert
.AreEqual (2, tv
.Nodes
.Count
, "#B1");
26 Assert
.AreSame (nodeA
, tv
.Nodes
[0], "#B2");
27 Assert
.AreSame (nodeC
, tv
.Nodes
[1], "#B3");
28 tv
.Nodes
.Remove (nodeA
);
29 Assert
.AreEqual (1, tv
.Nodes
.Count
, "#C1");
30 Assert
.AreSame (nodeC
, tv
.Nodes
[0], "#C2");
31 tv
.Nodes
.Remove (nodeC
);
32 Assert
.AreEqual (0, tv
.Nodes
.Count
, "#D1");
37 [ExpectedException (typeof (NullReferenceException
))]
39 public void Remove_NotInCollection ()
41 TreeView tv
= new TreeView ();
42 TreeNode nodeA
= tv
.Nodes
.Add ("A");
43 tv
.Nodes
.Remove (nodeA
);
44 tv
.Nodes
.Remove (nodeA
);
48 [ExpectedException (typeof (NullReferenceException
))]
49 public void Remove_Null ()
51 TreeView tv
= new TreeView ();
52 tv
.Nodes
.Remove (null);
56 public void Enumerator_Reset ()
58 TreeView tv
= new TreeView ();
59 TreeNode nodeA
= tv
.Nodes
.Add ("A");
60 IEnumerator enumerator
= tv
.Nodes
.GetEnumerator ();
61 Assert
.IsNull (enumerator
.Current
, "#A1");
62 Assert
.IsTrue (enumerator
.MoveNext (), "#A2");
63 Assert
.IsNotNull (enumerator
.Current
, "#A3");
64 Assert
.AreSame (nodeA
, enumerator
.Current
, "#A4");
65 Assert
.IsFalse (enumerator
.MoveNext (), "#A5");
67 Assert
.IsNull (enumerator
.Current
, "#B1");
68 Assert
.IsTrue (enumerator
.MoveNext (), "#B2");
69 Assert
.IsNotNull (enumerator
.Current
, "#B3");
70 Assert
.AreSame (nodeA
, enumerator
.Current
, "#B4");
71 Assert
.IsFalse (enumerator
.MoveNext (), "#B5");
75 public void Enumerator_MoveNext ()
77 TreeView tv
= new TreeView ();
78 TreeNode nodeA
= tv
.Nodes
.Add ("A");
79 IEnumerator enumerator
= tv
.Nodes
.GetEnumerator ();
80 Assert
.IsTrue (enumerator
.MoveNext (), "#A1");
81 Assert
.IsFalse (enumerator
.MoveNext (), "#A2");
82 Assert
.IsFalse (enumerator
.MoveNext (), "#A3");
85 enumerator
= tv
.Nodes
.GetEnumerator ();
86 Assert
.IsFalse (enumerator
.MoveNext (), "#B1");
87 Assert
.IsFalse (enumerator
.MoveNext (), "#B2");
91 public void Enumerator_Current ()
93 TreeView tv
= new TreeView ();
94 TreeNode nodeA
= tv
.Nodes
.Add ("A");
95 TreeNode nodeB
= tv
.Nodes
.Add ("B");
96 IEnumerator enumerator
= tv
.Nodes
.GetEnumerator ();
97 Assert
.IsNull (enumerator
.Current
, "#A1");
98 enumerator
.MoveNext ();
99 Assert
.IsNotNull (enumerator
.Current
, "#A2");
100 Assert
.AreSame (nodeA
, enumerator
.Current
, "#A3");
101 enumerator
.MoveNext ();
102 Assert
.IsNotNull (enumerator
.Current
, "#A4");
103 Assert
.AreSame (nodeB
, enumerator
.Current
, "#A5");
104 enumerator
.MoveNext ();
105 Assert
.IsNotNull (enumerator
.Current
, "#A6");
106 Assert
.AreSame (nodeB
, enumerator
.Current
, "#A7");
108 tv
= new TreeView ();
109 enumerator
= tv
.Nodes
.GetEnumerator ();
110 Assert
.IsNull (enumerator
.Current
, "#B1");
111 enumerator
.MoveNext ();
112 Assert
.IsNull (enumerator
.Current
, "#B2");
116 public void IList_Indexer_Get ()
118 TreeView tv
= new TreeView ();
119 TreeNode nodeA
= tv
.Nodes
.Add ("A");
120 TreeNode nodeB
= tv
.Nodes
.Add ("B");
121 TreeNode nodeC
= tv
.Nodes
.Add ("C");
123 IList list
= (IList
) tv
.Nodes
;
125 Assert
.AreSame (nodeA
, list
[0], "#A1");
126 Assert
.AreSame (nodeB
, list
[1], "#A2");
127 Assert
.AreSame (nodeC
, list
[2], "#A3");
130 object item
= list
[3];
131 Assert
.Fail ("#B1: " + item
);
132 } catch (ArgumentOutOfRangeException ex
) {
133 Assert
.AreEqual (typeof (ArgumentOutOfRangeException
), ex
.GetType (), "#B2");
134 Assert
.IsNull (ex
.ActualValue
, "#B3");
135 Assert
.IsNull (ex
.InnerException
, "#B4");
136 Assert
.AreEqual ("index", ex
.ParamName
, "#B5");
140 object item
= list
[-1];
141 Assert
.Fail ("#C1: " + item
);
142 } catch (ArgumentOutOfRangeException ex
) {
143 Assert
.AreEqual (typeof (ArgumentOutOfRangeException
), ex
.GetType (), "#C2");
144 Assert
.IsNull (ex
.ActualValue
, "#C3");
145 Assert
.IsNull (ex
.InnerException
, "#C4");
146 Assert
.AreEqual ("index", ex
.ParamName
, "#C5");
151 public void IList_Indexer_Set ()
153 TreeView tv
= new TreeView ();
154 TreeNode nodeA
= tv
.Nodes
.Add ("A");
156 IList list
= (IList
) tv
.Nodes
;
157 TreeNode nodeB
= new TreeNode ("B");
159 Assert
.AreSame (nodeB
, list
[0], "#A1");
164 } catch (ArgumentOutOfRangeException ex
) {
165 Assert
.AreEqual (typeof (ArgumentOutOfRangeException
), ex
.GetType (), "#B2");
166 Assert
.IsNull (ex
.ActualValue
, "#B3");
167 Assert
.IsNull (ex
.InnerException
, "#B4");
169 Assert
.AreEqual ("index", ex
.ParamName
, "#B5");
176 } catch (ArgumentOutOfRangeException ex
) {
177 Assert
.AreEqual (typeof (ArgumentOutOfRangeException
), ex
.GetType (), "#C2");
178 Assert
.IsNull (ex
.ActualValue
, "#C3");
179 Assert
.IsNull (ex
.InnerException
, "#C4");
181 Assert
.AreEqual ("index", ex
.ParamName
, "#C5");
186 list
[0] = "whatever";
188 } catch (ArgumentException ex
) {
189 Assert
.AreEqual (typeof (ArgumentException
), ex
.GetType (), "#D2");
190 Assert
.IsNull (ex
.InnerException
, "#D3");
191 Assert
.IsNull (ex
.ParamName
, "#D4");