示例#1
0
        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);
        }
示例#2
0
        public void ReleaseAsync_ShouldThrowIfTheObjectWasDisposed()
        {
            var obj = new DisposeByRefObject();

            Assert.That(obj.Release(), Is.EqualTo(0));
            Assert.ThrowsAsync <ObjectDisposedException>(async() => await obj.ReleaseAsync());
        }