33a1bffc00ef7071356d209eed3cddf5b82934a5
[mono.git] / mcs / class / System / Test / StringCollectionTest.cs
1 /* System.Collections.Specialized.StringCollection.cs\r
2  * Authors:\r
3  *   John Barnette (jbarn@httcb.net)\r
4  *\r
5  *  Copyright (C) 2001 John Barnette\r
6 */\r
7 \r
8 using NUnit.Framework;\r
9 \r
10 namespace System.Collections.Specialized {\r
11         public class StringCollectionTest : TestCase {\r
12                 private StringCollection sc;\r
13                 string[] strings = {\r
14                         "foo",\r
15                         "bar",\r
16                         "baz",\r
17                         "john",\r
18                         "paul",\r
19                         "george",\r
20                         "ringo"\r
21                 };\r
22                 \r
23                 public StringCollectionTest(string name) : base(name) {}\r
24                 \r
25                 protected override void SetUp() {\r
26                         sc = new StringCollection();\r
27                         sc.AddRange(strings);\r
28                 }\r
29 \r
30                 // Simple Tests\r
31                 \r
32                 public void TestSimpleCount() {\r
33                         Assert(sc.Count == 7);\r
34                 }\r
35                 \r
36                 public void TestSimpleIsFixedSize() {\r
37                         Assert(!sc.IsFixedSize);\r
38                 }\r
39                 \r
40                 public void TestSimpleIsReadOnly() {\r
41                         Assert(!sc.IsReadOnly);\r
42                 }\r
43                 \r
44                 public void TestSimpleIsSynchronized() {\r
45                         Assert(!sc.IsSynchronized);\r
46                 }\r
47                 \r
48                 public void TestSimpleItemGet() {\r
49                         for(int i = 0; i < strings.Length; i++) {\r
50                                 Assert(strings[i].Equals(sc[i]));\r
51                         }\r
52                 }\r
53                 \r
54                 public void TestSimpleItemSet() {\r
55                         sc[0] = "bob";\r
56                         Assert(sc[0].Equals("bob"));\r
57                 }\r
58                 \r
59                 public void TestSimpleSyncRoot() {\r
60                         Assert(sc.Equals(sc.SyncRoot));\r
61                 }\r
62                 \r
63                 public void TestSimpleAdd() {\r
64                         int index = sc.Add("chuck");\r
65                         Assert(index == strings.Length);\r
66                         Assert(sc[strings.Length].Equals("chuck"));\r
67                         \r
68                 }\r
69                 \r
70                 public void TestSimpleAddRange() {\r
71                         string[] newStrings = {\r
72                                 "peter",\r
73                                 "paul",\r
74                                 "mary"\r
75                         };\r
76                         \r
77                         int index = sc.Count;\r
78                         sc.AddRange(newStrings);\r
79                         \r
80                         Assert(sc.Count == index + newStrings.Length);\r
81                         \r
82                         for (int i = 0; i+index <= sc.Count-1; i++) {\r
83                                 Assert(newStrings[i].Equals(sc[i+index]));\r
84                         }\r
85                 }\r
86                 \r
87                 public void TestSimpleClear() {\r
88                         sc.Clear();\r
89                         Assert(sc.Count == 0);\r
90                 }\r
91                 \r
92                 public void TestSimpleContains() {\r
93                         Assert(sc.Contains(strings[0]));\r
94                         Assert(!sc.Contains("NOT CONTAINED"));\r
95                 }\r
96                 \r
97                 public void TestSimpleCopyTo() {\r
98                         string[] copyArray = new string[sc.Count];\r
99                         sc.CopyTo(copyArray, 0);\r
100                         for (int i = 0; i < copyArray.Length; i++) {\r
101                                 Assert(copyArray[i] == sc[i]);\r
102                         }\r
103                 }\r
104                 \r
105                 public void TestSimpleGetEnumerator() {\r
106                         int index = 0;\r
107                         foreach(string s in sc) {\r
108                                 Assert(s.Equals(strings[index]));\r
109                                 index++;\r
110                         }\r
111                 }\r
112                 \r
113                 public void TestSimpleIndexOf() {\r
114                         Assert(sc.IndexOf(strings[0]) == 0);\r
115                 }\r
116                 \r
117                 public void TestSimpleInsert() {\r
118                         int index = 3;\r
119                         int oldCount = sc.Count;\r
120                         string before  = sc[index - 1];\r
121                         string current = sc[index];\r
122                         string after   = sc[index + 1];\r
123                         string newStr  = "paco";\r
124                         \r
125                         sc.Insert(index, newStr);\r
126                         \r
127                         Assert(sc.Count == oldCount + 1);\r
128                         Assert(sc[index].Equals(newStr));\r
129                         Assert(sc[index-1].Equals(before));\r
130                         Assert(sc[index+1].Equals(current));\r
131                         Assert(sc[index+2].Equals(after));\r
132                 }\r
133                 \r
134                 public void TestSimpleRemove() {\r
135                         int oldCount = sc.Count;\r
136                         sc.Remove(strings[0]);\r
137                         Assert(oldCount == sc.Count + 1);\r
138                         Assert(!sc.Contains(strings[0]));\r
139                 }\r
140                 \r
141                 public void TestSimpleRemoveAt() {\r
142                         int index = 3;\r
143                         int oldCount = sc.Count;\r
144                         string after = sc[index+1];\r
145                         \r
146                         sc.RemoveAt(index);\r
147                         Assert(oldCount == sc.Count + 1);\r
148                         Assert(sc[index].Equals(after));\r
149                 }\r
150                         \r
151         }\r
152 }\r