public void WhenThereIsNoItem_TakeShouldBeBlocked() { using (var sut = new SimpleBlockingCollection <int>()) { ConcurrentAssert.EnsureThatActionIsNeverCompleted(() => { var a = sut.Take(); }); } }
public void WhenItemsCountIsEqualToBound_AddShouldBeBlocked() { using (var sut = new SimpleBlockingCollection <int>(1)) { sut.Add(10); ConcurrentAssert.EnsureThatActionIsNeverCompleted(() => { sut.Add(20); }); } }
public void WhenCollectionHasItems_ConsumerEnumerableShouldGetAllItemsAndBlocked() { using (var sut = new SimpleBlockingCollection <int>()) { sut.Add(10); sut.Add(20); using (var enumerator = sut.GetConsumingEnumerable().GetEnumerator()) { enumerator.MoveNext(); Assert.AreEqual(enumerator.Current, 10); enumerator.MoveNext(); Assert.AreEqual(enumerator.Current, 20); ConcurrentAssert.EnsureThatActionIsNeverCompleted(() => enumerator.MoveNext()); } } }