public static async Task <ResponseStreamHolder> CreateAsync(DisposableBox <HttpResponseMessage> responseBox) { using DisposableBox <ResponseStreamHolder> holderBox = new(new(responseBox.Release())); holderBox.Value.Stream = await holderBox.Value._response.Content.ReadAsStreamAsync().ConfigureAwait(false); return(holderBox.Release()); }
public void Construct_Null() { using (var box = new DisposableBox <TestDisposable>(null)) { box.Object.Should().BeNull(); box.IsOwned.Should().BeFalse(); // null can't be owned } }
public void Construct_Default() { using (var box = new DisposableBox <TestDisposable>()) { box.Object.Should().BeNull(); box.IsOwned.Should().BeFalse(); } }
public void Dispose_Null() { var box = new DisposableBox <TestDisposable>(null); box.Dispose(); box.Invoking(b => { var _ = b.Object; }).Should().Throw <ObjectDisposedException>(); box.Invoking(b => { var _ = b.IsOwned; }).Should().Throw <ObjectDisposedException>(); }
public void Set_NullToNull() { using (var box = new DisposableBox <TestDisposable>()) { box.Set(null); box.Object.Should().BeNull(); box.IsOwned.Should().BeFalse(); } }
public void Take_Disposed() { var obj = new TestDisposable(); var box = new DisposableBox <TestDisposable>(); box.Dispose(); box.Invoking(b => b.Take()) .Should().Throw <ObjectDisposedException>(); }
public void Set_Disposed() { var obj = new TestDisposable(); var box = new DisposableBox <TestDisposable>(); box.Dispose(); box.Invoking(b => b.Set(obj, owned: false)) .Should().Throw <ObjectDisposedException>(); }
public void Construct_NotOwned() { var obj = new TestDisposable(); using (var box = new DisposableBox <TestDisposable>(obj, owned: false)) { box.Object.Should().BeSameAs(obj); box.IsOwned.Should().BeFalse(); } obj.IsDisposed.Should().BeFalse(); }
public void Dispose_NotOwned() { var obj = new TestDisposable(); var box = new DisposableBox <TestDisposable>(obj, owned: false); box.Dispose(); box.Invoking(b => { var _ = b.Object; }).Should().Throw <ObjectDisposedException>(); box.Invoking(b => { var _ = b.IsOwned; }).Should().Throw <ObjectDisposedException>(); obj.IsDisposed.Should().BeFalse(); }
public void Dispose_Owned_Twice() { var obj = new TestDisposable(); var box = new DisposableBox <TestDisposable>(obj); box.Dispose(); box.Dispose(); box.Invoking(b => { var _ = b.Object; }).Should().Throw <ObjectDisposedException>(); box.Invoking(b => { var _ = b.IsOwned; }).Should().Throw <ObjectDisposedException>(); obj.IsDisposed.Should().BeTrue(); }
public void Clear_Owned() { var obj = new TestDisposable(); using (var box = new DisposableBox <TestDisposable>(obj)) { box.Clear(); obj.IsDisposed.Should().BeTrue(); box.Object.Should().BeNull(); box.IsOwned.Should().BeFalse(); // null can't be owned } }
public void Set_NotOwnedToNull() { var obj = new TestDisposable(); using (var box = new DisposableBox <TestDisposable>(obj, owned: false)) { box.Set(null); obj.IsDisposed.Should().BeFalse(); box.Object.Should().BeNull(); box.IsOwned.Should().BeFalse(); // null can't be owned } }
public void Set_NullToOwned() { var obj = new TestDisposable(); using (var box = new DisposableBox <TestDisposable>()) { box.Set(obj); obj.IsDisposed.Should().BeFalse(); box.Object.Should().BeSameAs(obj); box.IsOwned.Should().BeTrue(); } obj.IsDisposed.Should().BeTrue(); }
public void Take_NotOwned() { var obj = new TestDisposable(); using (var box = new DisposableBox <TestDisposable>(obj, owned: false)) { box.Take().Should().BeSameAs(obj); obj.IsDisposed.Should().BeFalse(); box.Object.Should().BeNull(); box.IsOwned.Should().BeFalse(); // null can't be owned } obj.IsDisposed.Should().BeFalse(); }
public void Set_OwnedToDifferentNotOwned() { var objA = new TestDisposable(); var objB = new TestDisposable(); using (var box = new DisposableBox <TestDisposable>(objA)) { box.Set(objB, owned: false); objA.IsDisposed.Should().BeTrue(); objB.IsDisposed.Should().BeFalse(); box.Object.Should().BeSameAs(objB); box.IsOwned.Should().BeFalse(); } objB.IsDisposed.Should().BeFalse(); }