public void FutureDisposable_DisposeAfterSet() { var disposed = false; var d = new MutableDisposable(); var dd = Disposable.Create(() => { disposed = true; }); d.Disposable = dd; Assert.AreSame(dd, d.Disposable); Assert.IsFalse(disposed); d.Dispose(); Assert.IsTrue(disposed); d.Dispose(); Assert.IsTrue(disposed); }
public void FutureDisposable_DisposeBeforeSet() { var disposed = false; var d = new MutableDisposable(); var dd = Disposable.Create(() => { disposed = true; }); Assert.IsFalse(disposed); d.Dispose(); Assert.IsFalse(disposed); d.Disposable = dd; Assert.IsNull(d.Disposable); // CHECK! Assert.IsTrue(disposed); d.Dispose(); Assert.IsTrue(disposed); }
public void FutureDisposable_SetNull() { var d = new MutableDisposable(); d.Disposable = null; }
public void MutableDisposable_Dispose() { var disp = false; var m = new MutableDisposable(); var d = Disposable.Create(() => { disp = true; }); m.Disposable = d; Assert.AreSame(d, m.Disposable); Assert.IsFalse(disp); m.Dispose(); Assert.IsTrue(disp); Assert.IsNull(m.Disposable); }
public void MutableDisposable_ReplaceAfterDispose() { var disp1 = false; var disp2 = false; var m = new MutableDisposable(); m.Dispose(); var d1 = Disposable.Create(() => { disp1 = true; }); m.Disposable = d1; Assert.IsNull(m.Disposable); // CHECK Assert.IsTrue(disp1); var d2 = Disposable.Create(() => { disp2 = true; }); m.Disposable = d2; Assert.IsNull(m.Disposable); // CHECK Assert.IsTrue(disp2); }
public void MutableDisposable_ReplaceBeforeDispose() { var disp1 = false; var disp2 = false; var m = new MutableDisposable(); var d1 = Disposable.Create(() => { disp1 = true; }); m.Disposable = d1; Assert.AreSame(d1, m.Disposable); Assert.IsFalse(disp1); var d2 = Disposable.Create(() => { disp2 = true; }); m.Disposable = d2; Assert.AreSame(d2, m.Disposable); Assert.IsTrue(disp1); Assert.IsFalse(disp2); }
public void MutableDisposable_Ctor_Prop() { var m = new MutableDisposable(); Assert.IsNull(m.Disposable); }