public void ReturnsFalseOnANewList() { var list = new DeletableObjectList <TestDeletable>(); var returnValue = list.Remove(new TestDeletable()); returnValue.Should().BeFalse(); }
public void ThrowsOnNull() { var list = new DeletableObjectList <TestDeletable>(); Action addingNull = () => list.Add(null); Assert.Throws <ArgumentNullException>(addingNull); }
public void ReturnsFalseOnANewList() { var list = new DeletableObjectList <TestDeletable>(); var returnValue = list.Remove(new TestDeletable()); Assert.False(returnValue); }
public void AddsObjectToList() { var list = new DeletableObjectList <TestDeletable>(); var deletable = new TestDeletable(); list.Add(deletable); Assert.Equal(deletable, list.Single()); }
public void DoesNotThrowAfterDisposingEnumerator() { var list = new DeletableObjectList <TestDeletable>(); var enumerator = list.GetEnumerator(); enumerator.Dispose(); CallMethod(list); }
public void AddsObjectToList() { var list = new DeletableObjectList <TestDeletable>(); var deletable = new TestDeletable(); list.Add(deletable); list.Should().ContainSingle().Which.Should().Be(deletable); }
public void ThrowsIfEnumerating() { var list = new DeletableObjectList <TestDeletable>(); list.GetEnumerator(); Action callingWhileEnumerating = () => CallMethod(list); Assert.Throws <InvalidOperationException>(callingWhileEnumerating); }
createPopulatedList(int itemsToAdd) { var list = new DeletableObjectList <TestDeletable>(); var items = getDeletables(itemsToAdd); foreach (var item in items) { list.Add(item); } return(list, items); }
public void CanAddMultipleItems(int itemsToAdd) { var list = new DeletableObjectList <TestDeletable>(); var items = getDeletables(itemsToAdd); foreach (var item in items) { list.Add(item); } list.Should().BeEquivalentTo(items, withExactSameItems); }
public void DoesNotThrowIfAllEnumeratorsAreDisposed() { var list = new DeletableObjectList <TestDeletable>(); var enumerators = Enumerable.Range(0, 20).Select(i => list.GetEnumerator()).ToList(); foreach (var enumerator in enumerators) { enumerator.Dispose(); } CallMethod(list); }
public void CanAddMultipleItems(int itemsToAdd) { var list = new DeletableObjectList <TestDeletable>(); var items = getDeletables(itemsToAdd); foreach (var item in items) { list.Add(item); } Assert.True(items.SequenceEqual(list)); }
private DeletableObjectList <T> getList <T>() where T : class, IDeletable { object list; if (lists.TryGetValue(typeof(T), out list)) { return((DeletableObjectList <T>)list); } var l = new DeletableObjectList <T>(); lists.Add(typeof(T), l); return(l); }
public DeletableObjectList <T> GetList <T>() where T : class, IDeletable { object list; if (this.lists.TryGetValue(typeof(T), out list)) { return((DeletableObjectList <T>)list); } var l = new DeletableObjectList <T>(); this.lists.Add(typeof(T), l); return(l); }
public void ThrowsIfAtLeastOneEnumeratorIsNotDisposed() { var list = new DeletableObjectList <TestDeletable>(); var enumerators = Enumerable.Range(0, 20).Select(i => list.GetEnumerator()).ToList(); var arbitraryEnumerator = enumerators[7]; foreach (var enumerator in enumerators.Except(new [] { arbitraryEnumerator })) { enumerator.Dispose(); } Action callingWhileEnumerating = () => CallMethod(list); Assert.Throws <InvalidOperationException>(callingWhileEnumerating); }
public void IsAccurateWhenAddingAndRemoving(PositiveInt itemsToAdd, int randomSeed) { var itemCount = itemsToAdd.Get; var random = new System.Random(randomSeed); var list = new DeletableObjectList <TestDeletable>(); foreach (var i in Enumerable.Range(1, itemCount)) { list.Add(new TestDeletable()); Assert.Equal(i, list.ApproximateCount); } foreach (var i in Enumerable.Range(1, itemCount)) { list.Remove(list.RandomElement(random)); Assert.Equal(itemCount - i, list.ApproximateCount); } }
public void AddToList(DeletableObjectList <T> list) { if (this.List != null) { return; } this.List = list; this.Deleted = false; if (list.Last != null) { this.Prev = list.Last; this.Prev.Next = (T)this; } this.ChangingList = true; list.Add((T)this); this.ChangingList = false; }
public void CreatesEmptyListForZeroValue() { var list = new DeletableObjectList <IDeletable>(0); Assert.Empty(list); }
public void IsZeroForEmptyList() { var list = new DeletableObjectList <TestDeletable>(); Assert.Equal(0, list.ApproximateCount); }
public void CreatesEmptyList() { var list = new DeletableObjectList <IDeletable>(); Assert.Empty(list); }
protected override void CallMethod(DeletableObjectList <TestDeletable> list) => list.ForceCompact();
protected override void CallMethod(DeletableObjectList <TestDeletable> list) => list.TrimExcess();
public void CreatesEmptyListForPositiveValues(int count) { var list = new DeletableObjectList <IDeletable>(count); list.Should().BeEmpty(); }
public void ThrowsForNegativeValues(int count) { Action createListWithNegativeValue = () => _ = new DeletableObjectList <IDeletable>(-count); createListWithNegativeValue.Should().Throw <ArgumentOutOfRangeException>(); }
public void DoesNotThrowForEmptyList() { var list = new DeletableObjectList <TestDeletable>(); CallMethod(list); }
public void DoesNotThrowForEmptyList() { var list = new DeletableObjectList <TestDeletable>(); list.Clear(); }
public void CreatesEmptyListForPositiveValues(int count) { var list = new DeletableObjectList <IDeletable>(count); Assert.Empty(list); }
protected override void CallMethod(DeletableObjectList <TestDeletable> list) => list.Add(new TestDeletable());
protected override void CallMethod(DeletableObjectList <TestDeletable> list) => list.Remove(list.RandomElement(random));
protected abstract void CallMethod(DeletableObjectList <TestDeletable> list);
protected override void CallMethod(DeletableObjectList <TestDeletable> list) => list.Clear();