@Override public CloudBlobDirectory getParent() throws URISyntaxException, StorageException { return directory.getParent(); }
@Override public CloudBlobDirectory getParent() throws URISyntaxException, StorageException { return directory.getParent(); }
private void testGetParentOnRoot(String delimiter, CloudBlobContainer container) throws URISyntaxException, StorageException { // get container as parent CloudBlobDirectory topDir = container.getDirectoryReference("TopDir1" + delimiter); CloudBlobDirectory root = topDir.getParent(); assertEquals("", root.getPrefix()); assertEquals(container.getUri().toString(), root.getUri().toString()); // make sure the parent of the container dir is null CloudBlobDirectory empty = root.getParent(); assertNull(empty); // from container, get directory reference to container root = container.getDirectoryReference(""); assertEquals("", root.getPrefix()); assertEquals(container.getUri().toString(), root.getUri().toString()); Iterable<ListBlobItem> results = root.listBlobs(); ArrayList<ListBlobItem> list1 = new ArrayList<ListBlobItem>(); Iterator<ListBlobItem> iter = results.iterator(); while (iter.hasNext()) { list1.add(iter.next()); } assertEquals(2, list1.size()); // make sure the parent of the container dir is null empty = root.getParent(); assertNull(empty); }
private void testMultipleDelimiters(String delimiter, CloudBlobContainer container) throws StorageException, URISyntaxException { populateContainer(container, delimiter); populateContainer(container, "*"); populateContainer(container, "#"); Iterable<ListBlobItem> list1 = container.listBlobs("TopDir1" + delimiter, false, EnumSet.noneOf(BlobListingDetails.class), null, null); Iterator<ListBlobItem> iter = list1.iterator(); ArrayList<ListBlobItem> simpleList1 = new ArrayList<ListBlobItem>(); while (iter.hasNext()) { simpleList1.add(iter.next()); } assertEquals(3, simpleList1.size()); ListBlobItem get11 = simpleList1.get(0); assertEquals(new URI(container.getUri().getScheme(), container.getUri().getAuthority(), container.getUri() .getPath() + "/TopDir1" + delimiter + "Blob1", null, null), get11.getUri()); ListBlobItem get12 = simpleList1.get(1); assertEquals(new URI(container.getUri().getScheme(), container.getUri().getAuthority(), container.getUri() .getPath() + "/TopDir1" + delimiter + "MidDir1" + delimiter, null, null), get12.getUri()); ListBlobItem get13 = simpleList1.get(2); assertEquals(new URI(container.getUri().getScheme(), container.getUri().getAuthority(), container.getUri() .getPath() + "/TopDir1" + delimiter + "MidDir2" + delimiter, null, null), get13.getUri()); CloudBlobDirectory directory = container.getDirectoryReference("TopDir1" + delimiter); CloudBlobDirectory subDirectory = directory.getDirectoryReference("MidDir1" + delimiter); CloudBlobDirectory parent = subDirectory.getParent(); assertEquals(parent.getPrefix(), directory.getPrefix()); assertEquals(parent.getUri(), directory.getUri()); }
private void testHierarchicalTraversal(String delimiter, CloudBlobContainer container) throws StorageException, URISyntaxException { // Traverse hierarchically starting with length 1 CloudBlobDirectory directory1 = container.getDirectoryReference("Dir1" + delimiter); CloudBlobDirectory subdir1 = directory1.getDirectoryReference("Dir2"); CloudBlobDirectory parent1 = subdir1.getParent(); assertEquals(parent1.getPrefix(), directory1.getPrefix()); CloudBlobDirectory subdir2 = subdir1.getDirectoryReference("Dir3"); CloudBlobDirectory parent2 = subdir2.getParent(); assertEquals(parent2.getPrefix(), subdir1.getPrefix()); CloudBlobDirectory subdir3 = subdir2.getDirectoryReference("Dir4"); CloudBlobDirectory parent3 = subdir3.getParent(); assertEquals(parent3.getPrefix(), subdir2.getPrefix()); CloudBlobDirectory subdir4 = subdir3.getDirectoryReference("Dir5"); CloudBlobDirectory parent4 = subdir4.getParent(); assertEquals(parent4.getPrefix(), subdir3.getPrefix()); }
private void testGetSubdirectoryAndTraverseBackToParent(String delimiter, CloudBlobContainer container) throws URISyntaxException, StorageException { CloudBlobDirectory directory = container.getDirectoryReference("TopDir1" + delimiter); CloudBlobDirectory subDirectory = directory.getDirectoryReference("MidDir1" + delimiter); CloudBlobDirectory parent = subDirectory.getParent(); assertEquals(parent.getPrefix(), directory.getPrefix()); assertEquals(parent.getUri(), directory.getUri()); }
CloudBlobDirectory root = directory1.getParent(); assertEquals("", root.getPrefix()); assertEquals(container.getUri(), root.getUri()); CloudBlobDirectory parent1 = subdir1.getParent(); assertEquals(directory1.getPrefix(), parent1.getPrefix()); assertEquals(directory1.getUri(), parent1.getUri()); CloudBlobDirectory parent2 = subdir2.getParent(); assertEquals(subdir1.getPrefix(), parent2.getPrefix()); assertEquals(subdir1.getUri(), parent2.getUri());
private void testDelimitersInARow(String delimiter, CloudBlobContainer container) throws URISyntaxException, StorageException { CloudPageBlob blob = container.getPageBlobReference(delimiter + delimiter + delimiter + "Blob1"); // Traverse from leaf to root CloudBlobDirectory directory1 = blob.getParent(); assertEquals(delimiter + delimiter + delimiter, directory1.getPrefix()); CloudBlobDirectory directory2 = directory1.getParent(); assertEquals(delimiter + delimiter, directory2.getPrefix()); CloudBlobDirectory directory3 = directory2.getParent(); assertEquals(delimiter, directory3.getPrefix()); // Traverse from root to leaf CloudBlobDirectory directory4 = container.getDirectoryReference(delimiter); CloudBlobDirectory directory5 = directory4.getDirectoryReference(delimiter); assertEquals(delimiter + delimiter, directory5.getPrefix()); CloudBlobDirectory directory6 = directory5.getDirectoryReference(delimiter); assertEquals(delimiter + delimiter + delimiter, directory6.getPrefix()); CloudPageBlob blob2 = directory6.getPageBlobReference("Blob1"); assertEquals(delimiter + delimiter + delimiter + "Blob1", blob2.getName()); assertEquals(blob.getUri(), blob2.getUri()); }
assertEquals(new URI(container.getUri().getScheme(), container.getUri().getAuthority(), container.getUri() .getPath() + "/Dir1" + delimiter + "SubDirectory" + delimiter, null, null), subDirectory.getUri()); CloudBlobDirectory subDirectoryParent = subDirectory.getParent(); assertEquals("Dir1" + delimiter, subDirectoryParent.getPrefix());
assertEquals(directoryUri, directory.getStorageUri()); assertEquals(directoryUri.getPrimaryUri(), directory.getUri()); assertEquals("", directory.getParent().getPrefix()); assertEquals(containerUri, directory.getContainer().getStorageUri()); assertEquals(endpoint, directory.getServiceClient().getStorageUri()); assertEquals(subdirectoryUri, subdirectory.getStorageUri()); assertEquals(subdirectoryUri.getPrimaryUri(), subdirectory.getUri()); assertEquals(directoryUri, subdirectory.getParent().getStorageUri()); assertEquals(containerUri, subdirectory.getContainer().getStorageUri()); assertEquals(endpoint, subdirectory.getServiceClient().getStorageUri());
/** * Validate container references * * @throws StorageException * @throws URISyntaxException */ @Test @Category({ DevFabricTests.class, DevStoreTests.class }) public void testCloudBlobContainerReference() throws StorageException, URISyntaxException{ CloudBlobClient client = BlobTestHelper.createCloudBlobClient(); CloudBlobContainer container = client.getContainerReference("container"); CloudBlockBlob blockBlob = container.getBlockBlobReference("directory1/blob1"); CloudPageBlob pageBlob = container.getPageBlobReference("directory2/blob2"); CloudBlobDirectory directory = container.getDirectoryReference("directory3"); CloudBlobDirectory directory2 = directory.getDirectoryReference("directory4"); assertEquals(container.getStorageUri().toString(), blockBlob.getContainer().getStorageUri().toString()); assertEquals(container.getStorageUri().toString(), pageBlob.getContainer().getStorageUri().toString()); assertEquals(container.getStorageUri().toString(), directory.getContainer().getStorageUri().toString()); assertEquals(container.getStorageUri().toString(), directory2.getContainer().getStorageUri().toString()); assertEquals(container.getStorageUri().toString(), directory2.getParent().getContainer().getStorageUri() .toString()); assertEquals(container.getStorageUri().toString(), blockBlob.getParent().getContainer().getStorageUri() .toString()); assertEquals(container.getStorageUri().toString(), blockBlob.getParent().getContainer().getStorageUri() .toString()); }