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 ReleaseAsync_ShouldThrowIfTheObjectWasDisposed() { var obj = new DisposeByRefObject(); Assert.That(obj.Release(), Is.EqualTo(0)); Assert.ThrowsAsync <ObjectDisposedException>(async() => await obj.ReleaseAsync()); }