예제 #1
0
        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);
        }
예제 #2
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);
        }