public void SendingNetworkMessage() { WriteOnlyMemoryStream writeOnlyMemoryStream = new WriteOnlyMemoryStream(); TcpAdapter tcpAdapter = new TcpAdapter(writeOnlyMemoryStream, null); tcpAdapter.Start(); // ConnectServerRequest from TCP Adapter. ConnectServerRequest connectServerRequest = new ConnectServerRequest( NetworkMessage.EventType_ConnectServer, BitConverter.ToUInt32(BytesUtils.HexStringToByteArray("1289 CB79"), 0), 'A', new char[] { 'h', 'e', 'l', 'l', 'o' }, new char[] { 'p', 'a', 's', 's', '!' }); tcpAdapter.Send(connectServerRequest); // Wait data conversion. Thread.Sleep(200); byte[] raw_request = writeOnlyMemoryStream.buffer; Assert.AreEqual(BytesUtils.Slice(raw_request, 0, 2), BytesUtils.HexStringToByteArray("0005")); Assert.AreEqual(BytesUtils.Slice(raw_request, 2, 4), BytesUtils.HexStringToByteArray("1289 CB79")); Assert.AreEqual(BitConverter.ToString(raw_request, 6, 256), "hello"); Assert.AreEqual(BitConverter.ToString(raw_request, 262, 256), "pass!"); }
public static void WriteUInt32(uint value, WriteOnlyMemoryStream output) { while ((value & 0xFFFFFF80) != 0) { output.WriteByte((byte)((value & 0x7F) | 0x80)); value >>= 7; } output.WriteByte((byte)(value & 0x7F)); }
public void UInt_WrittenAsVarint_IsSameUInt_When_ReadedBack() { Prop.ForAll<uint>(num => { using (var wms = new WriteOnlyMemoryStream()) { Varint.WriteUInt32(num, wms); var varintBytes = wms.ToArray(); using (var ms = new ReadOnlyMemoryStream(varintBytes)) { var readed = Varint.ReadUInt32(ms); return readed == num; } } }).QuickCheckThrowOnFailure(); }
public void UInt_WrittenAsVarint_IsSameUInt_When_ReadedBack() { Prop.ForAll <uint>(num => { using (var wms = new WriteOnlyMemoryStream()) { Varint.WriteUInt32(num, wms); var varintBytes = wms.ToArray(); using (var ms = new ReadOnlyMemoryStream(varintBytes)) { var readed = Varint.ReadUInt32(ms); return(readed == num); } } }).QuickCheckThrowOnFailure(); }