public async Task CopyToTest_ReadBeforeCopy_CopiesAllData(bool copyAsynchronously, bool wrappedStreamCanSeek) { byte[] data = Enumerable.Range(0, 1000).Select(i => (byte)(i % 256)).ToArray(); var wrapped = new ManuallyReleaseAsyncOperationsStream(); wrapped.Release(); wrapped.Write(data, 0, data.Length); wrapped.Position = 0; wrapped.SetCanSeek(wrappedStreamCanSeek); var src = new BufferedStream(wrapped, 100); src.ReadByte(); var dst = new MemoryStream(); if (copyAsynchronously) { await src.CopyToAsync(dst); } else { src.CopyTo(dst); } var expected = new byte[data.Length - 1]; Array.Copy(data, 1, expected, 0, expected.Length); Assert.Equal(expected, dst.ToArray()); }
public async Task CopyToAsyncTest_ReadBeforeCopy_CopiesAllData(bool wrappedStreamCanSeek) { byte[] data = Enumerable.Range(0, 1000).Select(i => (byte)(i % 256)).ToArray(); var wrapped = new ManuallyReleaseAsyncOperationsStream(); wrapped.Release(); wrapped.Write(data, 0, data.Length); wrapped.Position = 0; wrapped.SetCanSeek(wrappedStreamCanSeek); var src = new BufferedStream(wrapped, 100); src.ReadByte(); var dst = new MemoryStream(); await src.CopyToAsync(dst); var expected = new byte[data.Length - 1]; Array.Copy(data, 1, expected, 0, expected.Length); Assert.Equal(expected, dst.ToArray()); }