mirror of
https://github.com/Azure/DotNetty.git
synced 2026-10-29 04:36:55 +08:00
76 lines
2.6 KiB
C#
76 lines
2.6 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 Xunit;
|
|
|
|
public class ByteBufferDerivationTests
|
|
{
|
|
[Fact]
|
|
public void Slice()
|
|
{
|
|
IByteBuffer buf = Unpooled.Buffer(8).SetIndex(1, 7);
|
|
IByteBuffer slice = buf.Slice(1, 7);
|
|
|
|
Assert.IsAssignableFrom<AbstractUnpooledSlicedByteBuffer>(slice);
|
|
Assert.Same(slice.Unwrap(), buf);
|
|
Assert.Equal(0, slice.ReaderIndex);
|
|
Assert.Equal(7, slice.WriterIndex);
|
|
Assert.Equal(7, slice.Capacity);
|
|
Assert.Equal(7, slice.MaxCapacity);
|
|
|
|
slice.SetIndex(1, 6);
|
|
Assert.Equal(1, buf.ReaderIndex);
|
|
Assert.Equal(7, buf.WriterIndex);
|
|
}
|
|
|
|
[Fact]
|
|
public void SliceOfSlice()
|
|
{
|
|
IByteBuffer buf = Unpooled.Buffer(8);
|
|
IByteBuffer slice = buf.Slice(1, 7);
|
|
IByteBuffer slice2 = slice.Slice(0, 6);
|
|
|
|
Assert.NotSame(slice2, slice);
|
|
Assert.IsAssignableFrom<AbstractUnpooledSlicedByteBuffer>(slice2);
|
|
Assert.Same(slice2.Unwrap(), buf);
|
|
Assert.Equal(6, slice2.WriterIndex);
|
|
Assert.Equal(6, slice2.Capacity);
|
|
}
|
|
|
|
[Fact]
|
|
public void Duplicate()
|
|
{
|
|
IByteBuffer buf = Unpooled.Buffer(8).SetIndex(1, 7);
|
|
IByteBuffer dup = buf.Duplicate();
|
|
|
|
Assert.IsAssignableFrom<UnpooledDuplicatedByteBuffer>(dup);
|
|
Assert.Same(dup.Unwrap(), buf);
|
|
Assert.Equal(dup.ReaderIndex, buf.ReaderIndex);
|
|
Assert.Equal(dup.WriterIndex, buf.WriterIndex);
|
|
Assert.Equal(dup.Capacity, buf.Capacity);
|
|
Assert.Equal(dup.MaxCapacity, buf.MaxCapacity);
|
|
|
|
dup.SetIndex(2, 6);
|
|
Assert.Equal(1, buf.ReaderIndex);
|
|
Assert.Equal(7, buf.WriterIndex);
|
|
}
|
|
|
|
[Fact]
|
|
public void DuplicateOfDuplicate()
|
|
{
|
|
IByteBuffer buf = Unpooled.Buffer(8).SetIndex(1, 7);
|
|
IByteBuffer dup = buf.Duplicate().SetIndex(2, 6);
|
|
IByteBuffer dup2 = dup.Duplicate();
|
|
|
|
Assert.NotSame(dup2, dup);
|
|
Assert.IsAssignableFrom<UnpooledDuplicatedByteBuffer>(dup2);
|
|
Assert.Same(dup2.Unwrap(), buf);
|
|
Assert.Equal(dup2.ReaderIndex, dup.ReaderIndex);
|
|
Assert.Equal(dup2.WriterIndex, dup.WriterIndex);
|
|
Assert.Equal(dup2.Capacity, dup.Capacity);
|
|
Assert.Equal(dup2.MaxCapacity, dup.MaxCapacity);
|
|
}
|
|
}
|
|
} |