public void SettingDisposableAfterDisposeCausesItToBeDisposed() { var subject = new MultipleAssignmentDisposable(); subject.Dispose(); var disposed = false; subject.Disposable = Disposable.Create(() => disposed = true); Assert.IsTrue(disposed); }
public void DisposesUnderlyingDisposableOnce() { var disposed = 0; var subject = new MultipleAssignmentDisposable {Disposable = Disposable.Create(() => ++disposed)}; Assert.AreEqual(0, disposed); for (var i = 0; i < 2; ++i) { subject.Dispose(); Assert.AreEqual(1, disposed); } }
public void ReplacingDisposableDoesNotCauseItToBeDisposed() { var first = 0; var subject = new MultipleAssignmentDisposable {Disposable = Disposable.Create(() => ++first)}; var second = 0; subject.Disposable = Disposable.Create(() => ++second); Assert.AreEqual(0, first); Assert.AreEqual(0, second); subject.Dispose(); Assert.AreEqual(0, first); Assert.AreEqual(1, second); }