public void Dispose_FaultsAwaiters() { var quota = new Quota(1L); using (var cts = new CancellationTokenSource()) { var awaiters = new[] { quota.WaitAsync(), quota.WaitAsync(cts.Token), quota.WaitAsync(), quota.WaitAsync() }; cts.Cancel(); quota.Dispose(); using (TaskAssert.Completed(awaiters[0])) { } TaskAssert.Cancelled(awaiters[1]); foreach (var awaiter in awaiters.Skip(2)) { TaskAssert.Faulted <ObjectDisposedException>(awaiter); } } }
public void WaitAsync_Disposed_ThrowsObjectDisposedException() { var quota = new Quota(1L); quota.Dispose(); TaskAssert.Faulted <ObjectDisposedException>(quota.WaitAsync()); }