예제 #1
0
        public void TestInsert()
        {
            StrKeyCollection collection =
                new StrKeyCollection(EqualityComparer <string> .Default, 2);

#if NOT_IMPLEMENTED
            Assert.IsNull(collection.GetDictionary(),
                          "Dictionary created too early"); // There can't be a dictionary yet
#endif
            collection.Add("One");                         // Key:First

#if NOT_IMPLEMENTED
            Assert.IsNull(collection.GetDictionary(),
                          "Dictionary created too early");       // There can't be a dictionary yet
#endif

            collection.Add("Two");              // Key:Two

#if NOT_IMPLEMENTED
            Assert.IsNull(collection.GetDictionary(),
                          "Dictionary created too early");       // There can't be a dictionary yet
#endif

            collection.Add("Four");  // Key:Four

            Assert.IsNotNull(collection.GetDictionary(),
                             "Dictionary created too late"); // There must be a dictionary

            collection.Insert(2, "Three");                   // Key:Three

            Assert.AreEqual(collection.Count, 4,
                            "Collection count not equal to 4");
            // check if all items are ordered correctly

            Assert.AreEqual(collection [0], "One");
            Assert.AreEqual(collection [1], "Two");
            Assert.AreEqual(collection [2], "Three");
            Assert.AreEqual(collection [3], "Four");

            Assert.AreEqual(collection ["Key:One"], "One");
            Assert.AreEqual(collection ["Key:Two"], "Two");
            Assert.AreEqual(collection ["Key:Three"], "Three");
            Assert.AreEqual(collection ["Key:Four"], "Four");

            Assert.AreEqual(collection.GetDictionary().Count, 4);

            try {
                collection ["UnkownKey"].ToString();
                Assert.Fail("Unknown key should fail");
            } catch (KeyNotFoundException e) {
                e.ToString();                 // avoid warning
                // oke
            }
        }
예제 #2
0
        public void TestDelete()
        {
            StrKeyCollection collection =
                new StrKeyCollection(EqualityComparer <string> .Default, 2);

            collection.Add("One");         // Key:First
            collection.Add("Two");         // Key:Two
            Assert.IsTrue(collection.Remove("Key:One"));
            collection.Add("Four");        // Key:Four
            collection.Insert(2, "Three"); // Key:Three
            Assert.IsTrue(collection.Remove("Key:Three"));

            Assert.IsFalse(collection.Remove("Unknown"));

            Assert.AreEqual(collection.GetDictionary().Count, 2);


            Assert.AreEqual(collection.Count, 2, "Collection count not equal to 2");
            // check if all items are ordered correctly

            Assert.AreEqual(collection [0], "Two");
            Assert.AreEqual(collection [1], "Four");

            Assert.AreEqual(collection ["Key:Two"], "Two");
            Assert.AreEqual(collection ["Key:Four"], "Four");

            try
            {
                collection ["Key:One"].ToString();
                Assert.Fail("Unknown key should fail");
            }
            catch (KeyNotFoundException e)
            {
                e.ToString(); // avoid warning
                // oke
            }

            try
            {
                collection ["Key:One"].ToString();
                Assert.Fail("Unknown key should fail");
            }
            catch (KeyNotFoundException e)
            {
                e.ToString(); // avoid warning
                // oke
            }
        }
예제 #3
0
        public void Insert_DuplicateKey_NoDictionary()
        {
            StrKeyCollection collection =
                new StrKeyCollection(EqualityComparer <string> .Default, 4);

            collection.Add("One");
            try {
                collection.Add("One");
                Assert.Fail("Duplicate keys should throw ArgumentException.");
            }
            catch (ArgumentException) {
            }
            catch (Exception e) {
                Assert.Fail("Invalid exception type: expected ArgumentOutOfRangeException, got " + e.GetType().Name);
            }
            Assert.AreEqual(1, collection.Count);
            Assert.AreEqual(null, collection.GetDictionary());
        }