public IMessage CreateNewMessage(string label = null)
        {
            string identifier;

            lock (_service)
            {
                identifier = $"{ReplySession.Substring(0, 1)}{ReplySession.Substring(ReplySession.Length - 1)}_{new string((char) ('A' + (_service.MessageCounter % 25)), 1)}";
                _service.MessageCounter++;
            }
            var retVal = new MockMessage
            {
                Identifier = identifier,
                Label      = label
            };

            SetReplyAddress(retVal);
            return(retVal);
        }
        public IMessage CloneMessage(IMessage message)
        {
            var clone = new MockMessage
            {
                Identifier     = message.Identifier,
                Body           = message.Body,
                BodyType       = message.BodyType,
                Label          = message.Label,
                ReplyToEntity  = message.ReplyToEntity,
                ReplyToSession = message.ReplyToSession,
                ResponseTo     = message.ResponseTo,
                TargetSession  = message.TargetSession,
                TimeToLive     = message.TimeToLive,
                To             = message.To
            };

            clone.CopyPropertiesFrom(message);
            return(clone);
        }