示例#1
0
        public void DisposeAsyncTest()
        {
            var obj = new DisposableBaseMock();

            DisposeAsyncTestCore(obj).ConfigureAwait(false).GetAwaiter().GetResult();
            Assert.IsNotNull(obj);
            Assert.IsFalse(obj.IsDisposing);
            Assert.IsTrue(obj.IsDisposed);
        }
示例#2
0
        public void DisposeTest()
        {
            var obj = new DisposableBaseMock();

            using (obj) { }
            Assert.IsNotNull(obj);
            Assert.IsFalse(obj.IsDisposing);
            Assert.IsTrue(obj.IsDisposed);
        }
示例#3
0
        public void DisposeTest()
        {
            DisposableBaseMock disposable;

            using (disposable = new DisposableBaseMock()) {
                Assert.IsFalse(disposable.IsDisposing);
                Assert.IsFalse(disposable.IsDisposed);
                disposable.DoSomething();
                Assert.IsFalse(disposable.IsDisposing);
                Assert.IsFalse(disposable.IsDisposed);
            }

            Assert.IsFalse(disposable.IsDisposing);
            Assert.IsTrue(disposable.IsDisposed);

            Assert.ThrowsException <ObjectDisposedException>(disposable.DoSomething);

            disposable.Dispose();
        }
示例#4
0
        private static async Task DisposeAsyncTestCore()
        {
            var disposable = new DisposableBaseMock();

            await using (disposable.ConfigureAwait(false)) {
                Assert.IsFalse(disposable.IsDisposing);
                Assert.IsFalse(disposable.IsDisposed);
                await disposable.DoSomethingAsync();

                Assert.IsFalse(disposable.IsDisposing);
                Assert.IsFalse(disposable.IsDisposed);
            }

            Assert.IsFalse(disposable.IsDisposing);
            Assert.IsTrue(disposable.IsDisposed);

            await Assert.ThrowsExceptionAsync <ObjectDisposedException>(async() => await disposable.DoSomethingAsync());

            await disposable.DisposeAsync();
        }