public void IgnoresCase()
        {
            CaseInsensitiveHashtable st = new CaseInsensitiveHashtable();

            st.Add("key", "value");
            Assert.AreEqual("value", st["KEY"]);
            st["KeY"] = "value2";
            Assert.AreEqual(1, st.Count);
            Assert.AreEqual("value2", st["key"]);

            try
            {
                st.Add("KEY", "value2");
                Assert.Fail();
            }
            catch (ArgumentException)
            { }

            Hashtable ht = new Hashtable();

            ht.Add("key", "value");
            ht.Add("KEY", "value");
            try
            {
                st = new CaseInsensitiveHashtable(ht, CultureInfo.InvariantCulture);
                Assert.Fail();
            }
            catch (ArgumentException)
            { }
        }
        public void AcceptsNonStringKeys()
        {
            CaseInsensitiveHashtable st = new CaseInsensitiveHashtable();

            object key = new object();

            st.Add(key, "value");
            Assert.AreEqual(1, st.Count);
            Assert.AreEqual("value", st[key]);
            Assert.IsNull(st[new object()]);
        }
        public void IsSerializable()
        {
            CaseInsensitiveHashtable storiginal = new CaseInsensitiveHashtable();

            storiginal.Add("key", "value");
            CaseInsensitiveHashtable st = (CaseInsensitiveHashtable)SerializeDeserializeObject(storiginal);

            Assert.AreNotSame(storiginal, st);
            Assert.AreEqual("value", st["KEY"]);
            Assert.AreEqual(1, st.Count);
        }