public void ExecuteAllMessage_Basic()
        {
            var q = new EQueue <MyMessage>();

            for (var i = 0; i < 10; i++)
            {
                q.Enqueue(new MyMessage(i + 1));
            }
            var stateResults = q.ExecuteAllMessages();

            DS.Assert.AreEqual(DS.List(MessageExecution.Succeeded, MessageExecution.Succeeded, MessageExecution.Succeeded, MessageExecution.Succeeded, MessageExecution.Succeeded, MessageExecution.Succeeded, MessageExecution.Succeeded, MessageExecution.Succeeded, MessageExecution.Succeeded, MessageExecution.Succeeded), stateResults);

            Assert.AreEqual(00, q.Count);
            Assert.AreEqual(10, stateResults.Count);
            Assert.AreEqual(10, q.SucceededMessages.Count);
            Assert.AreEqual(00, q.FailedMessages.Count);
            Assert.AreEqual(00, q.FailedMessages.Count);

            for (var i = 0; i < 10; i++)
            {
                var m = q.SucceededMessages.Dequeue();
                Assert.AreEqual(MessageState.Processed, m.State);
                Assert.IsTrue(m.EndProcessed >= m.StartProcessed);
                Assert.IsTrue(m.Dequeued >= m.Queued);
            }
        }