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 Assertion.Assert(sc.Count == 7);
48 public void SimpleIsReadOnly()
50 Assertion.Assert(!sc.IsReadOnly);
54 public void SimpleIsSynchronized()
56 Assertion.Assert(!sc.IsSynchronized);
60 public void SimpleItemGet()
62 for(int i = 0; i < strings.Length; i++) {
63 Assertion.Assert(strings[i].Equals(sc[i]));
68 public void SimpleItemSet()
71 Assertion.Assert(sc[0].Equals("bob"));
76 [Category ("NotDotNet")] // SyncRoot != this on 2.0
78 public void SimpleSyncRoot()
80 Assertion.Assert(sc.Equals(sc.SyncRoot));
84 public void SimpleAdd()
86 int index = sc.Add("chuck");
87 Assertion.Assert(index == strings.Length);
88 Assertion.Assert(sc[strings.Length].Equals("chuck"));
92 public void SimpleAddRange()
94 string[] newStrings = {
100 int index = sc.Count;
101 sc.AddRange(newStrings);
103 Assertion.Assert(sc.Count == index + newStrings.Length);
105 for (int i = 0; i+index <= sc.Count-1; i++) {
106 Assertion.Assert(newStrings[i].Equals(sc[i+index]));
111 public void SimpleClear()
114 Assertion.Assert(sc.Count == 0);
118 public void SimpleContains()
120 Assertion.Assert(sc.Contains(strings[0]));
121 Assertion.Assert(!sc.Contains("NOT CONTAINED"));
125 public void SimpleCopyTo()
127 string[] copyArray = new string[sc.Count];
128 sc.CopyTo(copyArray, 0);
129 for (int i = 0; i < copyArray.Length; i++) {
130 Assertion.Assert(copyArray[i] == sc[i]);
135 public void SimpleGetEnumerator()
138 foreach(string s in sc) {
139 Assertion.Assert(s.Equals(strings[index]));
145 public void SimpleIndexOf()
147 Assertion.Assert(sc.IndexOf(strings[0]) == 0);
151 public void SimpleInsert()
154 int oldCount = sc.Count;
155 string before = sc[index - 1];
156 string current = sc[index];
157 string after = sc[index + 1];
158 string newStr = "paco";
160 sc.Insert(index, newStr);
162 Assertion.Assert(sc.Count == oldCount + 1);
163 Assertion.Assert(sc[index].Equals(newStr));
164 Assertion.Assert(sc[index-1].Equals(before));
165 Assertion.Assert(sc[index+1].Equals(current));
166 Assertion.Assert(sc[index+2].Equals(after));
170 public void SimpleRemove()
172 int oldCount = sc.Count;
173 sc.Remove(strings[0]);
174 Assertion.Assert(oldCount == sc.Count + 1);
175 Assertion.Assert(!sc.Contains(strings[0]));
179 public void SimpleRemoveAt()
182 int oldCount = sc.Count;
183 string after = sc[index+1];
186 Assertion.Assert(oldCount == sc.Count + 1);
187 Assertion.Assert(sc[index].Equals(after));
193 IList list = (IList) new StringCollection ();
194 Assert.AreEqual (0, list.Count, "Count-0");
195 Assert.IsFalse (list.IsFixedSize, "IsFixedSize");
196 Assert.IsFalse (list.IsFixedSize, "IsReadOnly");
199 Assert.AreEqual (1, list.Count, "Count-1");
200 Assert.IsTrue (list.Contains ("a"), "Contains(b)");
201 Assert.IsFalse (list.Contains ("b"), "Contains(b)");
203 Assert.AreEqual (0, list.IndexOf ("a"), "IndexOf(a)");
204 Assert.AreEqual (-1, list.IndexOf ("b"), "IndexOf(b)");
206 list.Insert (0, "b");
207 Assert.AreEqual (2, list.Count, "Count-2");
209 Assert.AreEqual (1, list.Count, "Count-3");
213 Assert.AreEqual (1, list.Count, "Count-4");
216 Assert.AreEqual (0, list.Count, "Count-5");
220 public void ICollection ()
222 ICollection coll = (ICollection) new StringCollection ();
223 Assert.AreEqual (0, coll.Count, "Count");
224 Assert.IsNotNull (coll.GetEnumerator (), "GetEnumerator");
225 coll.CopyTo (new string[0], 0);
226 Assert.IsFalse (coll.IsSynchronized, "IsSynchronized");
227 Assert.IsNotNull (coll.SyncRoot, "SyncRoot");
231 public void IEnumerable ()
233 IEnumerable e = (IEnumerable) new StringCollection ();
234 Assert.IsNotNull (e.GetEnumerator (), "GetEnumerator");