public void Test_ProxyRequest() { // Ensures that we can serialize and deserialize request messages. ProxyRequest message; using (var stream = new MemoryStream()) { // Empty message. message = new ProxyRequest(); stream.SetLength(0); stream.Write(message.SerializeAsBytes(ignoreTypeCode: true)); stream.Seek(0, SeekOrigin.Begin); message = ProxyMessage.Deserialize <ProxyRequest>(stream, ignoreTypeCode: true); Assert.NotNull(message); Assert.Equal(0, message.ClientId); Assert.Equal(0, message.RequestId); Assert.False(message.IsCancellable); // Round-trip message.ClientId = 444; message.RequestId = 555; Assert.Equal(555, message.RequestId); message.IsCancellable = true; stream.SetLength(0); stream.Write(message.SerializeAsBytes(ignoreTypeCode: true)); stream.Seek(0, SeekOrigin.Begin); message = ProxyMessage.Deserialize <ProxyRequest>(stream, ignoreTypeCode: true); Assert.NotNull(message); Assert.Equal(444, message.ClientId); Assert.Equal(555, message.RequestId); Assert.True(message.IsCancellable); // Clone() message = (ProxyRequest)message.Clone(); Assert.NotNull(message); Assert.Equal(444, message.ClientId); Assert.Equal(555, message.RequestId); Assert.True(message.IsCancellable); } }