public void ShouldReturnMessageBackOnTheQueueWhenGlobalTrasactionScopeNotCompleted()
        {
            string actual = null;
            using (var scope = new TransactionScope(TransactionScopeOption.Required))
            {
                using (var consumer = new XmsTransactedConsumer(new XmsConsumer(destination, true)))
                {
                    var msg = (IBytesMessage) consumer.ReceiveNoWait();
                    actual = msg.ReadUTF();
                    Assert.That(msg, Is.Not.Null);
                }
            }

            Assert.That(actual, Is.EqualTo(expected));
            Assert.That(XmsUtilities.GetCurrentQueueDebth(destination), Is.EqualTo(1),
                        "Message should be returned back to the queue.");
        }
        public void ShouldRemoveMessageFromQueueWhenGlobalTrasactionScopeCompleteted()
        {
            string actual = null;

            using (var scope = new TransactionScope(TransactionScopeOption.Required))
            {
                using (var consumer = new XmsTransactedConsumer(new XmsConsumer(destination, true)))
                {
                    var msg = (IBytesMessage) consumer.ReceiveNoWait();
                    actual = msg.ReadUTF();
                    Assert.That(msg, Is.Not.Null);
                    scope.Complete();
                }
            }

            Assert.That(actual, Is.EqualTo(expected));
            Assert.That(XmsUtilities.GetCurrentQueueDebth(destination), Is.EqualTo(0), "Queue should be empty");
        }