public void Constructor_Default()
        {
            UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase();

            Assert.AreEqual(0, coll.Count, "Count-0");
            Assert.IsFalse(coll._IsReadOnly, "IsReadOnly");
            Assert.IsFalse(coll.HasKeys(), "HasKeys-0");

            coll.Add("a", "1");
            CheckICollection(coll, 1);
            Assert.AreEqual(1, coll.Count, "Count-1");
            Assert.AreEqual("1", coll.Get(0), "Get(0)");
            Assert.AreEqual(1, coll.GetAllKeys().Length, "GetAllKeys");
            Assert.IsTrue(coll.HasKeys(), "HasKeys-1");

            coll.Add("b", "2");
            Assert.AreEqual(2, coll.Count, "Count-2");
            Assert.AreEqual("b", coll.GetKey(1), "GetKey(1)");
            Assert.AreEqual(2, coll.GetAllValues().Length, "GetAllValues");

            coll.Remove("a");
            Assert.AreEqual(1, coll.Count, "Count-3");

            coll.Set(0, "3");
            Assert.AreEqual("3", coll.Get(0), "Get(0)b");
            coll.Set("b", "4");
            Assert.AreEqual("4", coll.Get(0), "Get(0)c");

            coll.RemoveAt(0);
            Assert.AreEqual(0, coll.Count, "Count-4");
            Assert.IsFalse(coll.HasKeys(), "HasKeys-2");
        }
        public void Set_ReadOnly()
        {
            UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase();

            coll.Add("a", "!");
            coll._IsReadOnly = true;
#if NET_2_0
            try {
                coll.Set(0, "1");
                Assert.Fail("#1");
            } catch (NotSupportedException ex) {
                // Collection is read-only
                Assert.AreEqual(typeof(NotSupportedException), ex.GetType(), "#2");
                Assert.IsNull(ex.InnerException, "#3");
                Assert.IsNotNull(ex.Message, "#4");
            }
#else
            coll.Set(0, "1");
            Assert.AreEqual("1", coll.Get(0), "Get(0)");
#endif
        }
		public void Set_ReadOnly ()
		{
			UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase ();
			coll.Add ("a", "!");
			coll._IsReadOnly = true;
#if NET_2_0
			try {
				coll.Set (0, "1");
				Assert.Fail ("#1");
			} catch (NotSupportedException ex) {
				// Collection is read-only
				Assert.AreEqual (typeof (NotSupportedException), ex.GetType (), "#2");
				Assert.IsNull (ex.InnerException, "#3");
				Assert.IsNotNull (ex.Message, "#4");
			}
#else
			coll.Set (0, "1");
			Assert.AreEqual ("1", coll.Get (0), "Get(0)");
#endif
		}
		public void Constructor_Default ()
		{
			UnitTestNameObjectCollectionBase coll = new UnitTestNameObjectCollectionBase ();
			Assert.AreEqual (0, coll.Count, "Count-0");
			Assert.IsFalse (coll._IsReadOnly, "IsReadOnly");
			Assert.IsFalse (coll.HasKeys (), "HasKeys-0");

			coll.Add ("a", "1");
			CheckICollection (coll, 1);
			Assert.AreEqual (1, coll.Count, "Count-1");
			Assert.AreEqual ("1", coll.Get (0), "Get(0)");
			Assert.AreEqual (1, coll.GetAllKeys ().Length, "GetAllKeys");
			Assert.IsTrue (coll.HasKeys (), "HasKeys-1");

			coll.Add ("b", "2");
			Assert.AreEqual (2, coll.Count, "Count-2");
			Assert.AreEqual ("b", coll.GetKey (1), "GetKey(1)");
			Assert.AreEqual (2, coll.GetAllValues ().Length, "GetAllValues");

			coll.Remove ("a");
			Assert.AreEqual (1, coll.Count, "Count-3");

			coll.Set (0, "3");
			Assert.AreEqual ("3", coll.Get (0), "Get(0)b");
			coll.Set ("b", "4");
			Assert.AreEqual ("4", coll.Get (0), "Get(0)c");

			coll.RemoveAt (0);
			Assert.AreEqual (0, coll.Count, "Count-4");
			Assert.IsFalse (coll.HasKeys (), "HasKeys-2");
		}