public void SendCommandAddsValueToDestinationQueue(string queueName, string message)
        {
            // Arrange
            var context    = new Mock <TestBusContext>();
            var dictionary = new Dictionary <string, TestBusQueueWrapper <CommandMessage> >();

            context.SetupGet(e => e.CommandQueues)
            .Returns(dictionary);

            dictionary[queueName] = new TestBusQueueWrapper <CommandMessage>();

            var sender  = new TestCommandSender(context.Object);
            var request = new CommandMessage
            {
                DestinationQueue = queueName,
                ReplyQueue       = "reply.queue",
                CorrelationId    = Guid.Empty,
                Body             = Encoding.Unicode.GetBytes(message)
            };

            // Act
            sender.SendCommandAsync(request);

            Thread.Sleep(WaitTime);

            // Assert
            Assert.IsTrue(dictionary.ContainsKey(queueName));
            dictionary[queueName].Queue.TryDequeue(out var result);
            Assert.AreEqual(message, Encoding.Unicode.GetString(result.Body));
        }
        public void SendCommandCreatesReplyQueue()
        {
            // Arrange
            var context    = new Mock <TestBusContext>();
            var dictionary = new Dictionary <string, TestBusQueueWrapper <CommandMessage> >();

            context.SetupGet(e => e.CommandQueues)
            .Returns(dictionary);

            var sender  = new TestCommandSender(context.Object);
            var request = new CommandMessage
            {
                DestinationQueue = "destination.queue",
                CorrelationId    = Guid.Empty
            };

            // Act
            sender.SendCommandAsync(request);

            Thread.Sleep(WaitTime);

            // Assert
            Assert.AreEqual(1, dictionary.Keys.Count);
        }