public void CloudQueueClientListQueuesSegmented()
        {
            CloudQueueClient client = GenerateCloudQueueClient();

            string        prefix     = "dotnetqueuetest" + Guid.NewGuid().ToString("N");
            List <string> queueNames = new List <string>();
            int           count      = 3;

            for (int i = 0; i < count; i++)
            {
                string queueName = prefix + i;
                queueNames.Add(queueName);
                client.GetQueueReference(queueName).Create();
            }

            QueueContinuationToken token   = null;
            List <CloudQueue>      results = new List <CloudQueue>();

            do
            {
                QueueResultSegment segment = client.ListQueuesSegmented(token);
                token = segment.ContinuationToken;
                results.AddRange(segment.Results);
            }while (token != null);

            foreach (CloudQueue queue in results)
            {
                if (queueNames.Remove(queue.Name))
                {
                    client.GetQueueReference(queue.Name).Delete();
                }
            }

            Assert.AreEqual(0, queueNames.Count);
        }
        public void CloudQueueClientListQueuesSegmentedWithPrefixAPMOverload()
        {
            CloudQueueClient client     = GenerateCloudQueueClient();
            string           prefix     = "dotnetqueuetest" + Guid.NewGuid().ToString("N");
            List <string>    queueNames = new List <string>();
            int count = 3;

            for (int i = 0; i < count; i++)
            {
                queueNames.Add(prefix + i);
            }

            using (AutoResetEvent waitHandle = new AutoResetEvent(false))
            {
                QueueContinuationToken token   = null;
                List <CloudQueue>      results = new List <CloudQueue>();
                do
                {
                    IAsyncResult result = client.BeginListQueuesSegmented(prefix, token, ar => waitHandle.Set(), null);
                    waitHandle.WaitOne();
                    QueueResultSegment segment = client.EndListQueuesSegmented(result);
                    results.AddRange(segment.Results);
                    token = segment.ContinuationToken;
                }while (token != null);

                Assert.AreEqual <int>(0, results.Count);

                foreach (string name in queueNames)
                {
                    client.GetQueueReference(name).Create();
                }

                do
                {
                    IAsyncResult result = client.BeginListQueuesSegmented(prefix, token, ar => waitHandle.Set(), null);
                    waitHandle.WaitOne();
                    QueueResultSegment segment = client.EndListQueuesSegmented(result);
                    results.AddRange(segment.Results);
                    token = segment.ContinuationToken;
                }while (token != null);

                Assert.AreEqual <int>(results.Count, queueNames.Count);

                foreach (CloudQueue queue in results)
                {
                    if (queueNames.Remove(queue.Name))
                    {
                        queue.Delete();
                    }
                    else
                    {
                        Assert.Fail();
                    }
                }

                Assert.AreEqual <int>(0, queueNames.Count);
            }
        }
        public async Task CloudQueueClientListQueuesSegmentedWithPrefixTask()
        {
            CloudQueueClient client     = GenerateCloudQueueClient();
            string           prefix     = "dotnetqueuetest" + Guid.NewGuid().ToString("N");
            List <string>    queueNames = new List <string>();
            int count = 3;

            for (int i = 0; i < count; i++)
            {
                queueNames.Add(prefix + i);
            }

            QueueContinuationToken token   = null;
            List <CloudQueue>      results = new List <CloudQueue>();

            do
            {
                QueueResultSegment segment
                    = await client.ListQueuesSegmentedAsync(prefix, QueueListingDetails.None, null, token, null, null);

                results.AddRange(segment.Results);
                token = segment.ContinuationToken;
            }while (token != null);

            Assert.AreEqual <int>(0, results.Count);

            foreach (string name in queueNames)
            {
                await client.GetQueueReference(name).CreateAsync();
            }

            do
            {
                QueueResultSegment segment
                    = await client.ListQueuesSegmentedAsync(prefix, QueueListingDetails.None, 10, token, null, null);

                results.AddRange(segment.Results);
                token = segment.ContinuationToken;
            }while (token != null);

            Assert.AreEqual <int>(results.Count, queueNames.Count);

            foreach (CloudQueue queue in results)
            {
                if (queueNames.Remove(queue.Name))
                {
                    await queue.DeleteAsync();
                }
                else
                {
                    Assert.Fail();
                }
            }

            Assert.AreEqual <int>(0, queueNames.Count);
        }
        public async Task QueueContinuationTokenVerifyXmlFunctions()
        {
            CloudQueueClient client     = GenerateCloudQueueClient();
            string           prefix     = "dotnetqueuetest" + Guid.NewGuid().ToString("N");
            List <string>    queueNames = new List <string>();
            int count = 30;

            for (int i = 0; i < count; i++)
            {
                queueNames.Add(prefix + i);
                client.GetQueueReference(prefix + i).Create();
            }

            QueueContinuationToken token   = null;
            List <CloudQueue>      results = new List <CloudQueue>();

            do
            {
                QueueResultSegment segment = client.ListQueuesSegmented(prefix, QueueListingDetails.None, 5, token, null, null);
                token = segment.ContinuationToken;
                results.AddRange(segment.Results);
                if (token != null)
                {
                    Assert.AreEqual(null, token.GetSchema());

                    XmlWriterSettings settings = new XmlWriterSettings();
                    settings.Indent = true;
                    StringBuilder sb = new StringBuilder();
                    using (XmlWriter writer = XmlWriter.Create(sb, settings))
                    {
                        token.WriteXml(writer);
                    }

                    using (XmlReader reader = XMLReaderExtensions.CreateAsAsync(new MemoryStream(Encoding.Unicode.GetBytes(sb.ToString()))))
                    {
                        token = new QueueContinuationToken();
                        await token.ReadXmlAsync(reader);
                    }
                }
            }while (token != null);

            foreach (CloudQueue queue in results)
            {
                if (queueNames.Remove(queue.Name))
                {
                    queue.Delete();
                }
                else
                {
                    Assert.Fail();
                }
            }

            Assert.AreEqual <int>(0, queueNames.Count);
        }
        public void CloudQueueClientListQueuesSegmentedWithPrefixOverload()
        {
            string        prefix     = "dotnetqueuetest" + Guid.NewGuid().ToString("N");
            List <string> queueNames = new List <string>();
            int           count      = 3;

            for (int i = 0; i < count; i++)
            {
                queueNames.Add(prefix + i);
            }

            QueueContinuationToken token   = null;
            List <CloudQueue>      results = new List <CloudQueue>();

            CloudQueueClient client = GenerateCloudQueueClient();

            do
            {
                QueueResultSegment segment = client.ListQueuesSegmented(prefix, token);
                token = segment.ContinuationToken;
                results.AddRange(segment.Results);
            }while (token != null);

            Assert.AreEqual <int>(0, results.Count);

            foreach (string name in queueNames)
            {
                client.GetQueueReference(name).Create();
            }

            do
            {
                QueueResultSegment segment = client.ListQueuesSegmented(prefix, token);
                token = segment.ContinuationToken;
                results.AddRange(segment.Results);
            }while (token != null);

            Assert.AreEqual <int>(results.Count, queueNames.Count);

            foreach (CloudQueue queue in results)
            {
                if (queueNames.Remove(queue.Name))
                {
                    queue.Delete();
                }
                else
                {
                    Assert.Fail();
                }
            }

            Assert.AreEqual <int>(0, queueNames.Count);
        }
        public void CloudQueueClientListQueuesWithContinuationTokenNullTarget()
        {
            CloudQueueClient client     = GenerateCloudQueueClient();
            string           prefix     = "dotnetqueuetest" + Guid.NewGuid().ToString("N");
            List <string>    queueNames = new List <string>();
            int segmentCount            = 8;

            for (int i = 0; i < segmentCount; i++)
            {
                queueNames.Add(prefix + i);
            }

            QueueContinuationToken continuationToken = null;
            List <CloudQueue>      results           = new List <CloudQueue>();
            int tokenCount = 0;

            foreach (string name in queueNames)
            {
                client.GetQueueReference(name).Create();
            }

            do
            {
                QueueResultSegment segment = client.ListQueuesSegmented(prefix, QueueListingDetails.None, 1, continuationToken, null, null);
                tokenCount++;
                continuationToken = segment.ContinuationToken;
                if (tokenCount < segmentCount)
                {
                    Assert.IsNotNull(segment.ContinuationToken);
                    continuationToken.TargetLocation = null;
                }

                results.AddRange(segment.Results);
            }while (continuationToken != null);

            Assert.AreEqual <int>(results.Count, queueNames.Count);
            Assert.AreEqual <int>(results.Count, tokenCount);

            foreach (CloudQueue queue in results)
            {
                if (queueNames.Remove(queue.Name))
                {
                    queue.Delete();
                }
                else
                {
                    Assert.Fail();
                }
            }

            Assert.AreEqual <int>(0, queueNames.Count);
        }
Exemple #7
0
        public async Task CloudQueueClientListQueuesBasicAsync()
        {
            DelegatingHandlerImpl delegatingHandlerImpl = new DelegatingHandlerImpl(new DelegatingHandlerImpl());
            CloudQueueClient      client = GenerateCloudQueueClient(delegatingHandlerImpl);
            string        prefix         = GenerateNewQueueName();
            List <string> queueNames     = new List <string>();
            int           count          = 30;

            for (int i = 0; i < count; i++)
            {
                queueNames.Add(prefix + i);
            }

            QueueResultSegment emptyResults = await client.ListQueuesSegmentedAsync(prefix, QueueListingDetails.All, null, null, null, null);

            Assert.AreEqual <int>(0, emptyResults.Results.Count());

            foreach (string name in queueNames)
            {
                await client.GetQueueReference(name).CreateAsync();
            }

            QueueResultSegment results = await client.ListQueuesSegmentedAsync(prefix, QueueListingDetails.All, null, null, null, null);

            foreach (CloudQueue queue in results.Results)
            {
                if (queueNames.Remove(queue.Name))
                {
                    await queue.DeleteAsync();
                }
                else
                {
                    Assert.Fail();
                }
            }

            Assert.AreEqual <int>(count, results.Results.Count());
            Assert.AreNotEqual(0, delegatingHandlerImpl.CallCount);
        }