public async Task CompleteTaskOnCloseStream_Dispose_CompletesTaskButDoNotDisposeInnerStream() { // Arrange Mock <Stream> mockInnerStream = new Mock <Stream>() { CallBase = true }; TaskCompletionSource <bool> serializeToStreamTask = new TaskCompletionSource <bool>(); MockCompleteTaskOnCloseStream mockStream = new MockCompleteTaskOnCloseStream(mockInnerStream.Object, serializeToStreamTask); // Act mockStream.Dispose(); // Assert mockInnerStream.Protected().Verify("Dispose", Times.Never(), true); Assert.Equal(TaskStatus.RanToCompletion, serializeToStreamTask.Task.Status); Assert.True(await serializeToStreamTask.Task); }
public void CompleteTaskOnCloseStream_Dispose_CompletesTaskAndClosesInnerStream() { // Arrange Mock <Stream> mockInnerStream = new Mock <Stream>() { CallBase = true }; TaskCompletionSource <bool> serializeToStreamTask = new TaskCompletionSource <bool>(); MockCompleteTaskOnCloseStream mockStream = new MockCompleteTaskOnCloseStream(mockInnerStream.Object, serializeToStreamTask); // Act mockStream.Dispose(); // Assert mockInnerStream.Protected().Verify("Dispose", Times.Once(), true); Assert.Equal(TaskStatus.RanToCompletion, serializeToStreamTask.Task.Status); Assert.True(serializeToStreamTask.Task.Result); }
public void NonClosingDelegatingStream_Close_CompletesTaskButDoNotCloseInnerStream() { // Arrange Mock <Stream> mockInnerStream = new Mock <Stream>() { CallBase = true }; TaskCompletionSource <bool> serializeToStreamTask = new TaskCompletionSource <bool>(); MockCompleteTaskOnCloseStream mockStream = new MockCompleteTaskOnCloseStream(mockInnerStream.Object, serializeToStreamTask); // Act mockStream.Close(); // Assert mockInnerStream.Protected().Verify("Dispose", Times.Never(), true); mockInnerStream.Verify(s => s.Close(), Times.Never()); Assert.Equal(TaskStatus.RanToCompletion, serializeToStreamTask.Task.Status); Assert.True(serializeToStreamTask.Task.Result); }
public void CompleteTaskOnCloseStream_Dispose_CompletesTaskButDoNotCloseInnerStream() { // Arrange Mock<Stream> mockInnerStream = new Mock<Stream>() { CallBase = true }; TaskCompletionSource<bool> serializeToStreamTask = new TaskCompletionSource<bool>(); MockCompleteTaskOnCloseStream mockStream = new MockCompleteTaskOnCloseStream(mockInnerStream.Object, serializeToStreamTask); // Act mockStream.Dispose(); // Assert mockInnerStream.Protected().Verify("Dispose", Times.Never(), true); mockInnerStream.Verify(s => s.Close(), Times.Never()); Assert.Equal(TaskStatus.RanToCompletion, serializeToStreamTask.Task.Status); Assert.True(serializeToStreamTask.Task.Result); }