Exemplo n.º 1
0
        [TestCase(Constants.KB + 11, 256)]         // content doesn't line up with buffers (extremely unlikely any array pool implementation will add exactly 11 bytes more than requested across 4 buffers)
        public async Task WriteStream(int dataSize, int bufferPartitionSize)
        {
            // Arrange
            byte[]             originalData       = GetRandomBuffer(dataSize);
            byte[]             readData           = new byte[dataSize];
            PooledMemoryStream pooledMemoryStream = new PooledMemoryStream(ArrayPool <byte> .Shared, 0, bufferPartitionSize);

            // Act
            await pooledMemoryStream.WriteAsync(originalData, 0, dataSize);

            pooledMemoryStream.Position = 0;
            await pooledMemoryStream.ReadAsync(readData, 0, dataSize);

            // Also testing that clear works.
            pooledMemoryStream.Clear();

            // Assert
            AssertSequenceEqual(originalData, readData);
            Assert.AreEqual(0, pooledMemoryStream.Position);
        }