public void CanDisposeWithUsings()
 {
   using(var myObject = new TestClass())
   {
     myObject.Should().NotBeNull();
   }
 }
 public void IsDisposedIsFalseByDefault()
 {
   var myObject = new TestClass();
   myObject.Should().NotBeNull();
   myObject.IsDisposed.Should().BeFalse();
   //Assert.False(myObject.IsDisposed);
 }
 public void DisposesManagedResources()
 {
   bool disposedManagedResources = false;
   using(var myObject = new TestClass() {CalledWhenManagedResourcesDisposed = () => disposedManagedResources = true})
   {
     disposedManagedResources.Should().BeFalse();
     myObject.Should().NotBeNull();
   }
   disposedManagedResources.Should().BeTrue();
 }
 public void IsDisposedReflectsState()
 {
   var myObject = new TestClass();
   myObject.Should().NotBeNull();
   myObject.IsDisposed.Should().BeFalse();
   myObject.Dispose();
   myObject.IsDisposed.Should().BeTrue();
 }
 public void CanDisposeExplictly()
 {
   var myObject = new TestClass();
   myObject.Should().NotBeNull();
   myObject.Dispose();
 }
 public void IsDerivedFromAbstractDisposable()
 {
   var myObject = new TestClass();
   myObject.Should().NotBeNull();
   myObject.Should().BeAssignableTo<AbstractDisposable>();
 }
 public void IsDerivedFromIDisposable2()
 {
   var myObject = new TestClass();
   myObject.Should().NotBeNull();
   myObject.Should().BeAssignableTo<IDisposable2>();
 }