public async Task OpenReadAsyncThrowsNotFoundWhenBlobDoesNotExist() { // Arrange var folderName = CoreConstants.Folders.ValidationFolderName; var fileName = _prefixA; var exists = await _targetA.FileExistsAsync(folderName, fileName); var container = _clientA.GetContainerReference(folderName); var file = container.GetBlobReference(fileName); // Act & Assert Assert.False(exists); var ex = await Assert.ThrowsAsync <StorageException>( () => file.OpenReadAsync(accessCondition: null)); Assert.Equal(HttpStatusCode.NotFound, (HttpStatusCode)ex.RequestInformation.HttpStatusCode); }
public async Task CanReadAndDeleteBlobUsingPrivilegedFileUri() { // Arrange var folderName = CoreConstants.Folders.ValidationFolderName; var fileName = _prefixA; var expectedContent = "Hello, world."; await _targetA.SaveFileAsync( folderName, fileName, new MemoryStream(Encoding.ASCII.GetBytes(expectedContent)), overwrite : false); var deleteUri = await _targetA.GetPriviledgedFileUriAsync( folderName, fileName, FileUriPermissions.Read | FileUriPermissions.Delete, DateTimeOffset.UtcNow.AddHours(1)); // Act var sasToken = new StorageCredentials(deleteUri.Query); var deleteUriBuilder = new UriBuilder(deleteUri) { Query = null }; var blob = new CloudBlockBlob(deleteUriBuilder.Uri, sasToken); var actualContent = await blob.DownloadTextAsync(); await blob.DeleteAsync(); // Assert Assert.Equal(expectedContent, actualContent); var exists = await _targetA.FileExistsAsync(folderName, fileName); Assert.False(exists, "The file should no longer exist."); }