public void UploadAsync_UploadsRequestFile_As_AzureBlob_AllowsExceptionToBeRaised()
        {
            // Arrange
            var  data      = new byte[10];
            bool overwrite = false;
            var  exception = new Azure.RequestFailedException("Test message.");

            Mock.Get(_blobClient)
            .Setup(p => p.UploadAsync(It.IsAny <Stream>(), overwrite, It.IsAny <CancellationToken>()))
            .Throws(exception)
            .Verifiable();

            SetupBlobContainerClient(_filename);
            ILoggerAdapter_Setup_LogInformation();

            var sut = GetBlobStorageService();

            // Act
            Func <Task> act = async() => await sut.UploadAsync(_filename, data, overwrite);

            // Assert
            act.Should().Throw <Azure.RequestFailedException>();

            Verify_All();
        }
        public void ProcessEventsAsync_OnBlobStorageException_ReturnsExpectedResult()
        {
            // Arrange
            var feed     = GetFeedEntry();
            var expected = GetOneContractProcessResult();

            expected.First().ContractEvent.BookmarkId = feed.Id;
            expected.First().ContractEvent.ContractEventXml = GetFilename(feed, expected.First().ContractEvent);

            var actualBackingObject = GetOneContractProcessResult();

            ILogger_Setup_LogInformation();
            ILogger_Setup_LogError();

            var raisedException = new Azure.RequestFailedException("Test azure error exception");

            Mock.Get(_deserilizationService)
            .Setup(p => p.DeserializeAsync(It.IsAny <string>()))
            .ReturnsAsync(actualBackingObject.ToList())
            .Verifiable();

            Mock.Get(_blobStorageService)
            .Setup(p => p.UploadAsync(It.IsAny <string>(), It.IsAny <byte[]>(), It.IsAny <bool>()))
            .Throws(raisedException)
            .Verifiable();

            var processor = GetContractEventProcessor();

            // Act
            Func <Task> act = async() => await processor.ProcessEventsAsync(feed);

            // Assert
            act.Should().Throw <Azure.RequestFailedException>("Because any azure errors are critical stop errors.")
            .Which.Should().BeEquivalentTo(raisedException);

            Verify_All();
        }
 public virtual bool TryGetFailedEntityFromException(Azure.RequestFailedException exception, out Azure.Data.Tables.ITableEntity failedEntity)
 {
     throw null;
 }
 public TableTransactionFailedException(Azure.RequestFailedException requestFailedException) : base(default(string))
 {
 }