Beispiel #1
0
 /// <summary>
 /// Cleanup after every test case is run.
 /// </summary>
 public void Dispose()
 {
     if (!string.IsNullOrEmpty(_queueUrl))
     {
         SqsQueueUtils.DeleteQueue(_queueUrl, _sqs);
     }
 }
        public void CreateTwoQueues_WithDifferentQueueNameCapitalisations_ShouldCreateTwoQueues()
        {
            const string queueName1 = "QUEUE-NAME";
            const string queueName2 = "queue-name";

            var sqsRequest1 = new CreateQueueRequest(queueName1);
            var sqsRequest2 = new CreateQueueRequest(queueName2);

            var response1 = _sqs.CreateQueue(sqsRequest1);
            var response2 = _sqs.CreateQueue(sqsRequest2);

            Assert.True(response1.HttpStatusCode == System.Net.HttpStatusCode.OK);
            Assert.EndsWith(queueName1, response1.QueueUrl);

            Assert.True(response2.HttpStatusCode == System.Net.HttpStatusCode.OK);
            Assert.EndsWith(queueName2, response2.QueueUrl);

            // Find the the queue in the list of queues
            ListQueuesRequest  listQueuesRequest  = new ListQueuesRequest();
            ListQueuesResponse listQueuesResponse = _sqs.ListQueues(listQueuesRequest);

            var createdQueue = listQueuesResponse.QueueUrls.Where(q => q.EndsWith(queueName1) || q.EndsWith(queueName2));

            Assert.True(createdQueue.Count() == 2);

            // Cleanup
            SqsQueueUtils.DeleteQueue(response1.QueueUrl, _sqs);
            SqsQueueUtils.DeleteQueue(response2.QueueUrl, _sqs);
        }
Beispiel #3
0
        public void ReceiveMessageMultipleTimes_UsingDeadLetterQueue_MessageShouldBePlacedInDeadLetterQueue()
        {
            const string sourceQueueName     = "SourceQueue_RedrivePolicy_StandardQueue";
            const string deadLetterQueueName = "DeadLetterQueue_StandardQueue";
            var          message             = new SqsMessage("Test");

            var createQueueResponse     = _sqs.CreateQueue(sourceQueueName);
            var deadLetterQueueResponse = _sqs.CreateQueue(deadLetterQueueName);

            var queueAttrs = _sqs.GetQueueAttributes(new GetQueueAttributesRequest(deadLetterQueueResponse.QueueUrl, new List <string> {
                "QueueArn"
            }));

            var sqsRequest = new SetQueueAttributesRequest()
            {
                Attributes = new Dictionary <string, string>()
                {
                    { QueueAttributeName.RedrivePolicy, "{\"maxReceiveCount\":\"5\", \"deadLetterTargetArn\":\"" + queueAttrs.QueueARN + "\"}" }
                },
                QueueUrl = createQueueResponse.QueueUrl
            };

            _sqs.SetQueueAttributes(sqsRequest);


            _queueUrl = createQueueResponse.QueueUrl;

            // Send a message for the source queue
            var response = _sqs.SendMessage(new SendMessageRequest(_queueUrl, message.Body));

            var receiveMessageRequest = new ReceiveMessageRequest()
            {
                QueueUrl = _queueUrl
            };

            // Read from the source queue multiple times
            for (int i = 0; i < 6; i++)
            {
                var receiveMessageResponse = _sqs.ReceiveMessage(receiveMessageRequest);
            }

            var deadLetterQueueMessageResponse = _sqs.ReceiveMessage(deadLetterQueueResponse.QueueUrl);

            // Verify that the message has moved to the dead-letter queue
            Assert.Equal(message.Body, deadLetterQueueMessageResponse.Messages.First().Body);

            // Cleanup
            SqsQueueUtils.DeleteQueue(deadLetterQueueResponse.QueueUrl, _sqs);
        }
        public void CreateExistingQueue_WithSameQueueName_ShouldReturnsUrlOfExistingQueue()
        {
            const string queueName = "SameQueueName";

            var sqsRequest1 = new CreateQueueRequest(queueName);
            var sqsRequest2 = new CreateQueueRequest(queueName);

            var response1 = _sqs.CreateQueue(sqsRequest1);
            var response2 = _sqs.CreateQueue(sqsRequest2);

            Assert.True(response1.HttpStatusCode == System.Net.HttpStatusCode.OK);
            Assert.EndsWith(queueName, response1.QueueUrl);

            Assert.True(response2.HttpStatusCode == System.Net.HttpStatusCode.OK);
            Assert.EndsWith(queueName, response2.QueueUrl);

            // Cleanup
            SqsQueueUtils.DeleteQueue(response1.QueueUrl, _sqs);
        }