public void PeekMessages_RequestItem_DoesNotDequeueTheItem()
        {
            IQueueServiceClient client = new QueueServiceClient(_accountSettings);
            var queueName = GenerateSampleQueueName();
            _util.CreateQueue(queueName);
            _util.AddItemsToQueue(queueName, new List<string>() { "1" });

            var peekResponse = client.PeekMessages(queueName, 1);
            Assert.AreEqual(1, peekResponse.Messages.Count);

            var getResponse = client.GetMessages(queueName, 1);
            Assert.AreEqual(1, getResponse.Messages.Count);
        }
        public void PeekMessages_RequestUndefinedNumberOfItemsFromFullQueue_ReturnsOneItem()
        {
            IQueueServiceClient client = new QueueServiceClient(_accountSettings);
            var queueName = GenerateSampleQueueName();
            _util.CreateQueue(queueName);
            _util.AddItemsToQueue(queueName, Enumerable.Range(1, 40).Select(n => n.ToString()).ToList());
            var expectedMessage = "1";

            var response = client.PeekMessages(queueName);

            Assert.AreEqual(1, response.Messages.Count);
            var message = response.Messages.Single();
            // Base 64 encode the expected message since Azure SDK did so when enqueueing it
            Assert.AreEqual(Convert.ToBase64String(ASCIIEncoding.ASCII.GetBytes(expectedMessage)), message.MessageText);
        }
        public void PeekMessages_NonExistentQueue_ThrowsQueueDoesNotExistException()
        {
            IQueueServiceClient client = new QueueServiceClient(_accountSettings);
            var queueName = GenerateSampleQueueName();

            var response = client.PeekMessages(queueName, 32);

            // expects exception
        }
        public void PeekMessages_Request32ItemsFromFullQueue_Returns32Items()
        {
            IQueueServiceClient client = new QueueServiceClient(_accountSettings);
            var queueName = GenerateSampleQueueName();
            _util.CreateQueue(queueName);
            _util.AddItemsToQueue(queueName, Enumerable.Range(1, 40).Select(n => n.ToString()).ToList());

            var response = client.PeekMessages(queueName, 32);

            Assert.AreEqual(32, response.Messages.Count);
            for (int i = 1; i <= 32; i++)
            {
                // Base 64 encode the expected message since Azure SDK did so when enqueueing it
                var expectedMessage = Convert.ToBase64String(ASCIIEncoding.ASCII.GetBytes(i.ToString()));
                Assert.IsTrue(response.Messages.Any(m => m.MessageText.Equals(expectedMessage)));
            }
        }
        public void PeekMessages_EmptyQueue_ReturnsEmptyCollection()
        {
            IQueueServiceClient client = new QueueServiceClient(_accountSettings);
            var queueName = GenerateSampleQueueName();
            _util.CreateQueue(queueName);

            var response = client.PeekMessages(queueName, 32);

            Assert.IsEmpty(response.Messages);
        }