public void Test_TryDispose_concurrency() { foreach (var round in Enumerable.Range(0, 1000)) { var d1 = new SensitiveDisposable(); var d2 = new SensitiveDisposable(); var d = ImmutableCompositeDisposable.Create(d1, d2); BooleanDisposableTestHelper.TestTryDisposeExecuteAtMostOnce(d); d1.IsDisposed.Is(true); d2.IsDisposed.Is(true); } }
public void Test_TryDispose() { var d1 = new SensitiveDisposable(); var d2 = new SensitiveDisposable(); var d = ImmutableCompositeDisposable.Create(d1, d2); d.IsDisposed.Is(false); d.TryDispose().Is(true); d.IsDisposed.Is(true); d1.IsDisposed.Is(true); d2.IsDisposed.Is(true); d.TryDispose().Is(false); }
public void Test_variadic() { var d1 = new SensitiveDisposable(); var d2 = new SensitiveDisposable(); var d3 = new SensitiveDisposable(); var d4 = new SensitiveDisposable(); var d5 = new SensitiveDisposable(); var d6 = new SensitiveDisposable(); var it = ImmutableCompositeDisposable.Create(d1, d2, d3, d4, d5, d6); it.IsDisposed.Is(false); it.TryDispose().Is(true); new[] { d1, d2, d3, d4, d5, d6 }.All(d => d.IsDisposed).Is(true); }