public void AddRef_ShouldThrowIfTheObjectWasDisposed() { var obj = new DisposeByRefObject(); Assert.That(obj.Release(), Is.EqualTo(0)); Assert.Throws <ObjectDisposedException>(() => obj.AddRef()); }
public void AddRef_ShouldIncrementTheReferenceCount() { var obj = new DisposeByRefObject(); Assert.That(obj.RefCount, Is.EqualTo(1)); Assert.That(obj.AddRef(), Is.EqualTo(2)); Assert.That(obj.RefCount, Is.EqualTo(2)); }
public async Task ReleaseAsync_ShouldDisposeTheObjectIfRefCountReachesTheZero() { var obj = new DisposeByRefObject(); obj.AddRef(); Assert.That(obj.ReleaseAsync().Result, Is.EqualTo(1)); Assert.That(obj.Disposed, Is.False); Assert.That(await obj.ReleaseAsync(), Is.EqualTo(0)); Assert.That(obj.Disposed); }
public void Release_ShouldDisposeTheObjectIfRefCountReachesTheZero() { var obj = new DisposeByRefObject(); obj.AddRef(); Assert.That(obj.Release(), Is.EqualTo(1)); Assert.That(obj.Disposed, Is.False); Assert.That(obj.Release(), Is.EqualTo(0)); Assert.That(obj.Disposed); }