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)); }
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); }