public void VerifyMessageIsCleared()
        {
            var msgData = Log.SerializeLog(CreateLog());
            var data = Message.CreateMessageByte(msgData, MessageTypes.SendLog);
            var target = new ReceiveStateObject();
            Buffer.BlockCopy(data, 0, target.Buffer, 0, data.Length);
            var ret = target.AppendBuffer(data.Length);
            Assert.That(ret, Is.GreaterThanOrEqualTo(0));
            Assert.That(target.Status, Is.EqualTo(ReceiveStatuses.Finished));
            Assert.That(data, Is.SubsetOf(target.Buffer));

            target.Clear();
            Assert.That(target.Status, Is.EqualTo(ReceiveStatuses.Receiving));
            Assert.That(target.Data, Is.Null);
        }
        public void VerifyMessageIsCreate_TwoMessages_OneBuffer()
        {
            var msgData1 = Log.SerializeLog(CreateLog());
            var data1 = Message.CreateMessageByte(msgData1, MessageTypes.SendLog);
            var msgData2 = Log.SerializeLog(CreateLog());
            var data2 = Message.CreateMessageByte(msgData2, MessageTypes.SendLog);
            var target = new ReceiveStateObject();
            Buffer.BlockCopy(data1, 0, target.Buffer, 0, data1.Length);
            Buffer.BlockCopy(data2, 0, target.Buffer, data1.Length, data2.Length);
            var ret = target.AppendBuffer(data1.Length + data2.Length);
            Assert.That(ret, Is.GreaterThanOrEqualTo(0));
            Assert.That(target.Status, Is.EqualTo(ReceiveStatuses.Finished));
            Assert.That(target.Data, Is.EquivalentTo(msgData1));

            target.Clear();
            ret = target.AppendBuffer(data1.Length + data2.Length, ret);
            Assert.That(ret, Is.GreaterThanOrEqualTo(0));
            Assert.That(target.Status, Is.EqualTo(ReceiveStatuses.Finished));
            Assert.That(msgData2, Is.EquivalentTo(target.Data));
        }