private static Func <MockHttpRequest, HttpWebResponse> Create(
            string content, string requestId, string s3ExtendedRequestId, bool isOK)
        {
            var status = isOK ? HttpStatusCode.OK : HttpStatusCode.NotFound;

            return((request) =>
            {
                Dictionary <string, string> headers = new Dictionary <string, string>(StringComparer.Ordinal);
                if (!string.IsNullOrEmpty(requestId))
                {
                    headers.Add(HeaderKeys.RequestIdHeader, requestId);
                }

                // https://aws.amazon.com/premiumsupport/knowledge-center/s3-request-id-values/
                if (!string.IsNullOrEmpty(s3ExtendedRequestId))
                {
                    headers.Add(HeaderKeys.XAmzId2Header, s3ExtendedRequestId);
                }

                var response = MockWebResponse.Create(status, headers, content);

                if (isOK)
                {
                    return response;
                }

                throw new HttpErrorResponseException(new HttpWebRequestResponseData(response));
            });
        }
        private static Func <MockHttpRequest, HttpWebResponse> Create(
            string content, string requestId, bool isOK)
        {
            var status = isOK ? HttpStatusCode.OK : HttpStatusCode.NotFound;

            return((request) =>
            {
                Dictionary <string, string> headers = new Dictionary <string, string>(StringComparer.Ordinal);
                if (!string.IsNullOrEmpty(requestId))
                {
                    headers.Add(HeaderKeys.RequestIdHeader, requestId);
                }
                var response = MockWebResponse.Create(status, headers, content);

                if (isOK)
                {
                    return response;
                }

                throw new HttpErrorResponseException(new HttpWebRequestResponseData(response));
            });
        }