public void ParseIncomingDataWithHeaderTest(int bytesTransfered) { _packetParser = new NetPacketParser(new DefaultNetPacketProcessor(includeHeader: true)); var token = new NetDataToken(); int numberOfReceivesNeeded = (_buffer.Length / bytesTransfered) + 1; var receviedMessages = new List <byte[]>(); for (int i = 0; i < numberOfReceivesNeeded; i++) { byte[] incomingBuffer = _buffer.Skip(i * bytesTransfered).Take(bytesTransfered).ToArray(); IEnumerable <byte[]> messages = _packetParser.ParseIncomingData(token, incomingBuffer, Math.Min(bytesTransfered, incomingBuffer.Length)); if (messages.Any()) { receviedMessages.AddRange(messages); } } Assert.Single(receviedMessages); string messageContent = Encoding.UTF8.GetString(_buffer); Assert.Equal(messageContent, Encoding.UTF8.GetString(receviedMessages.Single().ToArray())); }
public void ParseIncomingDataWithInvalidSizeTest() { _packetParser = new NetPacketParser(_packetProcessor); var token = new NetDataToken(); Assert.Throws <InvalidOperationException>(() => _packetParser.ParseIncomingData(token, _invalidBuffer, 32)); }
public NetPacketParserTests() { this._packetProcessor = new NetPacketProcessor(); this._packetParser = new NetPacketParser(this._packetProcessor); this._buffer = new List <int>(new[] { 16, 0, 0, 0, 12, 0, 0, 0, 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33 }).Select(x => (byte)x).ToArray(); this._bufferHeader = this._buffer.Take(this._packetProcessor.HeaderSize).ToArray(); this._bufferContent = this._buffer.Skip(this._packetProcessor.HeaderSize).ToArray(); this._bufferContentSize = this._bufferContent.Take(sizeof(int)).ToArray(); this._messageSize = BitConverter.ToInt32(this._bufferHeader); this._messageContentSize = BitConverter.ToInt32(this._bufferContentSize) + sizeof(int); // extra int size for string length this._messageContent = Encoding.UTF8.GetString(this._bufferContent.Skip(sizeof(int)).ToArray()); this._invalidBuffer = new List <int>(new[] { 255, 255, 255, 255, 12, 0, 0, 0, 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33 }).Select(x => (byte)x).ToArray(); }
/// <summary> /// Creates a new <see cref="NetReceiver"/> instance. /// </summary> /// <param name="packetProcessor">Default packet processor.</param> public NetReceiver(IPacketProcessor packetProcessor) { _packetParser = new NetPacketParser(packetProcessor); }
/// <summary> /// Creates a new <see cref="NetReceiver"/> instance. /// </summary> /// <param name="packetProcessor">Default packet processor.</param> public NetReceiver(IPacketProcessor packetProcessor) { this._packetParser = new NetPacketParser(packetProcessor); this._messageDispatcher = new NetMessageDispatcher(packetProcessor); }