コード例 #1
0
        public void ReceiveMessage()
        {
            var rsmq = new Rsmq();

            rsmq.CreateQueue(new CreateQueueOptions {
                QueueName = Global.QueueName
            });

            var msgId1 = rsmq.SendMessage(new SendMessageOptions {
                QueueName = Global.QueueName, Message = "hello1"
            });
            var msgId2 = rsmq.SendMessage(new SendMessageOptions {
                QueueName = Global.QueueName, Message = "hello2"
            });

            var message1 = rsmq.ReceiveMessage(new ReceiveMessageOptions {
                QueueName = Global.QueueName
            });
            var message2 = rsmq.ReceiveMessage(new ReceiveMessageOptions {
                QueueName = Global.QueueName
            });

            Assert.NotNull(message1);
            Assert.NotNull(message2);

            Assert.AreEqual("hello1", message1.Message);
            Assert.AreEqual("hello2", message2.Message);

            Assert.AreEqual(msgId1, message1.Id);
            Assert.AreEqual(msgId2, message2.Id);

            Assert.AreEqual(1, rsmq.DeleteMessage(new DeleteMessageOptions {
                QueueName = Global.QueueName, Id = msgId1
            }));
            Assert.AreEqual(1, rsmq.DeleteMessage(new DeleteMessageOptions {
                QueueName = Global.QueueName, Id = msgId2
            }));
        }
コード例 #2
0
        public void DeleteMessage()
        {
            var rsmq = new Rsmq();

            rsmq.CreateQueue(new CreateQueueOptions {
                QueueName = Global.QueueName
            });

            var msgId = rsmq.SendMessage(new SendMessageOptions {
                QueueName = Global.QueueName, Message = "hello"
            });

            Assert.AreEqual(1, rsmq.DeleteMessage(new DeleteMessageOptions {
                QueueName = Global.QueueName, Id = msgId
            }));
            Assert.Zero(rsmq.DeleteMessage(new DeleteMessageOptions {
                QueueName = Global.QueueName, Id = "0123456789abcdefghijklmnopqrstuv"
            }));
        }
コード例 #3
0
        public void PopMessage()
        {
            var rsmq = new Rsmq();

            rsmq.CreateQueue(new CreateQueueOptions {
                QueueName = Global.QueueName
            });

            var msgId = rsmq.SendMessage(new SendMessageOptions {
                QueueName = Global.QueueName, Message = "hello"
            });

            var poppedMessage = rsmq.PopMessage(new PopMessageOptions {
                QueueName = Global.QueueName
            });

            Assert.AreEqual(msgId, poppedMessage.Id);

            Assert.Zero(rsmq.DeleteMessage(new DeleteMessageOptions {
                QueueName = Global.QueueName, Id = msgId
            }));
        }
コード例 #4
0
        public void GetQueueAttributes(CreateQueueOptions value)
        {
            var rsmq = new Rsmq();

            rsmq.CreateQueue(value);
            var attributes = rsmq.GetQueueAttributes(new GetQueueAttributesOptions {
                QueueName = value.QueueName
            });

            Assert.AreEqual(attributes.Delay, value.Delay);
            Assert.AreEqual(attributes.MaxSize, value.MaxSize);
            Assert.AreEqual(attributes.VisibilityTimer, value.VisibilityTimer);
            Assert.Zero(attributes.TotalSent);

            rsmq.SendMessage(new SendMessageOptions {
                QueueName = value.QueueName, Message = "Halo"
            });
            attributes = rsmq.GetQueueAttributes(new GetQueueAttributesOptions {
                QueueName = value.QueueName
            });
            Assert.AreEqual(1, attributes.TotalSent);
        }
コード例 #5
0
        public void ChangeMessageVisibility()
        {
            var rsmq = new Rsmq();

            rsmq.CreateQueue(new CreateQueueOptions {
                QueueName = Global.QueueName
            });

            var msgId = rsmq.SendMessage(new SendMessageOptions {
                QueueName = Global.QueueName, Message = "hello"
            });

            rsmq.ChangeMessageVisibility(new ChangeMessageVisibilityOptions {
                QueueName = Global.QueueName, Id = msgId, VisibilityTimer = 2
            });

            Assert.IsNull(rsmq.ReceiveMessage(new ReceiveMessageOptions {
                QueueName = Global.QueueName
            }));
            Task.WaitAll(Task.Delay(2500));
            Assert.IsNotNull(rsmq.ReceiveMessage(new ReceiveMessageOptions {
                QueueName = Global.QueueName
            }));
        }