Exemple #1
0
        public async Task DisposablesWillDisposeIAsyncDisposable()
        {
            var disposed    = false;
            var disposables = new DisposablesFeature();

            var asyncDisposable = new TestAsyncDisposableClass(() =>
            {
                disposed = true;
            });

            disposables.RegisterForDisposeAsync(asyncDisposable);
            await disposables.DisposeAsync();

            Assert.True(disposed);
        }
Exemple #2
0
        public async Task DisposeDisposablesWillClearRegisteredAsyncDisposables()
        {
            var disposedCount = 0;
            var disposables   = new DisposablesFeature();

            var asyncDisposable = new TestAsyncDisposableClass(() =>
            {
                disposedCount++;
            });

            disposables.RegisterForDisposeAsync(asyncDisposable);

            // call two times.
            await disposables.DisposeAsync();

            await disposables.DisposeAsync();

            Assert.Equal(1, disposedCount);
        }