public static async void TestAsyncUsingClass() { await using (AsyncDisposableClass test = new AsyncDisposableClass()) { Use(test); } }
public async Task AsyncDisposableTest() { var asyncDisposable = new AsyncDisposableClass(); Assert.False(asyncDisposable.IsDisposed); var task = Disposable.Async(asyncDisposable); Assert.False(asyncDisposable.IsDisposed); await task.ConfigureAwait(false); Assert.True(asyncDisposable.IsDisposed); }
public async Task UsingThrows() { AsyncDisposableClass asyncDisposable = null; var i = 0; await Assert.ThrowsAsync <InvalidProgramException>(() => Using.Async(new AsyncDisposableClass(), async adc => { Assert.False(adc.IsDisposed); asyncDisposable = adc; await Task.Delay(20); i++; throw new InvalidProgramException(); })); Assert.NotNull(asyncDisposable); Assert.True(asyncDisposable.IsDisposed); Assert.Equal(1, i); }