コード例 #1
0
        public void VerifyAllObjectAreDisposedWhenManagerIsDisposed()
        {
            var manager = new DisposableObjectManager();

            var parent     = new ManagedDisposableObject();
            var child1     = new ManagedDisposableObject();
            var child2     = new ManagedDisposableObject();
            var child3     = new ManagedDisposableObject();
            var grandchild = new ManagedDisposableObject();

            manager.Register(parent);
            manager.RegisterAsDependent(child1, parent);
            manager.RegisterAsDependent(child2, parent);
            manager.RegisterAsDependent(child3, parent);
            manager.RegisterAsDependent(grandchild, child2);

            manager.Dispose();
            Assert.IsTrue(parent.WasDisposed);
            Assert.IsTrue(child1.WasDisposed);
            Assert.IsTrue(child2.WasDisposed);
            Assert.IsTrue(child3.WasDisposed);
            Assert.IsTrue(grandchild.WasDisposed);
        }
コード例 #2
0
        public void VerifyAllObjectAreDisposedWhenManagerIsDisposed()
        {
            var manager = new DisposableObjectManager();

            var parent = new ManagedDisposableObject();
            var child1 = new ManagedDisposableObject();
            var child2 = new ManagedDisposableObject();
            var child3 = new ManagedDisposableObject();
            var grandchild = new ManagedDisposableObject();

            manager.Register(parent);
            manager.RegisterAsDependent(child1, parent);
            manager.RegisterAsDependent(child2, parent);
            manager.RegisterAsDependent(child3, parent);
            manager.RegisterAsDependent(grandchild, child2);

            manager.Dispose();
            Assert.IsTrue(parent.WasDisposed);
            Assert.IsTrue(child1.WasDisposed);
            Assert.IsTrue(child2.WasDisposed);
            Assert.IsTrue(child3.WasDisposed);
            Assert.IsTrue(grandchild.WasDisposed);
        }