public void MultiplePackets_1ByteLen_ProcessesMultipleInSingleInvocation() { var decoder = new GameMessageDecoder(); var channel = new EmbeddedChannel(decoder); var buffer = Unpooled.Buffer(); const int packetCount = 10; for (var i = 0; i < packetCount; i++) { buffer.WriteBytes(RequestSession); } channel.WriteInbound(buffer); for (var i = 0; i < packetCount; i++) { var packet = channel.ReadInbound <IByteBuffer>(); Assert.NotNull(packet); Assert.Equal(1, packet.ReaderIndex); Assert.Equal(1, packet.ReadableBytes); Assert.Equal(1, packet.GetPayloadLength()); Assert.Equal(32, packet.GetOpcode()); Assert.Equal(55, packet.ReadByte()); Assert.Equal(1, packet.ReferenceCount); // TODO: Switch this back to expected=packetCount } // Verify that there are no more results (there shouldn't be at this point). Assert.Null(channel.ReadInbound <IByteBuffer>()); }
public void GameMessageDecoderIsNotSharable() { var decoder = new GameMessageDecoder(); // DotNetty does not allow sharing of these pipeline items. Assert.False(decoder.IsSharable); }
public void DotNettyDoesNotDecreaseReferenceCount() { var decoder = new GameMessageDecoder(); var channel = new EmbeddedChannel(decoder); var buffer = Unpooled.Buffer(); buffer.WriteBytes(RequestSession); var startingRefCount = buffer.ReferenceCount; channel.WriteInbound(buffer); var result = channel.ReadInbound <IByteBuffer>(); Assert.NotNull(result); Assert.Equal(0, buffer.ReadableBytes); Assert.Equal(startingRefCount, result.ReferenceCount); }
public void MultiplePackets_1ByteLen_ReadsAllBytesFromUnderlyingBuffer() { var decoder = new GameMessageDecoder(); var channel = new EmbeddedChannel(decoder); var buffer = Unpooled.Buffer(); const int packetCount = 10; for (var i = 0; i < packetCount; i++) { buffer.WriteBytes(RequestSession); } channel.WriteInbound(buffer); Assert.Equal(0, buffer.ReadableBytes); }