mirror of
https://github.com/Azure/DotNetty.git
synced 2026-10-27 20:02:06 +08:00
35 lines
1.3 KiB
C#
35 lines
1.3 KiB
C#
// Copyright (c) Microsoft. All rights reserved.
|
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
|
|
namespace DotNetty.Buffers.Tests
|
|
{
|
|
using System;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using DotNetty.Common.Utilities;
|
|
using Xunit;
|
|
|
|
public class UnpooledWriteStreamTests
|
|
{
|
|
[Fact]
|
|
public async Task WriteBytesAsyncPartialWrite()
|
|
{
|
|
const int CopyLength = 200 * 1024;
|
|
const int SourceLength = 300 * 1024;
|
|
const int BufferCapacity = 400 * 1024;
|
|
|
|
var bytes = new byte[SourceLength];
|
|
var random = new Random(Guid.NewGuid().GetHashCode());
|
|
random.NextBytes(bytes);
|
|
|
|
IByteBuffer buffer = Unpooled.Buffer(BufferCapacity);
|
|
int initialWriterIndex = buffer.WriterIndex;
|
|
using (var stream = new PortionedMemoryStream(bytes, Enumerable.Repeat(1, int.MaxValue).Select(_ => random.Next(1, 10240))))
|
|
{
|
|
await buffer.WriteBytesAsync(stream, CopyLength);
|
|
}
|
|
Assert.Equal(CopyLength, buffer.WriterIndex - initialWriterIndex);
|
|
Assert.True(ByteBufferUtil.Equals(Unpooled.WrappedBuffer(bytes.Slice(0, CopyLength)), buffer));
|
|
}
|
|
}
|
|
} |