Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 public void FutureDisposable_SetNull()
 {
     var d = new MutableDisposable();
     d.Disposable = null;
 }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
 public void MutableDisposable_Ctor_Prop()
 {
     var m = new MutableDisposable();
     Assert.IsNull(m.Disposable);
 }