public async Task UploadRangeFromUriAsync_SourceBearerTokenFail() { // Arrange BlobServiceClient blobServiceClient = InstrumentClient(new BlobServiceClient( new Uri(Tenants.TestConfigOAuth.BlobServiceEndpoint), Tenants.GetOAuthCredential(Tenants.TestConfigOAuth), GetBlobOptions())); BlobContainerClient containerClient = InstrumentClient(blobServiceClient.GetBlobContainerClient(GetNewShareName())); try { await containerClient.CreateIfNotExistsAsync(); AppendBlobClient appendBlobClient = InstrumentClient(containerClient.GetAppendBlobClient(GetNewFileName())); await appendBlobClient.CreateAsync(); byte[] data = GetRandomBuffer(Constants.KB); using Stream stream = new MemoryStream(data); await appendBlobClient.AppendBlockAsync(stream); ShareServiceClient serviceClient = SharesClientBuilder.GetServiceClient_OAuthAccount_SharedKey(); await using DisposingShare test = await GetTestShareAsync( service : serviceClient, shareName : GetNewShareName()); ShareDirectoryClient directoryClient = InstrumentClient(test.Share.GetDirectoryClient(GetNewDirectoryName())); await directoryClient.CreateAsync(); ShareFileClient fileClient = InstrumentClient(directoryClient.GetFileClient(GetNewFileName())); await fileClient.CreateAsync(Constants.KB); HttpAuthorization sourceAuthHeader = new HttpAuthorization( "Bearer", "auth token"); ShareFileUploadRangeFromUriOptions options = new ShareFileUploadRangeFromUriOptions { SourceAuthentication = sourceAuthHeader }; HttpRange range = new HttpRange(0, Constants.KB); // Act await TestHelper.AssertExpectedExceptionAsync <RequestFailedException>( fileClient.UploadRangeFromUriAsync( sourceUri: appendBlobClient.Uri, range: range, sourceRange: range, options: options), e => Assert.AreEqual("CannotVerifyCopySource", e.ErrorCode)); } finally { await containerClient.DeleteIfExistsAsync(); } }
public async Task UploadRangeFromUriAsync_SourceBearerToken() { // Arrange BlobServiceClient blobServiceClient = InstrumentClient(new BlobServiceClient( new Uri(TestConfigOAuth.BlobServiceEndpoint), GetOAuthCredential(TestConfigOAuth), GetBlobOptions())); BlobContainerClient containerClient = InstrumentClient(blobServiceClient.GetBlobContainerClient(GetNewShareName())); try { await containerClient.CreateIfNotExistsAsync(); AppendBlobClient appendBlobClient = InstrumentClient(containerClient.GetAppendBlobClient(GetNewFileName())); await appendBlobClient.CreateAsync(); byte[] data = GetRandomBuffer(Constants.KB); using Stream stream = new MemoryStream(data); await appendBlobClient.AppendBlockAsync(stream); ShareServiceClient serviceClient = GetServiceClient_OAuth_SharedKey(); await using DisposingShare test = await GetTestShareAsync( service : serviceClient, shareName : GetNewShareName()); ShareDirectoryClient directoryClient = InstrumentClient(test.Share.GetDirectoryClient(GetNewDirectoryName())); await directoryClient.CreateAsync(); ShareFileClient fileClient = InstrumentClient(directoryClient.GetFileClient(GetNewFileName())); await fileClient.CreateAsync(Constants.KB); string sourceBearerToken = await GetAuthToken(); HttpAuthorization sourceAuthHeader = new HttpAuthorization( "Bearer", sourceBearerToken); ShareFileUploadRangeFromUriOptions options = new ShareFileUploadRangeFromUriOptions { SourceAuthentication = sourceAuthHeader }; HttpRange range = new HttpRange(0, Constants.KB); // Act await fileClient.UploadRangeFromUriAsync( sourceUri : appendBlobClient.Uri, range : range, sourceRange : range, options : options); } finally { await containerClient.DeleteIfExistsAsync(); } }