Esempio n. 1
0
 public static async void TestAsyncUsingClass()
 {
     await using (AsyncDisposableClass test = new AsyncDisposableClass())
     {
         Use(test);
     }
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }