Example #1
0
        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));
        }
Example #2
0
        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);
        }
Example #3
0
        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"))));
        }
Example #4
0
        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))));
        }
Example #5
0
        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);
        }