public void CloudBlobClientListBlobsSegmentedWithPrefix() { string name = "bb" + GetRandomContainerName(); CloudBlobClient blobClient = GenerateCloudBlobClient(); CloudBlobContainer rootContainer = blobClient.GetRootContainerReference(); CloudBlobContainer container = blobClient.GetContainerReference(name); try { rootContainer.CreateIfNotExists(); container.Create(); List <string> blobNames = CreateBlobs(container, 3, BlobType.BlockBlob); List <string> rootBlobNames = CreateBlobs(rootContainer, 2, BlobType.BlockBlob); BlobResultSegment results; BlobContinuationToken token = null; do { results = blobClient.ListBlobsSegmented("bb", token); token = results.ContinuationToken; foreach (CloudBlockBlob blob in results.Results) { blob.Delete(); rootBlobNames.Remove(blob.Name); } }while (token != null); Assert.AreEqual(0, rootBlobNames.Count); results = blobClient.ListBlobsSegmented("bb", token); Assert.AreEqual(0, results.Results.Count()); Assert.IsNull(results.ContinuationToken); results = blobClient.ListBlobsSegmented(name, token); Assert.AreEqual(0, results.Results.Count()); Assert.IsNull(results.ContinuationToken); token = null; do { results = blobClient.ListBlobsSegmented(name + "/", token); token = results.ContinuationToken; foreach (CloudBlockBlob blob in results.Results) { Assert.IsTrue(blobNames.Remove(blob.Name)); } }while (token != null); Assert.AreEqual(0, blobNames.Count); } finally { container.DeleteIfExists(); } }
public void CloudBlobClientListBlobsWithPrefix() { string name = "bb" + GetRandomContainerName(); CloudBlobClient blobClient = GenerateCloudBlobClient(); CloudBlobContainer rootContainer = blobClient.GetRootContainerReference(); CloudBlobContainer container = blobClient.GetContainerReference(name); try { rootContainer.CreateIfNotExists(); container.Create(); List <string> blobNames = CreateBlobs(container, 3, BlobType.BlockBlob); List <string> rootBlobNames = CreateBlobs(rootContainer, 2, BlobType.BlockBlob); IEnumerable <IListBlobItem> results = blobClient.ListBlobs("bb"); foreach (CloudBlockBlob blob in results) { blob.Delete(); rootBlobNames.Remove(blob.Name); } Assert.AreEqual(0, rootBlobNames.Count); Assert.AreEqual(0, blobClient.ListBlobs("bb").Count()); Assert.AreEqual(0, blobClient.ListBlobs(name).Count()); results = blobClient.ListBlobs(name + "/"); foreach (CloudBlockBlob blob in results) { Assert.IsTrue(blobNames.Remove(blob.Name)); } Assert.AreEqual(0, blobNames.Count); } finally { container.DeleteIfExists(); } }
public async Task CloudBlobClientListBlobsSegmentedWithPrefixAsync() { string name = "bb" + GetRandomContainerName(); DelegatingHandlerImpl delegatingHandlerImpl = new DelegatingHandlerImpl(new DelegatingHandlerImpl()); CloudBlobClient blobClient = GenerateCloudBlobClient(delegatingHandlerImpl); CloudBlobContainer rootContainer = blobClient.GetRootContainerReference(); CloudBlobContainer container = blobClient.GetContainerReference(name); try { await rootContainer.CreateIfNotExistsAsync(); await container.CreateAsync(); List <string> blobNames = await CreateBlobsAsync(container, 3, BlobType.BlockBlob); List <string> rootBlobNames = await CreateBlobsAsync(rootContainer, 2, BlobType.BlockBlob); BlobResultSegment results; BlobContinuationToken token = null; do { results = await blobClient.ListBlobsSegmentedAsync("bb", token); token = results.ContinuationToken; foreach (CloudBlockBlob blob in results.Results) { await blob.DeleteAsync(); rootBlobNames.Remove(blob.Name); } }while (token != null); Assert.AreEqual(0, rootBlobNames.Count); results = await blobClient.ListBlobsSegmentedAsync("bb", token); Assert.AreEqual(0, results.Results.Count()); Assert.IsNull(results.ContinuationToken); results = await blobClient.ListBlobsSegmentedAsync(name, token); Assert.AreEqual(0, results.Results.Count()); Assert.IsNull(results.ContinuationToken); token = null; do { results = await blobClient.ListBlobsSegmentedAsync(name + "/", token); token = results.ContinuationToken; foreach (CloudBlockBlob blob in results.Results) { Assert.IsTrue(blobNames.Remove(blob.Name)); } }while (token != null); Assert.AreEqual(0, blobNames.Count); Assert.AreNotEqual(0, delegatingHandlerImpl.CallCount); } finally { container.DeleteIfExistsAsync().Wait(); } }
public void CloudBlobClientListBlobsSegmentedWithPrefixAPM() { string name = "bb" + GetRandomContainerName(); CloudBlobClient blobClient = GenerateCloudBlobClient(); CloudBlobContainer rootContainer = blobClient.GetRootContainerReference(); CloudBlobContainer container = blobClient.GetContainerReference(name); try { rootContainer.CreateIfNotExists(); container.Create(); List <string> blobNames = CreateBlobs(container, 3, BlobType.BlockBlob); List <string> rootBlobNames = CreateBlobs(rootContainer, 2, BlobType.BlockBlob); using (AutoResetEvent waitHandle = new AutoResetEvent(false)) { IAsyncResult result; BlobResultSegment results; BlobContinuationToken token = null; do { result = blobClient.BeginListBlobsSegmented("bb", token, ar => waitHandle.Set(), null); waitHandle.WaitOne(); results = blobClient.EndListBlobsSegmented(result); token = results.ContinuationToken; foreach (CloudBlockBlob blob in results.Results) { blob.Delete(); rootBlobNames.Remove(blob.Name); } }while (token != null); Assert.AreEqual(0, rootBlobNames.Count); result = blobClient.BeginListBlobsSegmented("bb", token, ar => waitHandle.Set(), null); waitHandle.WaitOne(); results = blobClient.EndListBlobsSegmented(result); Assert.AreEqual(0, results.Results.Count()); Assert.IsNull(results.ContinuationToken); result = blobClient.BeginListBlobsSegmented(name, token, ar => waitHandle.Set(), null); waitHandle.WaitOne(); results = blobClient.EndListBlobsSegmented(result); Assert.AreEqual(0, results.Results.Count()); Assert.IsNull(results.ContinuationToken); token = null; do { result = blobClient.BeginListBlobsSegmented(name + "/", token, ar => waitHandle.Set(), null); waitHandle.WaitOne(); results = blobClient.EndListBlobsSegmented(result); token = results.ContinuationToken; foreach (CloudBlockBlob blob in results.Results) { Assert.IsTrue(blobNames.Remove(blob.Name)); } }while (token != null); Assert.AreEqual(0, blobNames.Count); } } finally { container.DeleteIfExists(); } }
public void CloudBlobClientListBlobsSegmentedWithEmptyPrefix() { string name = "bb" + GetRandomContainerName(); CloudBlobClient blobClient = GenerateCloudBlobClient(); CloudBlobContainer rootContainer = blobClient.GetRootContainerReference(); CloudBlobContainer container = blobClient.GetContainerReference(name); try { rootContainer.CreateIfNotExists(); container.Create(); List <Uri> preExistingBlobs = rootContainer.ListBlobs().Select(b => b.Uri).ToList(); List <string> blobNames = CreateBlobs(container, 3, BlobType.BlockBlob); List <string> rootBlobNames = CreateBlobs(rootContainer, 2, BlobType.BlockBlob); BlobResultSegment results; BlobContinuationToken token = null; List <Uri> listedBlobs = new List <Uri>(); do { results = blobClient.ListBlobsSegmented("", token); token = results.ContinuationToken; foreach (IListBlobItem blob in results.Results) { if (preExistingBlobs.Contains(blob.Uri)) { continue; } else { if (blob is CloudPageBlob) { ((CloudPageBlob)blob).Delete(); } else { ((CloudBlockBlob)blob).Delete(); } listedBlobs.Add(blob.Uri); } } }while (token != null); Assert.AreEqual(2, listedBlobs.Count); do { results = container.ListBlobsSegmented("", false, BlobListingDetails.None, null, token, null, null); token = results.ContinuationToken; foreach (IListBlobItem blob in results.Results) { if (preExistingBlobs.Contains(blob.Uri)) { continue; } else { if (blob is CloudPageBlob) { ((CloudPageBlob)blob).Delete(); } else { ((CloudBlockBlob)blob).Delete(); } listedBlobs.Add(blob.Uri); } } }while (token != null); Assert.AreEqual(5, listedBlobs.Count); } finally { container.DeleteIfExists(); } }