2 // AutoCompleteStringCollectionTest.cs
4 // Permission is hereby granted, free of charge, to any person obtaining
5 // a copy of this software and associated documentation files (the
6 // "Software"), to deal in the Software without restriction, including
7 // without limitation the rights to use, copy, modify, merge, publish,
8 // distribute, sublicense, and/or sell copies of the Software, and to
9 // permit persons to whom the Software is furnished to do so, subject to
10 // the following conditions:
12 // The above copyright notice and this permission notice shall be
13 // included in all copies or substantial portions of the Software.
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 // Copyright (c) 2006 Daniel Nauck
26 // Daniel Nauck (dna(at)mono-project(dot)de)
31 using System
.Windows
.Forms
;
33 using System
.Reflection
;
34 using System
.Collections
;
35 using System
.ComponentModel
;
36 using NUnit
.Framework
;
38 namespace MonoTests
.System
.Windows
.Forms
41 public class AutoCompleteStringCollectionTest
: TestHelper
43 AutoCompleteStringCollection autoCol
= null;
44 private int add_event
= 0;
45 private int refresh_event
= 0;
46 private int remove_event
= 0;
47 private string value_event
= null;
50 protected override void SetUp ()
52 autoCol
= new AutoCompleteStringCollection ();
53 autoCol
.CollectionChanged
+= new CollectionChangeEventHandler (AutoColChanged
);
57 value_event
= "unknown item";
61 private void AutoColChanged(object sender
, CollectionChangeEventArgs e
)
65 case CollectionChangeAction
.Add
:
67 value_event
= (string)e
.Element
;
69 case CollectionChangeAction
.Refresh
:
71 value_event
= (string)e
.Element
;
73 case CollectionChangeAction
.Remove
:
75 value_event
= (string)e
.Element
;
81 public void DefaultProperties ()
83 Assert
.AreEqual (false, autoCol
.IsReadOnly
, "#A1");
84 Assert
.AreEqual (false, ((IList
)autoCol
).IsFixedSize
, "#A2");
85 Assert
.AreEqual (false, autoCol
.IsSynchronized
, "#A3");
86 Assert
.AreEqual (autoCol
, autoCol
.SyncRoot
, "#A4");
87 Assert
.AreEqual (0, autoCol
.Count
, "#A5");
91 public void AddTest ()
93 int item1
= autoCol
.Add ("Item1");
94 Assert
.AreEqual (1, add_event
, "#B1");
95 Assert
.AreEqual ("Item1", value_event
, "#B2");
96 int item2
= autoCol
.Add ("Item2");
97 Assert
.AreEqual (2, add_event
, "#B3");
98 Assert
.AreEqual ("Item2", value_event
, "#B4");
100 Assert
.AreEqual (2, autoCol
.Count
, "#B5");
101 Assert
.AreEqual ("Item1", autoCol
[item1
], "#B6");
102 Assert
.AreEqual ("Item2", autoCol
[item2
], "#B7");
106 public void ClearTest ()
108 autoCol
.Add ("Item1");
109 autoCol
.Add ("Item2");
111 Assert
.AreEqual (1, refresh_event
, "#C1");
112 Assert
.AreEqual (null, value_event
, "#C2");
113 Assert
.AreEqual (0, autoCol
.Count
, "#C3");
117 public void ContainsTest ()
119 autoCol
.Add ("Item1");
120 Assert
.AreEqual (true, autoCol
.Contains("Item1"), "#D1");
121 Assert
.AreEqual (false, autoCol
.Contains("Item2"), "#D2");
125 public void IndexOfTest ()
127 autoCol
.Add ("Item1");
128 autoCol
.Add ("Item2");
129 Assert
.AreEqual (1, autoCol
.IndexOf("Item2"), "#E1");
133 public void RemoveTest ()
135 autoCol
.Add ("Item1");
136 autoCol
.Add ("Item2");
137 autoCol
.Remove ("Item1");
138 Assert
.AreEqual(1, remove_event
, "#F1");
139 Assert
.AreEqual("Item1", value_event
, "#F2");
140 Assert
.AreEqual (1, autoCol
.Count
, "#F3");
141 Assert
.AreEqual ("Item2", autoCol
[0], "#F4");
145 public void RemoveAtTest ()
147 autoCol
.Add ("Item1");
148 autoCol
.Add ("Item2");
149 autoCol
.RemoveAt (0);
150 Assert
.AreEqual(1, remove_event
, "#G1");
151 Assert
.AreEqual("Item1", value_event
, "#G2");
152 Assert
.AreEqual (1, autoCol
.Count
, "#G3");
153 Assert
.AreEqual (true, autoCol
.Contains("Item2"), "#G4");
157 public void AddRangeTest ()
159 string[] values
= new string[] { "Item1", "Item2", "Item3", "Item4" }
;
160 autoCol
.Add ("Item5");
161 autoCol
.AddRange (values
);
162 Assert
.AreEqual(1, refresh_event
, "#E1");
163 Assert
.AreEqual(null, value_event
, "#E2");
164 Assert
.AreEqual (5, autoCol
.Count
, "#E3");
165 Assert
.AreEqual (true, autoCol
.Contains("Item1"), "#E4");
166 Assert
.AreEqual (true, autoCol
.Contains("Item2"), "#E5");
167 Assert
.AreEqual (true, autoCol
.Contains("Item3"), "#E6");
168 Assert
.AreEqual (true, autoCol
.Contains("Item4"), "#E7");
169 Assert
.AreEqual (true, autoCol
.Contains("Item5"), "#E8");
173 [ExpectedException (typeof (ArgumentNullException
))]
174 public void AddRangeNullTest ()
176 string[] values
= null;
177 autoCol
.AddRange (values
);
181 public void AddTest_Junk ()
184 Assert
.AreEqual (1, autoCol
.Count
, "#F1");
186 Assert
.AreEqual (2, autoCol
.Count
, "#F2");
187 Assert
.AreEqual (true, autoCol
.Contains(null), "#F3");
188 Assert
.AreEqual (0, autoCol
.IndexOf(null), "#F4");
189 autoCol
.Remove (null);
190 Assert
.AreEqual (1, autoCol
.Count
, "#F5");
191 autoCol
[0] = "Item1";
193 Assert
.AreEqual (null, autoCol
[0], "#F6");
197 public void IndexerTest()
199 autoCol
.Add("Item1");
200 autoCol
[0] = "NewItem1";
202 Assert
.AreEqual(1, remove_event
, "#G1");
203 Assert
.AreEqual(2, add_event
, "#G2");