public void UnsubscribeDirectShouldUnregisterWorkerAndDeleteQueue()
        {
            // Given

            var queueSession         = new Mock <IMessageQueueSession>();
            var queueCommandExecutor = new Mock <IMessageQueueCommandExecutor>();
            var queueWorkerContainer = new Mock <IMessageQueueWorkerContainer>();

            queueCommandExecutor
            .Setup(m => m.Execute(It.IsAny <Action <IMessageQueueSession> >()))
            .Callback <Action <IMessageQueueSession> >(command => command(queueSession.Object));

            // When

            IExchangeDirectBinding target = new ExchangeBinding(ExchangeName, queueCommandExecutor.Object, queueWorkerContainer.Object);

            target.Unsubscribe(QueueName);

            // Then

            queueWorkerContainer.Verify(m => m.UnregisterWorker(QueueName));
            queueSession.Verify(m => m.DeleteQueue(QueueName));
        }