public void Send2WithLabelWithTransaction()
        {
            String       label1 = "label1";
            String       label2 = "label2";
            Message      sent1  = new Message("Message 1", new BinaryMessageFormatter());
            Message      sent2  = new Message("Message 2", new BinaryMessageFormatter());
            MessageQueue mq     = MQUtil.GetQueue(MQUtil.CreateQueueName(), true);

            mq.MessageReadPropertyFilter.SetAll();
            Assert.IsTrue(mq.Transactional, "Message Queue should be transactional");
            using (MessageQueueTransaction tx = new MessageQueueTransaction()) {
                tx.Begin();

                mq.Send(sent1, label1, tx);
                mq.Send(sent2, label2, tx);

                tx.Commit();

                Message received1 = mq.Receive();
                Assert.IsNotNull(received1.TransactionId, "TransactionId not set");
                Message received2 = mq.Receive();
                Assert.IsNotNull(received2.TransactionId, "TransactionId not set");

                Assert.AreEqual(received1.TransactionId, received2.TransactionId, "Messages have differing TransactionIds");
                Assert.IsTrue(received1.TransactionId.Length > 1);
                Assert.AreEqual(sent1.Body, received1.Body, "Message 1 not delivered correctly");
                Assert.AreEqual(sent2.Body, received2.Body, "Message 2 not delivered correctly");
                Assert.AreEqual(label1, received1.Label, "Label 1 not passed correctly");
                Assert.AreEqual(label2, received2.Label, "Label 2 not passed correctly");
            }
        }
        public void ReceiveWithTransactionTypeAndTimeoutFailure()
        {
            MessageQueue mq = MQUtil.GetQueue(MQUtil.CreateQueueName(), true);

            Assert.IsTrue(mq.Transactional, "Message Queue should be transactional");
            Message received1 = mq.Receive(new TimeSpan(0, 0, 2), MessageQueueTransactionType.Single);
        }
        public void SendReceiveBinaryMessage()
        {
            MessageQueue mq = MQUtil.GetQueue();
            String       s  = "Test: " + DateTime.Now;
            Message      m  = new Message(s, new BinaryMessageFormatter());

            m.CorrelationId = Guid.NewGuid() + "\\0";
            mq.MessageReadPropertyFilter.SetAll();

            mq.Send(m);

            Message m2 = mq.Receive();

            m2.Formatter = new BinaryMessageFormatter();
            Assert.AreEqual(s, m2.Body);

            //Assert.IsTrue (DateTime.MinValue == m.ArrivedTime);
            Assert.IsNotNull(m2.Id, "Id is null");
            Assert.IsTrue(Guid.Empty.ToString() != m2.Id, "Id is Empty");
            Assert.IsTrue(DateTime.MinValue != m2.ArrivedTime, "Arrived Time is not set");
            Assert.AreEqual(Acknowledgment.None, m2.Acknowledgment, "Acknowledgment");
            Assert.AreEqual(m.CorrelationId, m2.CorrelationId, "CorrelationId not set properly");
            Assert.IsTrue(0 != m2.SenderVersion);
            // TODO: This is not supported on a workgroup installation.
            //Assert.IsNotNull (m2.SourceMachine, "SourceMachine is null");
            Assert.AreEqual(mq.QueueName, m2.DestinationQueue.QueueName, "Destination Queue not set");

            mq.Close();
        }
        public void SendBinaryMessage()
        {
            Thingy body = new Thingy();

            body.MyProperty1 = 42;
            body.MyProperty2 = "Something";
            body.MyProperty3 = "Something else";
            Message m1 = new Message(body);

            m1.Formatter = new BinaryMessageFormatter();

            MessageQueue q = MQUtil.GetQueue();

            q.Send(m1);

            Message m2 = q.Receive();

            m2.Formatter = new BinaryMessageFormatter();
            Assert.IsNotNull(m2.Formatter);
            Assert.AreEqual(typeof(BinaryMessageFormatter), m2.Formatter.GetType());
            Thingy body2 = (Thingy)m2.Formatter.Read(m2);

            Assert.AreEqual(body.MyProperty1, body2.MyProperty1);
            Assert.AreEqual(body.MyProperty2, body2.MyProperty2);
            Assert.AreEqual(body.MyProperty3, body2.MyProperty3);
        }
        public void SendDefaultMessage()
        {
            string path = MQUtil.CreateQueueName();
            Thingy body = new Thingy();

            body.MyProperty1 = 42;
            body.MyProperty2 = "Something";
            body.MyProperty3 = "Something else";
            Message m1 = new Message(body);

            Assert.IsNull(m1.Formatter);

            MessageQueue q = MQUtil.GetQueue(path, new XmlMessageFormatter());

            q.Send(m1);

            Message m2 = q.Receive();

            m2.Formatter = new XmlMessageFormatter(new Type[] { typeof(Thingy) });
            Assert.IsNotNull(m2.Formatter);
            Assert.AreEqual(typeof(XmlMessageFormatter), m2.Formatter.GetType());
            Thingy body2 = (Thingy)m2.Formatter.Read(m2);

            Assert.AreEqual(body.MyProperty1, body2.MyProperty1);
            Assert.AreEqual(body.MyProperty2, body2.MyProperty2);
            Assert.AreEqual(body.MyProperty3, body2.MyProperty3);
        }
        public void ReceiveByCorrelationIdWithTransactionAbort()
        {
            string  correlationId = Guid.NewGuid() + "\\0";
            String  body          = "foo-" + DateTime.Now.ToString();
            Message sent1         = new Message(body, new BinaryMessageFormatter());

            sent1.CorrelationId = correlationId;
            MessageQueue mq = MQUtil.GetQueue(MQUtil.CreateQueueName(), true);

            Assert.IsTrue(mq.Transactional, "Message Queue should be transactional");
            mq.Send(sent1, MessageQueueTransactionType.Single);
            string id = sent1.Id;

            using (MessageQueueTransaction tx = new MessageQueueTransaction()) {
                tx.Begin();

                Message received1 = mq.ReceiveByCorrelationId(correlationId, tx);

                tx.Abort();
            }

            Message received2 = mq.Receive();

            Assert.AreEqual(body, received2.Body);
        }
示例#7
0
        private void SendMessage(string s)
        {
            MessageQueue mq = MQUtil.GetQueue(qName);
            Message      m  = new Message(s, new BinaryMessageFormatter());

            m.CorrelationId = Guid.NewGuid() + "\\0";
            mq.Send(m);
        }
        public void BeginReceiveWithException()
        {
            MessageQueue q      = MQUtil.GetQueue();
            IAsyncResult result = q.BeginReceive(new TimeSpan(0, 0, 2));

            result.AsyncWaitHandle.WaitOne();
            q.EndReceive(result);
        }
示例#9
0
        public void CreateTransactionalQueue()
        {
            string qName = MQUtil.CreateQueueName();

            Assert.IsFalse(MessageQueue.Exists(qName), "Queue should not exist");
            MessageQueue q = MessageQueue.Create(qName, true);

            Assert.IsTrue(q.Transactional, "Queue should be transactional");
            Assert.IsTrue(MessageQueue.Exists(qName), "Queue should exist");
        }
示例#10
0
        public void GetQueue()
        {
            string       qName = MQUtil.CreateQueueName();
            MessageQueue q1    = MQUtil.GetQueue(qName, true);

            Assert.IsTrue(q1.Transactional, "Queue should be transactional");
            MessageQueue q2 = MQUtil.GetQueue(qName, true);

            Assert.IsTrue(q2.Transactional, "Queue should be transactional");
        }
示例#11
0
        public void DeleteQueue()
        {
            string       qName = MQUtil.CreateQueueName();
            MessageQueue q     = MQUtil.GetQueue(qName);
            Message      m1    = new Message("foobar1", new BinaryMessageFormatter());

            q.Send(m1);

            q.Receive();

            MessageQueue.Delete(qName);
        }
        public void SendWithTransactionType()
        {
            Message      sent1 = new Message("Message 1");
            MessageQueue mq    = MQUtil.GetQueue(MQUtil.CreateQueueName(), true);

            mq.MessageReadPropertyFilter.SetAll();
            mq.Send(sent1, MessageQueueTransactionType.Single);

            Message received1 = mq.Receive();

            Assert.IsNotNull(received1.TransactionId, "TransactionId not set");
        }
        public void ReceiveWithTransactionType()
        {
            String       body  = "foo-" + DateTime.Now.ToString();
            Message      sent1 = new Message(body, new BinaryMessageFormatter());
            MessageQueue mq    = MQUtil.GetQueue(MQUtil.CreateQueueName(), true);

            Assert.IsTrue(mq.Transactional, "Message Queue should be transactional");
            mq.Send(sent1, MessageQueueTransactionType.Single);

            Message received1 = mq.Receive(MessageQueueTransactionType.Single);

            Assert.AreEqual(body, received1.Body);
        }
示例#14
0
        public void GetPublicQueues()
        {
            string qName1 = @".\admin-queue-3";
            string qName2 = @".\admin-queue-4";

            MQUtil.GetQueue(qName1);
            MQUtil.GetQueue(qName2);

            MessageQueue[] mq = MessageQueue.GetPublicQueues();
            Console.WriteLine("Number of queues: {0}", mq.Length);
            Assert.IsTrue(Contains(mq, "admin-queue-3"), qName1 + " not found");
            Assert.IsTrue(Contains(mq, "admin-queue-4"), qName2 + " not found");
        }
        public void ReceiveByIdWithTransactionType()
        {
            String       body  = "Message 4";
            Message      sent1 = new Message(body, new BinaryMessageFormatter());
            MessageQueue mq    = MQUtil.GetQueue(MQUtil.CreateQueueName(), true);

            Assert.IsTrue(mq.Transactional, "Message Queue should be transactional");
            mq.Send(sent1, MessageQueueTransactionType.Single);
            string id = sent1.Id;

            Message received1 = mq.ReceiveById(id, MessageQueueTransactionType.Single);

            Assert.AreEqual(body, received1.Body);
        }
示例#16
0
        public void SelectById()
        {
            String       body = "Foo-" + DateTime.Now.ToString();
            Message      s1   = new Message(body, new BinaryMessageFormatter());
            MessageQueue q    = MQUtil.GetQueue();

            q.Send(s1);

            String id = s1.Id;

            Message r1 = q.ReceiveById(id);

            Assert.AreEqual(body, r1.Body, "Unable to ReceiveById correctly");
        }
示例#17
0
        public void SelectByCorrelationId()
        {
            string  correlationId = Guid.NewGuid() + "\\0";
            String  body          = "Foo-" + DateTime.Now.ToString();
            Message s1            = new Message(body, new BinaryMessageFormatter());

            s1.CorrelationId = correlationId;
            MessageQueue q = MQUtil.GetQueue();

            q.Send(s1);

            Message r1 = q.ReceiveByCorrelationId(correlationId);

            Assert.AreEqual(body, r1.Body, "Unable to ReceiveByCorrelationId correctly");
        }
        public void SendWithTransactionTypeAndLabel()
        {
            Message      sent1 = new Message("Message 1");
            MessageQueue mq    = MQUtil.GetQueue(MQUtil.CreateQueueName(), true);

            mq.MessageReadPropertyFilter.SetAll();
            String label = "mylabel";

            mq.Send(sent1, label, MessageQueueTransactionType.Single);

            Message received1 = mq.Receive();

            Assert.IsNotNull(received1.TransactionId, "TransactionId not set");
            Assert.AreEqual(label, received1.Label, "Label not set");
        }
        public void SendDefaultText()
        {
            string body = "This is a test";

            MessageQueue q = MQUtil.GetQueue(MQUtil.CreateQueueName(), new XmlMessageFormatter());

            q.Send(body);

            Message             m2   = q.Receive();
            XmlMessageFormatter xmlf = (XmlMessageFormatter)q.Formatter;

            Assert.AreEqual(typeof(XmlMessageFormatter), m2.Formatter.GetType());
            Assert.AreEqual(body, m2.Body);
            Assert.AreEqual(0, m2.BodyType);
        }
        public void BeginReceiveWithTimeout()
        {
            MessageQueue q    = MQUtil.GetQueue();
            Message      s    = new Message(new BinaryMessageFormatter());
            string       body = "foo-" + DateTime.Now.ToString();

            s.Body = body;
            q.Send(s);

            IAsyncResult result = q.BeginReceive(new TimeSpan(0, 0, 2));

            result.AsyncWaitHandle.WaitOne();
            Message rMsg = q.EndReceive(result);

            Assert.AreEqual(body, rMsg.Body, "Async Send Failed, bodies not equal");
        }
示例#21
0
        public void PeekByIdNotFound()
        {
            String       body = "Foo-" + DateTime.Now.ToString();
            Message      s1   = new Message(body, new BinaryMessageFormatter());
            MessageQueue q    = MQUtil.GetQueue();

            q.Send(s1);

            String id = "fail!";

            try {
                Message r1 = q.PeekById(id);
            } finally {
                q.Purge();
            }
        }
示例#22
0
        public void PeekByCorrelationIdNotFound()
        {
            String       body          = "Foo-" + DateTime.Now.ToString();
            Message      s1            = new Message(body);
            String       correlationId = Guid.NewGuid() + "\\0";
            MessageQueue q             = MQUtil.GetQueue();

            q.Formatter = new BinaryMessageFormatter();
            q.Send(s1);

            try {
                Message r1 = q.PeekByCorrelationId("fail!");
            } finally {
                q.Purge();
            }
        }
        public void SendBinaryText()
        {
            string body = "This is a test";

            MessageQueue q = MQUtil.GetQueue();

            q.Formatter = new BinaryMessageFormatter();

            q.Send(body);

            Message m2 = q.Receive();

            Assert.IsNotNull(m2.Formatter, "Formatter is null");
            Assert.AreEqual(typeof(BinaryMessageFormatter), m2.Formatter.GetType());
            Assert.AreEqual(body, m2.Body);
        }
示例#24
0
        public void PeekMessageWithTimeout()
        {
            String       body = "foo-" + DateTime.Now.ToString();
            Message      s1   = new Message(body, new BinaryMessageFormatter());
            MessageQueue mq   = MQUtil.GetQueue();

            mq.Send(s1);

            Message r1 = mq.Peek(new TimeSpan(0, 0, 2));

            Assert.AreEqual(body, r1.Body);

            Message r2 = mq.Receive();

            Assert.AreEqual(body, r2.Body);
        }
示例#25
0
        public void SelectByCorrelationIdNotFound()
        {
            string  correlationId = Guid.NewGuid() + "\\0";
            String  body          = "Foo-" + DateTime.Now.ToString();
            Message s1            = new Message(body, new BinaryMessageFormatter());

            s1.CorrelationId = correlationId;
            MessageQueue q = MQUtil.GetQueue();

            q.Send(s1);

            try {
                Message r1 = q.ReceiveByCorrelationId("fail!");
            } finally {
                q.Purge();
            }
        }
        public void SendMessageWithLabel()
        {
            MessageQueue mq    = MQUtil.GetQueue();
            String       label = "mylabel";
            String       s     = "Test: " + DateTime.Now;
            Message      m     = new Message(s, new BinaryMessageFormatter());

            m.CorrelationId = Guid.NewGuid() + "\\0";

            mq.Send(m, label);

            Message m2 = mq.Receive();

            m2.Formatter = new BinaryMessageFormatter();
            Assert.AreEqual(s, m2.Body, "Message not passed correctly");
            Assert.AreEqual(label, m2.Label, "Label not passed correctly");
        }
示例#27
0
        public void PurgeQueue()
        {
            MessageQueue q  = MQUtil.GetQueue(MQUtil.CreateQueueName());
            Message      m1 = new Message("foobar1", new BinaryMessageFormatter());
            Message      m2 = new Message("foobar2", new BinaryMessageFormatter());
            Message      m3 = new Message("foobar3", new BinaryMessageFormatter());
            Message      m4 = new Message("foobar4", new BinaryMessageFormatter());

            q.Send(m1);
            q.Send(m2);
            q.Send(m3);
            q.Send(m4);

            q.Receive();
            q.Purge();
            q.Receive(new TimeSpan(0, 0, 2));
        }
示例#28
0
        public void PeekById()
        {
            String       body = "Foo-" + DateTime.Now.ToString();
            Message      s1   = new Message(body, new BinaryMessageFormatter());
            MessageQueue q    = MQUtil.GetQueue();

            q.Send(s1);

            String id = s1.Id;

            try {
                Message r1 = q.PeekById(id);
                Assert.AreEqual(body, r1.Body, "Unable to PeekById correctly");
            } finally {
                q.Purge();
            }
        }
        public void BeginReceive()
        {
            MessageQueue q    = MQUtil.GetQueue();
            Message      s    = new Message(new BinaryMessageFormatter());
            string       body = "foo-" + DateTime.Now.ToString();

            s.Body = body;
            q.Send(s);

            q.ReceiveCompleted += new ReceiveCompletedEventHandler(HandleMessage);
            IAsyncResult result = q.BeginReceive();

            result.AsyncWaitHandle.WaitOne();
            Message rMsg = q.EndReceive(result);

            Assert.IsNotNull(rMsg, "No message received");
            Assert.AreEqual(body, rMsg.Body, "Async Send Failed, bodies not equal");
        }
        public void BeginReceiveWithStateAndTimeoutAndCallback()
        {
            MessageQueue q    = MQUtil.GetQueue();
            Message      s    = new Message(new BinaryMessageFormatter());
            string       body = "foo-" + DateTime.Now.ToString();

            s.Body = body;
            q.Send(s);
            AsyncCallback ac     = new AsyncCallback(TestCallback);
            IAsyncResult  result = q.BeginReceive(new TimeSpan(0, 0, 2), "foo", ac);

            result.AsyncWaitHandle.WaitOne();
            Message rMsg = q.EndReceive(result);

            Assert.AreEqual(body, rMsg.Body, "Async Send Failed, bodies not equal");
            Assert.AreEqual("foo", result.AsyncState, "State not passed properly");
            Assert.IsTrue(success, "Callback not run");
        }