1 // System.Collections.Specialized.StringCollection.cs
4 // John Barnette (jbarn@httcb.net)
5 // Martin Willemoes Hansen (mwh@sysrq.dk)
6 // Sebastien Pouliot <sebastien@ximian.com>
8 // (C) Copyright 2001 John Barnette
9 // (C) Copyright 2003 Martin Willemoes Hansen
10 // Copyright (C) 2005 Novell, Inc (http://www.novell.com)
13 using NUnit
.Framework
;
14 using System
.Collections
;
15 using System
.Collections
.Specialized
;
17 namespace MonoTests
.System
.Collections
.Specialized
{
20 public class StringCollectionTest
{
22 private StringCollection sc
;
34 public void GetReady()
36 sc
= new StringCollection();
42 public void SimpleCount()
44 Assert
.AreEqual(7, sc
.Count
);
48 public void SimpleIsReadOnly()
50 Assert
.IsFalse(sc
.IsReadOnly
);
54 public void SimpleIsSynchronized()
56 Assert
.IsFalse(sc
.IsSynchronized
);
60 public void SimpleItemGet()
62 for(int i
= 0; i
< strings
.Length
; i
++) {
63 Assert
.AreEqual(strings
[i
], sc
[i
]);
68 public void SimpleItemSet()
71 Assert
.AreEqual("bob", sc
[0]);
75 public void SimpleSyncRoot()
77 Assert
.AreNotSame(sc
, sc
.SyncRoot
);
81 public void SimpleAdd()
83 int index
= sc
.Add("chuck");
84 Assert
.AreEqual(strings
.Length
, index
);
85 Assert
.AreEqual("chuck", sc
[strings
.Length
]);
89 public void SimpleAddRange()
91 string[] newStrings
= {
98 sc
.AddRange(newStrings
);
100 Assert
.AreEqual(index
+ newStrings
.Length
, sc
.Count
);
102 for (int i
= 0; i
+index
<= sc
.Count
-1; i
++) {
103 Assert
.AreEqual(newStrings
[i
], sc
[i
+index
]);
108 public void SimpleClear()
111 Assert
.AreEqual(0, sc
.Count
);
115 public void SimpleContains()
117 Assert
.IsTrue(sc
.Contains(strings
[0]));
118 Assert
.IsFalse(sc
.Contains("NOT CONTAINED"));
122 public void SimpleCopyTo()
124 string[] copyArray
= new string[sc
.Count
];
125 sc
.CopyTo(copyArray
, 0);
126 for (int i
= 0; i
< copyArray
.Length
; i
++) {
127 Assert
.AreEqual(copyArray
[i
], sc
[i
]);
132 public void SimpleGetEnumerator()
135 foreach(string s
in sc
) {
136 Assert
.AreEqual(s
, strings
[index
]);
142 public void SimpleIndexOf()
144 Assert
.AreEqual(0, sc
.IndexOf(strings
[0]));
148 public void SimpleInsert()
151 int oldCount
= sc
.Count
;
152 string before
= sc
[index
- 1];
153 string current
= sc
[index
];
154 string after
= sc
[index
+ 1];
155 string newStr
= "paco";
157 sc
.Insert(index
, newStr
);
159 Assert
.AreEqual(oldCount
+ 1, sc
.Count
);
160 Assert
.AreEqual(newStr
, sc
[index
]);
161 Assert
.AreEqual(before
, sc
[index
-1]);
162 Assert
.AreEqual(current
, sc
[index
+1]);
163 Assert
.AreEqual(after
, sc
[index
+2]);
167 public void SimpleRemove()
169 int oldCount
= sc
.Count
;
170 sc
.Remove(strings
[0]);
171 Assert
.AreEqual(sc
.Count
+ 1, oldCount
);
172 Assert
.IsFalse(sc
.Contains(strings
[0]));
176 public void SimpleRemoveAt()
179 int oldCount
= sc
.Count
;
180 string after
= sc
[index
+1];
183 Assert
.AreEqual(sc
.Count
+ 1, oldCount
);
184 Assert
.AreEqual(after
, sc
[index
]);
190 IList list
= (IList
) new StringCollection ();
191 Assert
.AreEqual (0, list
.Count
, "Count-0");
192 Assert
.IsFalse (list
.IsFixedSize
, "IsFixedSize");
193 Assert
.IsFalse (list
.IsFixedSize
, "IsReadOnly");
196 Assert
.AreEqual (1, list
.Count
, "Count-1");
197 Assert
.IsTrue (list
.Contains ("a"), "Contains(b)");
198 Assert
.IsFalse (list
.Contains ("b"), "Contains(b)");
200 Assert
.AreEqual (0, list
.IndexOf ("a"), "IndexOf(a)");
201 Assert
.AreEqual (-1, list
.IndexOf ("b"), "IndexOf(b)");
203 list
.Insert (0, "b");
204 Assert
.AreEqual (2, list
.Count
, "Count-2");
206 Assert
.AreEqual (1, list
.Count
, "Count-3");
210 Assert
.AreEqual (1, list
.Count
, "Count-4");
213 Assert
.AreEqual (0, list
.Count
, "Count-5");
217 public void ICollection ()
219 ICollection coll
= (ICollection
) new StringCollection ();
220 Assert
.AreEqual (0, coll
.Count
, "Count");
221 Assert
.IsNotNull (coll
.GetEnumerator (), "GetEnumerator");
222 coll
.CopyTo (new string[0], 0);
223 Assert
.IsFalse (coll
.IsSynchronized
, "IsSynchronized");
224 Assert
.IsNotNull (coll
.SyncRoot
, "SyncRoot");
228 public void IEnumerable ()
230 IEnumerable e
= (IEnumerable
) new StringCollection ();
231 Assert
.IsNotNull (e
.GetEnumerator (), "GetEnumerator");