public void ShouldCallOnDisposedVirtualMethodWhenDisposedOf()
        {
            var model = new ModelStub();
            model.DisposeOfManagedResourcesCount.ShouldBe(0);

            model.Dispose();
            model.DisposeOfManagedResourcesCount.ShouldBe(1);

            model.Dispose();
            model.Dispose();
            model.Dispose();
            model.DisposeOfManagedResourcesCount.ShouldBe(1);
        }
 public void ShouldDispose()
 {
     var model = new ModelStub();
     model.IsDisposed.ShouldBe(false);
     model.Dispose();
     model.IsDisposed.ShouldBe(true);
 }
        public void ShouldFireWhenDisposed()
        {
            var model = new ModelStub();

            var fireCount = 0;
            model.Disposed += delegate { fireCount++; };

            model.Dispose();
            fireCount.ShouldBe(1);

            // ---

            model.Dispose();
            model.Dispose();
            model.Dispose();
            fireCount.ShouldBe(1);
        }