/// <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); }
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); }