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); }
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); }