Ejemplo n.º 1
0
        public async Task <CreateQueueResult> CreateQueueAsync(string queueName, int defaultVisibilityTimeout = 30)
        {
            #region Preconditions

            if (queueName == null)
            {
                throw new ArgumentNullException(nameof(queueName));
            }

            #endregion

            var parameters = new SqsRequest {
                { "Action", "CreateQueue" },
                { "QueueName", queueName },
                { "DefaultVisibilityTimeout", defaultVisibilityTimeout } /* in seconds */
            };

            var httpRequest = new HttpRequestMessage(HttpMethod.Post, Endpoint)
            {
                Content = GetPostContent(parameters)
            };

            var responseText = await SendAsync(httpRequest).ConfigureAwait(false);

            return(CreateQueueResult.Parse(responseText));
        }
Ejemplo n.º 2
0
        private string createQueueTest(string name)
        {
            CreateQueueResult result = Client.CreateQueue(
                new CreateQueueRequest()
            {
                QueueName  = name,
                Attributes = new Dictionary <string, string>
                {
                    { SQSConstants.ATTRIBUTE_VISIBILITY_TIMEOUT, defaultTimeout }
                }
            });

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.QueueUrl);

            var attrResults = Client.GetQueueAttributes(new GetQueueAttributesRequest()
            {
                QueueUrl       = result.QueueUrl,
                AttributeNames = new List <string>()
                {
                    SQSConstants.ATTRIBUTE_VISIBILITY_TIMEOUT
                }
            });

            Assert.AreEqual(1, attrResults.Attributes.Count);
            Assert.AreEqual(int.Parse(defaultTimeout), int.Parse(attrResults.Attributes[SQSConstants.ATTRIBUTE_VISIBILITY_TIMEOUT]));

            for (int i = 0; i < 30; i++)
            {
                var listResult = Client.ListQueues(new ListQueuesRequest()
                {
                    QueueNamePrefix = prefix
                });
                if (listResult.QueueUrls.FirstOrDefault(x => x == result.QueueUrl) != null)
                {
                    return(result.QueueUrl);
                }

                Console.WriteLine("Sleeping 10s while queue is being created");
                Thread.Sleep(2000);
            }
            Assert.Fail("Queue never created");

            return("fail");
        }
Ejemplo n.º 3
0
        public void Test_C_CreateQueue_With_AlreadyExisting_Queue_Name_And_Check_For_Valid_Response()
        {
            bool hasCallbackArrived = false;
            bool actualValue        = false;
            bool expectedValue      = true;

            SQSResponseEventHandler <object, ResponseEventArgs> handler = null;

            handler = delegate(object sender, ResponseEventArgs args)
            {
                ISQSResponse result = args.Response;
                //Unhook from event.
                _client.OnSQSResponse -= handler;
                CreateQueueResponse response = result as CreateQueueResponse;
                if (null != response)
                {
                    CreateQueueResult createResult = response.CreateQueueResult;
                    if (null != createResult)
                    {
                        actualValue = true;
                    }
                }

                hasCallbackArrived = true;
            };

            //Hook to event
            _client.OnSQSResponse += handler;

            //Create request object.
            _client.CreateQueue(new CreateQueueRequest {
                QueueName = _queue_UnitTesting_1
            });

            EnqueueConditional(() => hasCallbackArrived);
            EnqueueCallback(() => Assert.IsTrue(expectedValue == actualValue));
            EnqueueTestComplete();
        }