public async void CopyDataAsync_NonReadableSource_ThrowsNotSupportedException() { var sourceStream = CreateFakeWriteOnlyStream(); var destinationStream = CreateFakeWriteOnlyStream(); async Task copyAction() { _ = await StreamCopyDataExtensions.CopyDataAsync(sourceStream, destinationStream, 1, cancellationToken : CancellationToken.None); } _ = await Assert.ThrowsAsync <NotSupportedException>(copyAction); }
public async void CopyDataAsync_NullDestination_ThrowsArgumentNullException() { var sourceStream = CreateFakeReadOnlyStream(); var destinationStream = CreateNullStream(); async Task copyAction() { _ = await StreamCopyDataExtensions.CopyDataAsync(sourceStream, destinationStream, 1, cancellationToken : CancellationToken.None); } _ = await Assert.ThrowsAsync <ArgumentNullException>(copyAction); }
public async void CopyDataAsync_ZeroNegativeBufferSize_ThrowsArgumentOutOfRangeException(int bufferSize) { var sourceStream = CreateFakeReadOnlyStream(); var destinationStream = CreateFakeWriteOnlyStream(); async Task copyAction() { _ = await StreamCopyDataExtensions.CopyDataAsync(sourceStream, destinationStream, bufferSize); } _ = await Assert.ThrowsAsync <ArgumentOutOfRangeException>(copyAction); }
public async void CopyDataAsync_CorrectArguments_CopiesData(byte[] sourceArray, long copyLimit, long expectedCopyCount, byte[] expectedDestinationArray) { await using var sourceStream = new MemoryStream(sourceArray, false); await using var destinationStream = new MemoryStream(); var copyCount = await StreamCopyDataExtensions.CopyDataAsync(sourceStream, destinationStream, copyLimit); var destinationArray = destinationStream.ToArray(); Assert.Equal(expectedCopyCount, copyCount); Assert.Equal(expectedDestinationArray, destinationArray); }