Exemple #1
0
        public void GetOrUpdateTest()
        {
            var dict = new Dictionary <string, int> {
                { "a", 1 }, { "b", 2 }
            };
            var rs = dict.GetOrUpdate("c", 3);

            Assert.AreEqual(3, rs);
            Assert.AreEqual(3, dict["c"]);

            var rs2 = dict.GetOrUpdate("a", 0);

            Assert.AreEqual(1, rs2);
            Assert.AreEqual(1, dict["a"]);

            var readOnlyDict = new ReadOnlyDictionary <string, int>(new Dictionary <string, int> {
                { "a", 1 }, { "b", 2 }
            });

            Assert.ThrowsException <NotSupportedException>(() => readOnlyDict.GetOrUpdate("c", 3));
            Assert.ThrowsException <ArgumentNullException>(() => readOnlyDict.AddOrUpdate(null, 3));
        }