public FileClientOptions GetFaultyFileConnectionOptions(
            int raiseAt     = default,
            Exception raise = default)
        {
            raise = raise ?? new IOException("Simulated connection fault");
            FileClientOptions options = GetOptions();

            options.AddPolicy(new FaultyDownloadPipelinePolicy(raiseAt, raise), HttpPipelinePosition.PerCall);
            return(options);
        }
        public FileClientOptions GetOptions()
        {
            var options = new FileClientOptions
            {
                Diagnostics = { IsLoggingEnabled = true },
                Retry       =
                {
                    Mode       = RetryMode.Exponential,
                    MaxRetries = Azure.Storage.Constants.MaxReliabilityRetries,
                    Delay      = TimeSpan.FromSeconds(this.Mode == RecordedTestMode.Playback ? 0.01 : 0.5),
                    MaxDelay   = TimeSpan.FromSeconds(this.Mode == RecordedTestMode.Playback ? 0.1 : 10)
                }
            };

            if (Mode != RecordedTestMode.Live)
            {
                options.AddPolicy(new RecordedClientRequestIdPolicy(Recording), HttpPipelinePosition.PerCall);
            }

            return(Recording.InstrumentClientOptions(options));
        }