Example #1
0
        public void BasicLifecycle()
        {
            var dict = new MultiVersionDictionary <V>();
            V   v;
            V   v1 = new V(1);

            Assert.IsFalse(dict.TryGetValue("A", 0, out _));
            Assert.IsFalse(dict.TryRemove("A", 0));

            Assert.IsTrue(dict.AddOrUpdate("A", 1, v1));
            Assert.IsFalse(dict.TryGetValue("A", 0, out _));
            Assert.IsTrue(dict.TryGetValue("A", 1, out v));
            Assert.AreEqual(v1, v);
            Assert.IsTrue(dict.TryGetValue("A", 2, out v));
            Assert.AreEqual(v1, v);

            Assert.IsFalse(dict.TryRemove("A", 0));
            Assert.IsTrue(dict.TryRemove("A", 2));
            Assert.IsFalse(dict.TryGetValue("A", 0, out _));
            Assert.IsTrue(dict.TryGetValue("A", 1, out v));
            Assert.AreEqual(v1, v);
            Assert.IsFalse(dict.TryGetValue("A", 2, out v));
        }