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)); }