private void Common (OrderedDictionary od) { Assert.IsNotNull (od.GetEnumerator (), "GetEnumerator"); Assert.AreEqual (0, od.Count, "Count-0"); Assert.IsFalse (od.IsReadOnly, "IsReadOnly"); od.Add ("a", "1"); Assert.AreEqual (1, od.Count, "Count-1"); od["a"] = "11"; Assert.AreEqual ("11", od["a"], "this[string]"); od[0] = "111"; Assert.AreEqual ("111", od[0], "this[int]"); DictionaryEntry[] array = new DictionaryEntry[2]; od.CopyTo (array, 1); Assert.AreEqual ("111", ((DictionaryEntry)array[1]).Value, "CopyTo"); Assert.AreEqual (1, od.Keys.Count, "Keys"); Assert.AreEqual (1, od.Values.Count, "Values"); Assert.IsTrue (od.Contains ("a"), "Contains(a)"); Assert.IsFalse (od.Contains ("111"), "Contains(111)"); od.Insert (0, "b", "2"); Assert.AreEqual (2, od.Count, "Count-2"); od.Add ("c", "3"); Assert.AreEqual (3, od.Count, "Count-3"); OrderedDictionary ro = od.AsReadOnly (); od.RemoveAt (2); Assert.AreEqual (2, od.Count, "Count-4"); Assert.IsFalse (od.Contains ("c"), "Contains(c)"); od.Remove ("b"); Assert.AreEqual (1, od.Count, "Count-5"); Assert.IsFalse (od.Contains ("b"), "Contains(b)"); od.Clear (); Assert.AreEqual (0, od.Count, "Count-6"); Assert.IsTrue (ro.IsReadOnly, "IsReadOnly-2"); // it's a read-only reference Assert.AreEqual (0, od.Count, "Count-7"); }
public void CopyToTests() { var d = new OrderedDictionary(); d["foo"] = "bar"; d[" "] = "asd"; DictionaryEntry[] arr = new DictionaryEntry[3]; Assert.Throws<ArgumentNullException>(() => d.CopyTo(null, 0)); Assert.Throws<ArgumentOutOfRangeException>(() => d.CopyTo(arr, -1)); Assert.Throws<ArgumentException>(() => d.CopyTo(arr, 3)); d.CopyTo(arr, 0); for (int i = 0; i < 2; i++) { Assert.True(d.Contains(arr[i].Key)); Assert.Equal(d[arr[i].Key], arr[i].Value); } Assert.NotEqual(arr[0].Key, arr[1].Key); d.CopyTo(arr, 1); for (int i = 1; i < 3; i++) { Assert.True(d.Contains(arr[i].Key)); Assert.Equal(d[arr[i].Key], arr[i].Value); } Assert.NotEqual(arr[1].Key, arr[2].Key); }