public async Task GivenKeyVaultSecretStore_WhenGettingSecretThrowsKeyVaultErrorExceptionWithRetriableStatusCode_ThenItWillBeRetried(HttpStatusCode statusCode)
        {
            _retryCount  = 3;
            _secretStore = GetSecretStore(_retryCount);

            var successfulResult             = GetSuccessfulResult();
            KeyVaultErrorException exception = GetKeyVaultError(statusCode);

            _kvClient.GetSecretWithHttpMessagesAsync(_keyVaultUri.AbsoluteUri, SecretName, secretVersion: string.Empty, customHeaders: null, _cancellationToken)
            .Returns <AzureOperationResponse <SecretBundle> >(
                _ => throw exception,
                _ => successfulResult);

            var result = await _secretStore.GetSecretAsync(SecretName, _cancellationToken);

            Assert.Equal(SecretValue, result.SecretValue);
        }
        public async Task GivenKeyVaultSecretStore_WhenGettingSecretThrowsKeyVaultErrorExceptionWithNoResponse_ThenExceptionWillBeThrownWithInternalServerErrorStatusCode()
        {
            _retryCount  = 0;
            _secretStore = GetSecretStore(_retryCount);
            KeyVaultErrorException exception = new KeyVaultErrorException();

            _kvClient.GetSecretWithHttpMessagesAsync(_keyVaultUri.AbsoluteUri, SecretName, secretVersion: string.Empty, customHeaders: null, _cancellationToken)
            .Returns <AzureOperationResponse <SecretBundle> >(
                _ => throw exception);

            SecretStoreException sse = await Assert.ThrowsAsync <SecretStoreException>(() => _secretStore.GetSecretAsync(SecretName, _cancellationToken));

            Assert.NotNull(sse);
            Assert.Equal(HttpStatusCode.InternalServerError, sse.ResponseStatusCode);
        }