Exemplo n.º 1
0
        public void Queue_Manager_Test()
        {
            var clientManager = new PooledRedisClientManager();

            clientManager.GetClient().FlushDb();
            var manager       = new QueueManager(new JsonSerializer(), clientManager, new QueueKeyNameProvider(false));
            var messageMapper = new MessageMapper();

            messageMapper.Initialize(new[] { typeof(TestMessage), typeof(TestEvent) });

            var nsbSerializer = new JsonMessageSerializer(messageMapper);

            var message = new TestMessage()
            {
                Name = "Bob"
            };

            var transportMessage = new TransportMessage()
            {
                Id            = Guid.NewGuid().ToString("N"),
                MessageIntent = MessageIntentEnum.Send,
                Headers       = new Dictionary <string, string>()
            };

            transportMessage.Headers["NServiceBus.FailedQ"] = "original";

            using (var ms = new MemoryStream())
            {
                nsbSerializer.Serialize(new[] { message }, ms);
                transportMessage.Body = ms.ToArray();
            }

            var errorAddress = Address.Parse("error");

            manager.SendMessageToQueue(transportMessage, errorAddress);

            var messageCount = manager.GetMessageCount(errorAddress);

            var messages = manager.GetAllMessages(errorAddress);

            Assert.IsTrue(messages.Count == 1);
            Assert.IsTrue(messages[0].Id == transportMessage.Id);

            Assert.IsTrue(messageCount == 1);

            var queues = manager.GetAllQueues();

            Assert.IsTrue(queues.Count == 1);

            manager.ReturnAllMessagesToSourceQueue(errorAddress);

            var queues2 = manager.GetAllQueues();

            Assert.IsTrue(queues2.Count(o => o.Queue == "original") > 0);

            manager.DeleteQueue(Address.Parse("original"));

            var queues3 = manager.GetAllQueues();

            Assert.IsTrue(queues3.Count == 0);
        }
Exemplo n.º 2
0
 public void SendMessage(TestMessage message)
 {
     _output.WriteLine(message.Message);
 }