public async Task GivenACloudBlobTriggerIsExecuted_WhenRunIsInvoked_TheArchiveBlobAccessTierIsSetToCool() { var target = new CrossAccountBlobTransfer(blobCopyService); await target.RunAsync(sourceBlob, targetContainer, TargetContainerName, logger); Mock.Get(blobCopyService).Verify(x => x.SetAccessTierAsync(targetBlob, StandardBlobTier.Cool)); }
public async Task GivenABlobTriggerIsExecuted_WhenRunIsInvoked_ThenACloudBlockBlobIsExpected() { var target = new CrossAccountBlobTransfer(blobCopyService); await target.RunAsync(sourceBlob, targetContainer, TargetContainerName, logger); Mock.Get(targetContainer).Verify(x => x.CreateIfNotExistsAsync(), Times.Once); }
public async Task GivenACloudBlobTriggerIsExecuted_WhenRunIsInvoked_ASaSUrlIsRequestedFromTheSourceBlobForReadAccessOnly() { var target = new CrossAccountBlobTransfer(blobCopyService); await target.RunAsync(sourceBlob, targetContainer, TargetContainerName, logger); Mock.Get(blobCopyService).Verify(x => x.CopyAsync(targetBlob, It.Is <Uri>(uri => uri.AbsoluteUri.EndsWith("&sp=r")))); }
public async Task GivenACloudBlobTriggerIsExecuted_WhenRunIsInvoked_ASaSUrlIsRequestedFromTheSourceBlobFor5MinutesOnly() { var target = new CrossAccountBlobTransfer(blobCopyService); await target.RunAsync(sourceBlob, targetContainer, TargetContainerName, logger); var currentTimePlus5Minutes = DateTime.UtcNow.AddMinutes(5); var seQueryParam = $"&se={currentTimePlus5Minutes:yyyy-MM-dd}T{currentTimePlus5Minutes:HH}%3A{currentTimePlus5Minutes:mm}%3A{currentTimePlus5Minutes:ss}Z"; Mock.Get(blobCopyService).Verify(x => x.CopyAsync(targetBlob, It.Is <Uri>(uri => uri.AbsoluteUri.Contains(seQueryParam)))); }
public async Task GivenACloudBlobTriggerIsEAxecuted_WhenCopyingFails_AStorageExceptionIsThrown() { Mock.Get(blobCopyService) .Setup(x => x.CopyAsync(targetBlob, It.IsAny <Uri>())) .Returns(Task.FromResult(CopyStatus.Aborted)); var expectedMessage = $"Failed to complete copy of {sourceBlob.Uri.AbsoluteUri} to {targetBlob.Uri.AbsoluteUri}. Copy state was {CopyStatus.Aborted}"; var target = new CrossAccountBlobTransfer(blobCopyService); var exception = await Assert.ThrowsAsync <StorageException>(async() => await target.RunAsync(sourceBlob, targetContainer, TargetContainerName, logger)); Assert.Equal(expectedMessage, exception.Message); }