Example #1
0
        public void When_List_TryAddDistinct_Then_ItemAdded()
        {
            var list = ImmutableList <object> .Empty;
            var item = new object();

            var added = Transactional.TryAddDistinct(ref list, item);

            Assert.IsTrue(added);
            Assert.AreEqual(1, list.Count);
            Assert.IsTrue(list.Contains(item));
        }
Example #2
0
        public void When_List_TryAddDistinct_Twice_Then_ItemAddedOnlyOnce()
        {
            var list = ImmutableList <object> .Empty;
            var item = new object();

            var added1  = Transactional.TryAddDistinct(ref list, item);
            var result1 = list;
            var added2  = Transactional.TryAddDistinct(ref list, item);
            var result2 = list;

            Assert.IsTrue(added1);
            Assert.IsFalse(added2);
            Assert.AreEqual(1, list.Count);
            Assert.IsTrue(list.Contains(item));
            Assert.AreSame(result1, result2);
        }