public void dispose_of_managed_resources_is_called_only_once_under_exceptional_circumstances_when_explicitly_disposed()
{
var obj = new ThrowingDisposableObject();
Assert.Throws<Exception>(() => obj.Dispose());
Assert.Equal(1, obj.DisposeOfManagedResourcesCount);
Assert.DoesNotThrow(() => obj.Dispose());
Assert.Equal(1, obj.DisposeOfManagedResourcesCount);
}