public void RabbitMq_EnqueueDirectTest()
        {
            var publisherSettings = GetConfig("publisher");
            var consumerSettings  = GetConfig("subscriber");

            // check if config exists
            Assert.NotNull(publisherSettings);
            Assert.NotNull(consumerSettings);

            IQueue queue = new RbmqQueue(new NullLoggerFactory(), publisherSettings, consumerSettings);

            queue.Clear();

            var msg = new QMessage();
            var o   = new DummyObject()
            {
                Id = 1000, Name = "blalbal"
            };

            msg.Body = o;

            queue.Enqueue(msg);

            var queueuMsg = queue.Dequeue <DummyObject>();

            Assert.NotNull(queueuMsg);

            queue.Cleanup();
        }
        public void RabbitMq_CleanupTest()
        {
            var publisherSettings = GetConfig("publisherFanout");
            var consumerSettings  = GetConfig("subscriberFanout");

            // check if config exists
            Assert.NotNull(publisherSettings);
            Assert.NotNull(consumerSettings);

            IQueue queue = new RbmqQueue(new NullLoggerFactory(), publisherSettings, consumerSettings);

            var msg = new QMessage();
            var o   = new DummyObject()
            {
                Id = 1000, Name = "blalbal"
            };

            msg.Body = o;
            queue.Clear();
            queue.Enqueue(msg);
            Thread.Sleep(3000);
            var a = queue.Dequeue <QMessage>();

            Assert.NotNull(a);
            var body = JsonConvert.DeserializeObject <DummyObject>(a.Body.ToString());

            Assert.True(body.Id == 1000);
            var ex = Assert.Catch(() => queue.Cleanup());

            Assert.Null(ex);
        }
        public void RabbitMq_EnqueueDirectWithProperties()
        {
            var publisherSettings = GetConfig("publisher");
            var consumerSettings  = GetConfig("subscriber");

            // check if config exists
            Assert.NotNull(publisherSettings);
            Assert.NotNull(consumerSettings);

            IQueue queue = new RbmqQueue(new NullLoggerFactory(), publisherSettings, consumerSettings);


            queue.Clear();

            var msg = new QMessage();

            msg.Body = new { Id = 1000, Name = "blabla" };

            msg.Properties = new QProperties()
            {
                CorrelationId = Guid.NewGuid().ToString(),
                ReplyTo       = "me"
            };

            queue.Enqueue(msg);

            var queueuMsg = queue.Dequeue <DummyObject>();

            Assert.NotNull(queueuMsg);
            Assert.True(msg.Properties.CorrelationId == queueuMsg.Properties.CorrelationId);
            Assert.True(msg.Properties.ReplyTo == queueuMsg.Properties.ReplyTo);

            queue.Cleanup();
        }
        public void RabbitMq_Subscribe()
        {
            var publisherSettings = GetConfig("publisherFanout");
            var consumerSettings  = GetConfig("subscriberFanout");

            // check if config exists
            Assert.NotNull(publisherSettings);
            Assert.NotNull(consumerSettings);

            IQueue cQueue = new RbmqQueue(new NullLoggerFactory(), consumerSettings, false);
            IQueue pQueue = new RbmqQueue(new NullLoggerFactory(), publisherSettings, true);

            cQueue.Clear();
            pQueue.Clear();


            var message = new QMessage()
            {
                Body       = "test",
                Properties = new QProperties()
                {
                    ReplyTo = "test"
                }
            };

            pQueue.Enqueue(message);

            QProperties    oProperties     = null;// = o.Properties;
            string         replyTo         = string.Empty;
            AutoResetEvent _autoResetEvent = new AutoResetEvent(false);
            QMessage       recievedMsg     = null;

            cQueue.MessageRecieved += (m, o) =>
            {
                cQueue.Unsubscribe();
                recievedMsg = o;
                oProperties = o.Properties;
                replyTo     = o.Properties.ReplyTo;
                _autoResetEvent.Set();
            };

            cQueue.Subscribe();


            Assert.True(_autoResetEvent.WaitOne(3000));
            Assert.NotNull(recievedMsg);

            //Assert.That(oProperties, Is.Not.Null);
            //Assert.That(replyTo, Is.EqualTo("test"));
        }
        public void RabbitMq_EnqueueFanout()
        {
            var publisherSettings = GetConfig("publisherFanout");
            var consumerSettings  = GetConfig("subscriberFanout");

            // check if config exists
            Assert.NotNull(publisherSettings);
            Assert.NotNull(consumerSettings);

            IQueue queue = new RbmqQueue(new NullLoggerFactory(), publisherSettings, consumerSettings);

            queue.PublisherSerializationSettings = new JsonSerializerSettings()
            {
                Formatting = Formatting.Indented
            };

            queue.ConsumerSerializationSettings = new JsonSerializerSettings()
            {
                Formatting = Formatting.Indented
            };

            var msg = new QMessage();
            var o   = new DummyObject()
            {
                Id = 1000, Name = "blalbal"
            };

            msg.Body = o;

            queue.Enqueue(msg);


            var a = queue.Dequeue <QMessage>();

            Assert.NotNull(a);
            var body = JsonConvert.DeserializeObject <DummyObject>(a.Body.ToString());

            Assert.True(body.Id == 1000);

            queue.Cleanup();
        }