public async Task UsingTest() { var i = 0; var asyncDisposable = await Using.Async(new AsyncDisposableClass(), async adc => { Assert.False(adc.IsDisposed); await Task.Delay(20); i++; return(adc); }); Assert.NotNull(asyncDisposable); Assert.True(asyncDisposable.IsDisposed); Assert.Equal(1, i); }
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); }