2 // HybridDictionaryTest.cs - NUnit Test Cases for System.Net.HybridDictionary
5 // Lawrence Pit (loz@cable.a2000.nl)
6 // Martin Willemoes Hansen (mwh@sysrq.dk)
7 // Sebastien Pouliot <sebastien@ximian.com>
9 // (C) 2003 Martin Willemoes Hansen
10 // Copyright (C) 2005 Novell, Inc (http://www.novell.com)
13 using NUnit.Framework;
15 using System.Collections;
16 using System.Collections.Specialized;
18 namespace MonoTests.System.Collections.Specialized
21 public class HybridDictionaryTest {
24 public void DefaultValues ()
26 HybridDictionary hd = new HybridDictionary (100);
27 Assert.AreEqual (0, hd.Count, "Count");
28 Assert.IsFalse (hd.IsFixedSize, "IsFixedSize");
29 Assert.IsFalse (hd.IsReadOnly, "IsReadOnly");
30 Assert.IsFalse (hd.IsSynchronized, "IsSynchronized");
31 Assert.AreEqual (0, hd.Keys.Count, "Keys");
32 Assert.AreEqual (0, hd.Values.Count, "Values");
33 Assert.AreSame (hd, hd.SyncRoot, "SyncRoot");
34 Assert.IsNotNull (hd.GetEnumerator (), "GetEnumerator");
35 Assert.IsNotNull ((hd as IEnumerable).GetEnumerator (), "IEnumerable.GetEnumerator");
41 HybridDictionary dict = new HybridDictionary (true);
42 dict.Add ("CCC", "ccc");
43 dict.Add ("BBB", "bbb");
44 dict.Add ("fff", "fff");
48 Assert.AreEqual (5, dict.Count, "#1");
49 Assert.AreEqual ("eee", dict["eee"], "#2");
51 dict.Add ("CCC2", "ccc");
52 dict.Add ("BBB2", "bbb");
53 dict.Add ("fff2", "fff");
54 dict ["EEE2"] = "eee";
55 dict ["ddd2"] = "ddd";
59 Assert.AreEqual (12, dict.Count, "#3");
60 Assert.AreEqual ("eee", dict["eee"], "#4");
63 Assert.AreEqual (11, dict.Count, "Removed/Count");
64 Assert.IsFalse (dict.Contains ("eee"), "Removed/Contains(xxx)");
65 DictionaryEntry[] entries = new DictionaryEntry [11];
66 dict.CopyTo (entries, 0);
68 Assert.IsTrue (dict.Contains ("xxx"), "Contains(xxx)");
70 Assert.AreEqual (0, dict.Count, "Cleared/Count");
71 Assert.IsFalse (dict.Contains ("xxx"), "Cleared/Contains(xxx)");
75 [ExpectedException (typeof (ArgumentNullException))]
78 HybridDictionary hd = new HybridDictionary ();
79 Assert.AreEqual (0, hd.Count, "Count");
80 Assert.IsFalse (hd.Contains ("unexisting"), "unexisting");
81 // under 1.x no exception, under 2.0 ArgumentNullException
82 Assert.IsFalse (hd.Contains (null), "Contains(null)");
86 [ExpectedException (typeof (ArgumentNullException))]
87 public void NotEmpty ()
89 HybridDictionary hd = new HybridDictionary (1, false);
90 hd.Add ("CCC", "ccc");
91 Assert.AreEqual (1, hd.Count, "Count");
92 // ArgumentNullException under all fx versions
93 Assert.IsFalse (hd.Contains (null), "Contains(null)");